//@name:[采] 自建CMS //@version:1 //@webSite:https://cj.rycjapi.com/api.php/provide/vod //@remark:地址输入自己搭建的 cms 采集地址,默认使用如意采集占位 //@order: D5 // ignore // 不支持导入,这里只是本地开发用于代码提示 // 如需添加通用依赖,请联系 https://t.me/uzVideoAppbot import { FilterLabel, FilterTitle, VideoClass, VideoSubclass, VideoDetail, RepVideoClassList, RepVideoSubclassList, RepVideoList, RepVideoDetail, RepVideoPlayUrl, UZArgs, UZSubclassVideoListArgs, } from '../../core/core/uzVideo.js' import { UZUtils, ProData, ReqResponseType, ReqAddressType, req, getEnv, setEnv, goToVerify, openWebToBindEnv, toast, kIsDesktop, kIsAndroid, kIsIOS, kIsWindows, kIsMacOS, kIsTV, kLocale, kAppVersion, formatBackData, } from '../../core/core/uzUtils.js' import { cheerio, Crypto, Encrypt, JSONbig } from '../../core/core/uz3lib.js' // ignore const appConfig = { _webSite: 'https://cj.rycjapi.com/api.php/provide/vod', /** * 网站主页,uz 调用每个函数前都会进行赋值操作 * 如果不想被改变 请自定义一个变量 */ get webSite() { return this._webSite }, set webSite(value) { this._webSite = value }, _uzTag: '', /** * 扩展标识,初次加载时,uz 会自动赋值,请勿修改 * 用于读取环境变量 */ get uzTag() { return this._uzTag }, set uzTag(value) { this._uzTag = value }, // 忽略的分类名称列表 ignoreClassName: ['短剧', '资讯', '明星资讯', '影视资讯', '演员', '内地', '港台', '欧美', '日韩'], reqOptions: { // 接受数据超时时间 receiveTimeout: 40, }, } /** * 异步获取分类列表的方法。 * @param {UZArgs} args * @returns {@Promise} */ async function getClassList(args) { var backData = new RepVideoClassList() try { let response = await req(appConfig.webSite, appConfig.reqOptions) let data = JSON.parse(response.data) backData.data = data.class.filter((item) => { const typeName = item.type_name.toLowerCase() return !appConfig.ignoreClassName.some((keyword) => typeName.includes(keyword.toLowerCase())) }) } catch (error) { backData.error = error.toString() } return JSON.stringify(backData) } /** * 获取二级分类列表筛选列表的方法。 * @param {UZArgs} args * @returns {@Promise} */ async function getSubclassList(args) { var backData = new RepVideoSubclassList() try { } catch (error) { backData.error = error.toString() } return JSON.stringify(backData) } /** * 获取分类视频列表 * @param {UZArgs} args * @returns {@Promise} */ async function getVideoList(args) { var backData = new RepVideoList() try { let response = await req(`${appConfig.webSite}?ac=detail&t=${args.url}&pg=${args.page}`, appConfig.reqOptions) let data = JSON.parse(response.data) backData.data = data.list } catch (error) { backData.error = error.toString() } return JSON.stringify(backData) } /** * 获取二级分类视频列表 或 筛选视频列表 * @param {UZSubclassVideoListArgs} args * @returns {@Promise} */ async function getSubclassVideoList(args) { var backData = new RepVideoList() try { } catch (error) { backData.error = error.toString() } return JSON.stringify(backData) } /** * 获取视频详情 * @param {UZArgs} args * @returns {@Promise} */ async function getVideoDetail(args) { var backData = new RepVideoDetail() try { let response = await req(`${appConfig.webSite}?ac=detail&ids=${args.url}`, appConfig.reqOptions) let data = JSON.parse(response.data) let video = data.list[0] backData.data = video } catch (error) { backData.error = error.toString() } return JSON.stringify(backData) } /** * 获取视频的播放地址 * @param {UZArgs} args * @returns {@Promise} */ async function getVideoPlayUrl(args) { var backData = new RepVideoPlayUrl() try { backData.data = args.url } catch (error) { backData.error = error.toString() } return JSON.stringify(backData) } /** * 搜索视频 * @param {UZArgs} args * @returns {@Promise} */ async function searchVideo(args) { var backData = new RepVideoList() try { const response = await req(`${appConfig.webSite}?ac=detail&wd=${args.searchWord}&pg=${args.page}`, appConfig.reqOptions) const data = JSON.parse(response.data) backData.data = data.list } catch (error) { backData.error = error.toString() } return JSON.stringify(backData) }