6/18/ds/18js/js/push_agent.js

108 lines
2.6 KiB
JavaScript

/*
* @File : push_agent.js
* @Author : jade
* @Date : 2024/3/6 9:30
* @Email : jadehh@1ive.com
* @Software : Samples
* @Desc :
*/
import {Spider} from "./spider.js";
import {VodDetail} from "../lib/vod.js";
import * as Utils from "../lib/utils.js";
import {detailContent, initAli, playContent} from "../lib/ali.js";
class PushSpider extends Spider {
constructor() {
super();
}
getName() {
return "┃推送┃"
}
getAppName() {
return "推送"
}
getJSName() {
return "push"
}
getType() {
return 4
}
async init(cfg) {
try {
this.cfgObj = await this.SpiderInit(cfg)
this.catOpenStatus = this.cfgObj.CatOpenStatus
await initAli(this.cfgObj["token"]);
} catch (e) {
await this.jadeLog.error(`初始化失败,失败原因为:${e}`)
}
}
async check(args){
// CatVodOpen目前支持http链接和https链接
await spider.jadeLog.debug(`剪切板输入内容为:${args}`)
if (this.catOpenStatus){
return !!args.startsWith("http");
}else{
// TV目前支持http链接和https链接和Ftp和magnet等格式
return !!(args.startsWith("http") || args.startsWith("ftp") || args.startsWith("magnet"));
}
}
async parseVodDetailfromJson(id) {
let vodDetail = new VodDetail()
vodDetail.vod_pic = Utils.RESOURCEURL + "/resources/push.jpg"
let mather = Utils.patternAli.exec(id)
if (mather !== null && mather.length > 0) {
let aliVodDetail = await detailContent([id])
vodDetail.vod_play_url = aliVodDetail.vod_play_url
vodDetail.vod_play_from = aliVodDetail.vod_play_from
} else {
vodDetail.vod_play_from = '推送';
vodDetail.vod_play_url = '推送$' + id;
}
return vodDetail
}
async setDetail(id) {
this.vodDetail = await this.parseVodDetailfromJson(id)
}
async setPlay(flag, id, flags) {
if (flag === "推送"){
this.playUrl = id
}else{
this.playUrl = JSON.parse(await playContent(flag, id, flags))["url"];
}
}
}
let spider = new PushSpider()
async function check(args) {
return await spider.check(args)
}
async function init(cfg) {
await spider.init(cfg)
}
async function detail(id) {
return await spider.detail(id)
}
async function play(flag, id, flags) {
return await spider.play(flag, id, flags)
}
export function __jsEvalReturn() {
return {
support: check, init: init, detail: detail, play: play,
};
}
export {spider}