/* * @Author: samples jadehh@live.com * @Date: 2023-12-14 11:03:04 * @LastEditors: samples jadehh@live.com * @LastEditTime: 2023-12-14 11:03:04 * @FilePath: lib/ali.js * @Description: 阿里云盘Spider公共 */ import { initSome, clearFile, playerContent, playerContentByFlag, setShareId, setToken, getFileByShare, getTempFileId } from './ali_api.js'; import {JadeLogging} from "./log.js"; const aliName = "阿里云盘" const JadeLog = new JadeLogging(aliName) const aliPlayFormatList = ["原画", "超清", "高清", "标清"] async function initAli(token) { await initSome(); await setToken(token); await getTempFileId(); // await clearFile(); await JadeLog.info("阿里云盘初始化完成", true) } function getShareId(share_url) { let patternAli = /https:\/\/www\.alipan\.com\/s\/([^\\/]+)(\/folder\/([^\\/]+))?|https:\/\/www\.aliyundrive\.com\/s\/([^\\/]+)(\/folder\/([^\\/]+))?/ let matches = patternAli.exec(share_url) const filteredArr = matches.filter(item => item !== undefined); if (filteredArr.length > 1) { return filteredArr[1] } else { return "" } } async function detailContentAli(share_url_list, type_name = "电影") { try { let video_items = [], sub_items = [] for (let i=0;i 0) { await JadeLog.info(`获取播放链接成功,分享链接为:${share_url_list.join("\t")}`) } else { await JadeLog.error(`获取播放链接失败,检查分享链接为:${share_url_list.join("\t")}`) } return {"video_items":video_items,"sub_items":sub_items} } catch (e) { await JadeLog.error('获取阿里视频失败,失败原因为:' + e.message + ' 行数为:' + e.lineNumber); } } async function playContentAli(flag, id, flags) { if (flags.length > 0) { await JadeLog.info(`准备播放,播放类型为:${flag},播放文件Id为:${id},播放所有类型为:${flags.join("")}`) } else { await JadeLog.info(`准备播放,播放类型为:${flag},播放文件Id为:${id},播放所有类型为:${flags.join("")}`) } let file_id_list = id.split("+") let share_id = file_id_list[1] let file_id = file_id_list[0] let share_token = file_id_list[2] return flag === "原画" ? await playerContent(file_id, share_id, share_token) : await playerContentByFlag(file_id, flag, share_id, share_token); } export { initAli, detailContentAli, playContentAli, aliPlayFormatList, aliName, };