// 接口文档:https://hyperion-novel-qa-app.mokamrp.com/swagger-ui/#/ import { requestAll, requestLogin, post, postWithCommonParams, uploadTrackLog, bookPlatformPost, } from "../utils/request"; import { https, apple } from "../config/config.js"; export const userLogin = (data) => requestLogin(data); // 获取token const getToken = () => { return wx.getStorageSync("accessToken") || ""; }; // 添加token到header const addTokenToHeader = () => { return { token: getToken(), }; }; export const getBannerList = (channel) => { return requestAll("/novel/banner", { channel }, "GET", addTokenToHeader()); }; export const getChapterList = (channel) => { return requestAll( "/novel/chapter/list", { channel }, "GET", addTokenToHeader(), ); }; // /novel/cardNovels export const getCardNovels = (channel) => { return requestAll( "/novel/cardNovels", { channel }, "GET", addTokenToHeader(), ); }; // /novel/cardNovelsMore export const getCardNovelsMore = (id) => { if (!id) { return Promise.reject(new Error("缺少必要参数: id")); } return requestAll("/novel/cardNovelsMore", { id }, "GET", addTokenToHeader()); }; // /category/list export const getCategoryList = (category) => { if (!category) { return Promise.reject(new Error("缺少必要参数: category")); } return requestAll("/category/list", { category }, "GET", addTokenToHeader()); }; // /novel/detail export const getNovelDetail = (id) => { if (!id) { return Promise.reject(new Error("缺少必要参数: id")); } return requestAll("/novel/detail", { id }, "GET", addTokenToHeader()); }; // /novel/search export const getNovelSearch = ({ keyword, page = 1, size = 10, category }) => { // 创建基本参数对象 const params = { keyword, page, size }; // 如果category有值,才添加到参数中 if (category) { params.category = category; } return requestAll("/novel/search", params, "GET", addTokenToHeader()); }; // /user/bookshelf 获取书架列表 export const getBookshelfList = () => { return requestAll("/user/bookshelf", {}, "GET", addTokenToHeader()); }; // /user/bookshelf 添加书架 export const addBookshelf = (data) => { return requestAll("/user/bookshelf", data, "POST", addTokenToHeader()); }; // /user/bookshelf 移除用户书架 export const removeBookshelf = (data) => { return requestAll("/user/bookshelf", data, "DELETE", addTokenToHeader()); }; // /user/chapter/unlock-status 获取章节解锁状态 export const getChapterUnlockStatus = (data) => { return requestAll( "/user/chapter/unlock-status-val", data, "GET", addTokenToHeader(), ); }; // /user/browsing-history 新增用户阅读历史 export const addBrowsingHistory = (data) => { return requestAll("/user/browsing-history", data, "POST", addTokenToHeader()); }; // /user/chapter/unlock 解锁章节 export const unlockChapter = (data) => { return requestAll("/user/chapter/unlock", data, "POST", addTokenToHeader()); }; // 获取阅读记录 export const getBrowsingHistory = () => { return requestAll("/user/browsing-history", {}, "GET", addTokenToHeader()); }; // 获取短剧列表 export function getVideoList(params = {}) { const { page = 1, size = 10, tag_id = 2245, filter_id = "", next_id = "", gh_id = "", } = params; const requestData = { tag_id: tag_id, filter_id: filter_id, next_id: next_id, count: size, uuid: getApp().globalData.uuid, // 固定值,实际应用中可能需要动态生成 gh_id: gh_id, // 固定值 }; return postWithCommonParams( `${https.goHttps}/cashvideoapi/cashvideo/getvideolist`, requestData, ).then((data) => { return data; // 处理返回数据的格式转换,确保与页面期望的数据结构一致 if (data) { return data.map((video) => ({ id: video.id, title: video.title, cover: video.cover_image, playCount: video.views || "0", })); } return []; }); } // 获取视频详情 export function getVideoDetail(params = {}) { if (!params.id) { return Promise.reject(new Error("缺少必要参数: id")); } return postWithCommonParams( `${https.goHttps}/cashvideoapi/cashvideo/getvideoinfo`, params, ); } // 获取真实视频播放地址 export function getRealVideoUrl(id, tagId) { if (!id || !tagId) { return Promise.reject(new Error("缺少必要参数: id 或 tagId")); } const url = `${https.goHttps}/coral/cashvideo/getOasVideoUrl?id=${id}&tagId=${tagId}`; return postWithCommonParams(url, {}, "GET"); } // 获取相关视频列表 export function getRelatedVideos(params = {}) { const { tag_id = 2250, count = 10, filter_id = "", gh_id = "" } = params; const requestData = { tag_id, count, filter_id, uuid: getApp().globalData.uuid, gh_id: gh_id, }; return post( `${https.goHttps}/cashvideoapi/cashvideo/getrandvideolistpro`, requestData, ); } /** * 获取 uuid */ export function getUuid(body) { return postWithCommonParams(`${https.goHttps}/api/user/getuuid`, body); } // https://applet.xiaoduer.cn/coral/template/config export function getTemplateConfig(body) { return postWithCommonParams(`${https.goHttps}/coral/template/config`, body); } // 导出postWithCommonParams export { postWithCommonParams }; /** * 打点 */ export const recordLog = (body) => uploadTrackLog("/track", body); // 上报腾讯广告 export const userActive = (params) => bookPlatformPost("/api/inner/user/active", params); // 获取合集视频 export function getCollectDetail(collectionId) { const requestData = { collectionId, uuid: getApp().globalData.uuid, // 固定值,实际应用中可能需要动态生成 gh_id: apple.ghid, // 固定值 }; return postWithCommonParams( `${https.goHttps}/materialvideoapi/materialvideo/getCollectionVideoList`, requestData, ).then((data) => { return data; }); } // 获取真实视频播放地址 export function getCollectRealVideoUrl(url) { return postWithCommonParams(url, {}, "GET"); } // 获取推荐合集列表 export function getRecCollectList(params) { const { tagIdList, count, id } = params; const requestData = { id, tagIdList, count, uuid: getApp().globalData.uuid, // 固定值,实际应用中可能需要动态生成 gh_id: apple.ghid, // 固定值 }; return postWithCommonParams( `${https.goHttps}/materialvideoapi/materialvideo/getRandomCollectionList`, requestData, ).then((data) => { return data; }); }