function get(url) { return fetch(url) .then(response => { if (!response.ok) { throw new Error(`HTTP error! Status: ${response.status}`); } return response.json(); }) .then(data => { return data; }) .catch(error => { return error; }); } function post(url, formData, isJSON) { return sendPost(url, true, formData, isJSON) } function sendPost(url, isFormData, formData, isJSON) { var obj = {}; if (isFormData) { obj = { method: "POST", body: formData } } else { obj = { method: "POST", headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(formData) } } return fetch(url, obj) .then(response => { if (!response.ok) { throw new Error("Network response was not ok"); } if (isJSON) { return response.json(); } return response.blob(); }) .then(blob => { if (isJSON) { return blob; } const imageUrl = URL.createObjectURL(blob); return imageUrl; }) .catch(error => { console.error("There was a problem with the fetch operation:", error); throw error; // 重新抛出错误以便外部捕获 }); } function post2blob(url, formData) { return fetch(url, { method: "POST", body: formData }) .then(response => { if (!response.ok) { throw new Error("Network response was not ok"); } return response.text(); }) .then(blob => { return blob; }) .catch(error => { console.error("There was a problem with the fetch operation:", error); throw error; // 重新抛出错误以便外部捕获 }); } function buildFormData(json) { const formData = new FormData(); Object.keys(json).forEach(key => { const value = json[key]; if (Array.isArray(value)) { value.forEach((item, index) => { formData.append(`${key}[${index}]`, item); }); } else if (value !== null && typeof value === 'object') { formData.append(key, value); } else { formData.append(key, value); } }); return formData; } //----------------直播配置相关接口 function getLiveVideoList() { return get("/live/video/list"); } function getHttpImage(url) { const encode = encodeURI(url); const formData = new FormData(); formData.append("url", encode); return post("/file/img", formData, false) .then(blob => { return blob; }) } function getHttpTmpImage(url) { const encode = encodeURI(url); const formData = new FormData(); formData.append("url", encode); return post2blob("/file/imgTmp", formData) .then(blob => { return blob; }) } function addRoomConfig(config) { const formData = buildFormData(config) return post("/live/config/set", formData, true) } function setArrayRoomConfig(rooms, config) { var json = { "config": config, "array": rooms } return sendPost("/live/config/set/array", false, json, true) } function deleteArrayRoomConfig(rooms) { return sendPost("/live/config/delete/array", false, rooms, true) } function deleteAllRoomConfig() { return get("/live/config/delete/all") } function getRoomConfig(roomId) { return get("/live/config/get?roomId=" + roomId) } function deleteRoomConfig(roomId) { return get("/live/config/delete?roomId=" + roomId) } function checkFollowStatus(userId) { return get("/live/config/follow/check?userId=" + userId) } function confirmFollowStatus(userId) { return get("/live/config/follow/confirm?userId=" + userId) } function addAllFollow(userId) { return get("/live/config/follow/all?userId=" + userId) } function addFollow(uid, anchorId) { return get("/live/config/follow/add?anchorId=" + anchorId + "&uid=" + uid) } function addFollowList(uid, array) { const formData = new FormData(); formData.append("array", array); return post("/live/config/follow/addList?uid=" + uid, formData, true) } function addFollowRoomList(array) { const formData = new FormData(); formData.append("array", array); return post("/live/config/follow/roomId/addList", formData, true) } //----------------直播配置相关接口end //----------------首页相关接口 function getAllLive(page, limit) { return get("/live/list?page=" + page + "&limit=" + limit) } function getAllConfig(page, limit) { return get("/live/config/all?page=" + page + "&limit=" + limit) } //----------------首页相关接口end //----------------直播视频相关接口 function startLiveVideo(roomId) { return get("/live/video/start?roomId=" + roomId) } function stopLiveVideo(roomId) { return get("/live/video/stop?roomId=" + roomId) } function getVideo(roomId, page, limit) { return get("/file/list?roomId=" + roomId + "&page=" + page + "&limit=" + limit) } function getPlayerVideo(roomId, videoId) { return get('/video/play?roomId=' + roomId + "&videoId=" + videoId) } //----------------直播视频相关接口end //----------------弹幕相关接口 function startLiveDanmu(roomId) { return get("/live/danmu/start?roomId=" + roomId) } function stopLiveDanmu(roomId) { return get("/live/danmu/stop?roomId=" + roomId) } function getDanmu(roomId, videoId, page) { return get("/live/danmu/get?roomId=" + roomId + "&videoId=" + videoId + "&page=" + page) } //----------------弹幕相关接口end //----------------用户相关接口 function getBiliAllUser() { return get("/user/list") } function login() { return get("/user/login") } function refreshCookie(userId) { return get("/user/refreshCookie?uid=" + userId) } //----------------用户相关接口end //----------------礼物相关接口 function getVideoGiftInfo(roomId, videoId) { return get("/live/gift/info?roomId=" + roomId + "&videoId=" + videoId) } //----------------礼物相关接口end