Files
tvbox_collect/jaychouqq/yingshi/js1/Cai_cmsUser.js
T
2026-06-29 03:41:14 +00:00

197 lines
5.1 KiB
JavaScript

//@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<JSON.stringify(new RepVideoClassList())>}
*/
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<JSON.stringify(new RepVideoSubclassList())>}
*/
async function getSubclassList(args) {
var backData = new RepVideoSubclassList()
try {
} catch (error) {
backData.error = error.toString()
}
return JSON.stringify(backData)
}
/**
* 获取分类视频列表
* @param {UZArgs} args
* @returns {@Promise<JSON.stringify(new RepVideoList())>}
*/
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<JSON.stringify(new RepVideoList())>}
*/
async function getSubclassVideoList(args) {
var backData = new RepVideoList()
try {
} catch (error) {
backData.error = error.toString()
}
return JSON.stringify(backData)
}
/**
* 获取视频详情
* @param {UZArgs} args
* @returns {@Promise<JSON.stringify(new RepVideoDetail())>}
*/
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<JSON.stringify(new RepVideoPlayUrl())>}
*/
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<JSON.stringify(new RepVideoList())>}
*/
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)
}