197 lines
5.1 KiB
JavaScript
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)
|
|
}
|