Add files via upload

This commit is contained in:
maoystv 2025-04-25 11:43:23 +08:00 committed by GitHub
parent 4f2f67b928
commit dd98151b01
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 13699 additions and 0 deletions

811
JS/分享合集.json Normal file
View File

@ -0,0 +1,811 @@
{ "cookie": " buvid3=8B57D3BA-607A-1E85-018A-E8C430023CED42659infoc; b_lsid=BEB8EE7F_18742FF8C2E; bsource=search_baidu; _uuid=DE810E367-B52C-AF6E-A612-EDF4C31567F358591infoc; b_nut=100; buvid_fp=711a632b5c876fa8bbcf668c1efba551; SESSDATA=7624af93%2C1696008331%2C862c8%2A42; bili_jct=141a474ef3ce8cf2fedf384e68f6625d; DedeUserID=3493271303096985; DedeUserID__ckMd5=212a836c164605b7; sid=5h4ruv6o; buvid4=978E9208-13DA-F87A-3DC0-0B8EDF46E80434329-123040301-dWliG5BMrUb70r3g583u7w%3D%3D",
"filter": {
"dianshiju": [
{
"name": "类型",
"value": [
{
"v": "",
"n": "全部"
},
{
"v": "yanqing",
"n": "言情"
},
{
"v": "ouxiang",
"n": "偶像"
},
{
"v": "dushi",
"n": "都市"
},
{
"v": "zhanzheng",
"n": "战争"
},
{
"v": "xuanyi",
"n": "悬疑"
},
{
"v": "lunli",
"n": "伦理"
},
{
"v": "jingsong",
"n": "惊悚"
},
{
"v": "wangluoju",
"n": "网络剧"
},
{
"v": "jingfei",
"n": "警匪"
},
{
"v": "guzhuang",
"n": "古装"
},
{
"v": "wuxia",
"n": "武侠"
},
{
"v": "shenhua",
"n": "神话"
},
{
"v": "lishi",
"n": "历史"
},
{
"v": "dongzuo",
"n": "动作"
},
{
"v": "diezhan",
"n": "谍战"
},
{
"v": "xiju",
"n": "喜剧"
},
{
"v": "kangri",
"n": "抗日"
},
{
"v": "jiating",
"n": "家庭"
},
{
"v": "juqing",
"n": "剧情"
},
{
"v": "lizhi",
"n": "励志"
},
{
"v": "nongcun",
"n": "农村"
},
{
"v": "kehuan",
"n": "科幻"
},
{
"v": "junlv",
"n": "军旅"
},
{
"v": "qihuan",
"n": "奇幻"
},
{
"v": "qita",
"n": "其它"
}
],
"key": "type"
},
{
"name": "地区",
"value": [
{
"v": "",
"n": "全部"
},
{
"v": "neidi",
"n": "内地"
},
{
"v": "taiwan",
"n": "台湾"
},
{
"v": "xianggang",
"n": "香港"
},
{
"v": "hanguo",
"n": "韩国"
},
{
"v": "meiguo",
"n": "美国"
},
{
"v": "taiguo",
"n": "泰国"
},
{
"v": "riben",
"n": "日本"
},
{
"v": "yingguo",
"n": "英国"
},
{
"v": "xinjiapo",
"n": "新加坡"
},
{
"v": "qita",
"n": "其它"
}
],
"key": "area"
},
{
"name": "年份",
"value": [
{
"v": "",
"n": "全部"
},
{
"v": "2024",
"n": "2024"
},
{
"v": "2023",
"n": "2023"
},
{
"v": "2022",
"n": "2022"
},
{
"v": "2021",
"n": "2021"
},
{
"v": "2020",
"n": "2020"
},
{
"v": "2019",
"n": "2019"
},
{
"v": "2018",
"n": "2018"
},
{
"v": "2017",
"n": "2017"
},
{
"v": "2016",
"n": "2016"
},
{
"v": "2015",
"n": "2015"
},
{
"v": "2014",
"n": "2014"
},
{
"v": "2013",
"n": "2013"
},
{
"v": "2012",
"n": "2012"
},
{
"v": "2011",
"n": "2011"
},
{
"v": "20102000",
"n": "2010-2000"
},
{
"v": "19991990",
"n": "90年代"
},
{
"v": "19891800",
"n": "更早"
}
],
"key": "year"
}
],
"zongyi": [
{
"name": "类型",
"value": [
{
"v": "",
"n": "全部"
},
{
"v": "lxxuanxiu/",
"n": "选秀"
},
{
"v": "lxqinggan/",
"n": "情感"
},
{
"v": "lxfangtan/",
"n": "访谈"
},
{
"v": "lxgaoxiao/",
"n": "搞笑"
},
{
"v": "lxyouxi/",
"n": "游戏"
},
{
"v": "lxzhichang/",
"n": "职场"
},
{
"v": "lxyule/",
"n": "娱乐"
},
{
"v": "lxzhenrenxiu/",
"n": "真人秀"
},
{
"v": "lxshenghuo/",
"n": "生活"
},
{
"v": "lxtiyu/",
"n": "体育"
},
{
"v": "lxshenghui/",
"n": "盛会"
},
{
"v": "lxcaijing/",
"n": "财经"
},
{
"v": "lxqinzi/",
"n": "亲子"
},
{
"v": "lxjishi/",
"n": "纪实"
},
{
"v": "lxtuokouxiu/",
"n": "脱口秀"
},
{
"v": "lxwangluojiemu/",
"n": "网络节目"
},
{
"v": "lxmeishi/",
"n": "美食"
}
],
"key": "type"
},
{
"name": "地区",
"value": [
{
"v": "",
"n": "全部"
},
{
"v": "dqdalu/",
"n": "大陆"
},
{
"v": "dqgangtai/",
"n": "港台"
},
{
"v": "dqrihan/",
"n": "日韩"
},
{
"v": "dqoumei/",
"n": "欧美"
},
{
"v": "dqqita/",
"n": "其他"
}
],
"key": "area"
}
],
"dongman": [
{
"name": "类型",
"value": [
{
"v": "",
"n": "全部"
},
{
"v": "lxrexue/",
"n": "热血"
},
{
"v": "lxaiqing/",
"n": "爱情"
},
{
"v": "lxgaoxiao/",
"n": "搞笑"
},
{
"v": "lxmeinv/",
"n": "美女"
},
{
"v": "lxshaoer/",
"n": "少儿"
},
{
"v": "lxqinzi/",
"n": "亲子"
},
{
"v": "lxmofa/",
"n": "魔法"
},
{
"v": "lxyundong/",
"n": "运动"
},
{
"v": "lxjizhan/",
"n": "机战"
},
{
"v": "lxkehuan/",
"n": "科幻"
},
{
"v": "lxxiaoyuan/",
"n": "校园"
},
{
"v": "lxdongwu/",
"n": "动物"
},
{
"v": "lxmaoxian/",
"n": "冒险"
},
{
"v": "lxshenhua/",
"n": "神话"
},
{
"v": "lxtuili/",
"n": "推理"
},
{
"v": "lxjuqing/",
"n": "剧情"
},
{
"v": "lxlishi/",
"n": "历史"
},
{
"v": "lxzhanzheng/",
"n": "战争"
},
{
"v": "lxjingdian/",
"n": "经典"
},
{
"v": "lxnanxingxiang/",
"n": "男性向"
},
{
"v": "lxnvxingxiang/",
"n": "女性向"
}
],
"key": "type"
},
{
"name": "地区",
"value": [
{
"v": "",
"n": "全部"
},
{
"v": "dqdalu/",
"n": "大陆"
},
{
"v": "dqriben/",
"n": "日本"
},
{
"v": "dqmeiguo/",
"n": "美国"
},
{
"v": "dqhanguo/",
"n": "韩国"
},
{
"v": "dqqita/",
"n": "其他"
}
],
"key": "area"
},
{
"name": "年份",
"value": [
{
"v": "",
"n": "全部"
},
{
"v": "nd2022/",
"n": "2022"
},
{
"v": "nd2021/",
"n": "2021"
},
{
"v": "nd2020/",
"n": "2020"
},
{
"v": "nd2019/",
"n": "2019"
},
{
"v": "nd2018/",
"n": "2018"
},
{
"v": "nd2017/",
"n": "2017"
},
{
"v": "nd2016/",
"n": "2016"
},
{
"v": "nd2015/",
"n": "2015"
},
{
"v": "nd2014/",
"n": "2014"
},
{
"v": "nd2013/",
"n": "2013"
},
{
"v": "nd2012/",
"n": "2012"
},
{
"v": "nd2011/",
"n": "2011"
},
{
"v": "nd20102000/",
"n": "2010-2000"
},
{
"v": "nd19991800/",
"n": "更早"
}
],
"key": "year"
}
],
"dianying": [
{
"name": "类型",
"value": [
{
"v": "",
"n": "全部"
},
{
"v": "aiqing",
"n": "爱情"
},
{
"v": "dongzuo",
"n": "动作"
},
{
"v": "xiju",
"n": "喜剧"
},
{
"v": "zhanzheng",
"n": "战争"
},
{
"v": "kehuan",
"n": "科幻"
},
{
"v": "juqing",
"n": "剧情"
},
{
"v": "wuxia",
"n": "武侠"
},
{
"v": "maoxian",
"n": "冒险"
},
{
"v": "qiangzhan",
"n": "枪战"
},
{
"v": "kongbu",
"n": "恐怖"
},
{
"v": "xuanyi",
"n": "悬疑"
},
{
"v": "fanzui",
"n": "犯罪"
},
{
"v": "qihuan",
"n": "奇幻"
},
{
"v": "donghua",
"n": "动画"
},
{
"v": "jingsong",
"n": "惊悚"
},
{
"v": "jingdian",
"n": "经典"
},
{
"v": "qingchun",
"n": "青春"
},
{
"v": "wenyi",
"n": "文艺"
},
{
"v": "weidianying",
"n": "微电影"
},
{
"v": "guzhuang",
"n": "古装"
},
{
"v": "lishi",
"n": "历史"
},
{
"v": "yundong",
"n": "运动"
},
{
"v": "nongcun",
"n": "农村"
},
{
"v": "ertong",
"n": "儿童"
},
{
"v": "wangluodianying",
"n": "网络电影"
},
{
"v": "qita",
"n": "其它"
}
],
"key": "type"
},
{
"name": "地区",
"value": [
{
"v": "",
"n": "全部"
},
{
"v": "neidi",
"n": "内地"
},
{
"v": "meiguo",
"n": "美国"
},
{
"v": "xianggang",
"n": "香港"
},
{
"v": "taiwan",
"n": "台湾"
},
{
"v": "riben",
"n": "日本"
},
{
"v": "taiguo",
"n": "泰国"
},
{
"v": "yindu",
"n": "印度"
},
{
"v": "dongnanyadiqu",
"n": "东南亚地区"
},
{
"v": "oumeidiqu",
"n": "欧美地区"
},
{
"v": "qita",
"n": "其它"
}
],
"key": "area"
},
{
"name": "年份",
"value": [
{
"v": "",
"n": "全部"
},
{
"v": "2022",
"n": "2022"
},
{
"v": "2021",
"n": "2021"
},
{
"v": "2020",
"n": "2020"
},
{
"v": "2019",
"n": "2019"
},
{
"v": "2018",
"n": "2018"
},
{
"v": "2017",
"n": "2017"
},
{
"v": "2016",
"n": "2016"
},
{
"v": "2015",
"n": "2015"
},
{
"v": "2014",
"n": "2014"
},
{
"v": "2013",
"n": "2013"
},
{
"v": "2012",
"n": "2012"
},
{
"v": "2011",
"n": "2011"
},
{
"v": "20102000",
"n": "2010-2000"
},
{
"v": "19691800",
"n": "更早"
}
],
"key": "year"
}
]
},
"classes": [
{
"type_name": "电影",
"type_id": "dianying"
},
{
"type_name": "电视剧",
"type_id": "dianshiju"
},
{
"type_name": "综艺",
"type_id": "zongyi"
},
{
"type_name": "热播电影",
"type_id": "jingdian"
},
{
"type_name": "动漫",
"type_id": "dongman"
}
]
}

1873
JS/分享戏曲.json Normal file

File diff suppressed because it is too large Load Diff

1857
JS/分享歌曲MV.json Normal file

File diff suppressed because it is too large Load Diff

1878
JS/分享演唱会.json Normal file

File diff suppressed because it is too large Load Diff

5299
JS/分享美食.json Normal file

File diff suppressed because it is too large Load Diff

35
JS/哔哩套餐1.json Normal file

File diff suppressed because one or more lines are too long

1494
JS/哔哩套餐2.json Normal file

File diff suppressed because it is too large Load Diff

452
JS/我的哔哩.js Normal file
View File

@ -0,0 +1,452 @@
/**
* 已知问题
* [推荐]页面'雷电模拟器'播放部份影片会出错'播放器'改成'ijk' & '解码方式'改成'软解'即可正常播放
* 影视TV 超連結跳轉支持
* 影视TV 弹幕支持
* https://t.me/fongmi_offical/
* https://github.com/FongMi/Release/tree/main/apk
* 皮皮虾DMBox 弹幕支持
* 设置 > 窗口预览 > 开启
* https://t.me/pipixiawerun
* vod_area:'bilidanmu'
* Cookie设置
* Cookie获取方法 https://ghproxy.net/https://raw.githubusercontent.com/UndCover/PyramidStore/main/list.md
* Cookie设置方法1: DR-PY 后台管理界面
* CMS后台管理 > 设置中心 > 环境变量 > {"bili_cookie":"XXXXXXX","vmid":"XXXXXX"} > 保存
* Cookie设置方法2: 手动替换Cookie
* 底下代码 headers的
* "Cookie":"$bili_cookie"
* 手动替换为
* "Cookie":"将获取的Cookie黏贴在这"
* 客户端长期Cookie设置教程:
* 抓包哔哩手机端搜索access_key,取任意链接里的access_key和appkey在drpy环境变量中增加同名的环境变量即可
* 此时哔哩.js这个解析可用于此源的解析线路用
* 传参 ?render=1&type=url&params=../json/哔哩教育.json@哔哩教育[]
* 传参 ?render=1&type=url&params=../json/哔哩大全.json@哔哩大全[]
*/
var rule = {
title: '我的哔哩[官]',
host: 'https://api.bilibili.com',
homeUrl: '/x/web-interface/ranking/v2?rid=0&type=origin',
// url:'/x/web-interface/search/type?search_type=video&keyword=fyclass&page=fypage',
url: '/x/web-interface/search/type?search_type=video&fyfilter',
filter_url: 'keyword=fyclass{{fl.tid}}&page=fypage&duration={{fl.duration}}&order={{fl.order}}',
class_parse: $js.toString(() => {
// let html = request('{{host}}/files/json/哔哩教育.json');
log('rule.params:' + rule.params);
let html = request(rule.params);
let json = dealJson(html);
input = json.classes;
homeObj.filter = json.filter;
// log(input);
}),
filterable: 1,
detailUrl: '/x/web-interface/view/detail?aid=fyid',
searchUrl: '/x/web-interface/search/type?search_type=video&keyword=**&page=fypage',
searchable: 2,
quickSearch: 0,
params: 'http://127.0.0.1:9978/file/jars/哔哩大全.json',
// params: '?render=1&type=url&params=../json/哔哩教育.json@哔哩教育[官]',
// params: '?render=1&type=url&params=../json/哔哩大全.json@哔哩大全[官]',
headers: {
"User-Agent": "PC_UA",
"Referer": "https://www.bilibili.com",
"Cookie": "SESSDATA=01c79709%2C1711618905%2C244c3%2A91CjA9UUnRb_kJg03J5FqUbin76yMY90o1-ckJsM1ItQH21ns4hgcS6Le6oMR3SKtC18QSVmxSbGRhN3cyS3NReERsOHRfYVlhTWJKZjZyTF9wUWJXbjNfaF9qWklFMFpoeVg1ZUhFb0Q0MGFiN3FYd1N3UEFEY1oxX29IdmFSRVVLamcybGhhSkJnIIEC; bili_jct=e9d6e9df733afde2a03693d63a4e77dc; DedeUserID=186957646;"
},
timeout: 5000,
limit: 8,
play_parse: true,
double: false,
lazy: `js:
let ids = input.split('_');
let dan = 'https://api.bilibili.com/x/v1/dm/list.so?oid=' + ids[1];
let result = {};
let iurl = 'https://api.bilibili.com:443/x/player/playurl?avid=' + ids[0] + '&cid=' + ids[1] + '&qn=116';
let html = request(iurl);
let jRoot = JSON.parse(html);
let jo = jRoot.data;
let ja = jo.durl;
let maxSize = -1;
let position = -1;
ja.forEach(function(tmpJo, i) {
if (maxSize < Number(tmpJo.size)) {
maxSize = Number(tmpJo.size);
position = i
}
});
let purl = '';
if (ja.length > 0) {
if (position === -1) {
position = 0
}
purl = ja[position].url
}
result.parse = 0;
result.playUrl = '';
result.url = unescape(purl);
result.header = {
'Referer': 'https://live.bilibili.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'
};
if (/\\.flv/.test(purl)) {
result.contentType = 'video/x-flv';
} else {
result.contentType = '';
}
result.danmaku = dan;
input = result
`,
推荐: `js:
function stripHtmlTag(src) {
return src.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&.{1,5};/g, '').replace(/\\s{2,}/g, ' ');
}
function turnDHM(duration) {
let min = '';
let sec = '';
try {
min = duration.split(':')[0];
sec = duration.split(':')[1];
} catch (e) {
min = Math.floor(duration / 60);
sec = duration % 60;
}
if (isNaN(parseInt(duration))) {
return '无效输入';
}
if (min == 0) {
return sec + '秒'
} else if (0 < min && min < 60) {
return min + '分'
} else if (60 <= min && min < 1440) {
if (min % 60 == 0) {
let h = min / 60;
return h + '小时'
} else {
let h = min / 60;
h = (h + '').split('.')[0];
let m = min % 60;
return h + '小时' + m + '分';
}
} else if (min >= 1440) {
let d = min / 60 / 24;
d = (d + '').split('.')[0];
let h = min / 60 % 24;
h = (h + '').split('.')[0];
let m = min % 60;
let dhm = '';
if (d > 0) {
dhm = d + '天'
}
if (h >= 1) {
dhm = dhm + h + '小时'
}
if (m > 0) {
dhm = dhm + m + '分'
}
return dhm
}
return null
}
function ConvertNum(num) {
let _ws = Math.pow(10, 1);
let _b = 1e4;
if (num < _b) {
return num.toString();
}
let _r = '';
let _strArg = ['', '万', '亿', '万亿'];
let _i = Math.floor(Math.log(num) / Math.log(_b));
if (_i > 3) {
_i = 3;
}
_r = Math.floor(num / Math.pow(_b, _i) * _ws) / _ws + _strArg[_i];
return _r;
}
let html = request(input);
let vodList = JSON.parse(html).data.list;
let videos = [];
vodList.forEach(function(vod) {
let aid = vod.aid;
let title = stripHtmlTag(vod.title);
let img = vod.pic;
if (img.startsWith('//')) {
img = 'https:' + img;
}
let remark = turnDHM(vod.duration) + ' ▶' + ConvertNum(vod.stat.view) + ' 🆙' + vod.owner.name;
videos.push({
vod_id: aid,
vod_name: title,
vod_pic: img,
vod_remarks: remark
})
});
VODS = videos
`,
一级: `js:
if (cateObj.tid.endsWith('_clicklink')) {
cateObj.tid = cateObj.tid.split('_')[0];
input = HOST + '/x/web-interface/search/type?search_type=video&keyword=' + cateObj.tid + '&page=' + MY_PAGE;
}
function stripHtmlTag(src) {
return src.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&.{1,5};/g, '').replace(/\\s{2,}/g, ' ');
}
function turnDHM(duration) {
let min = '';
let sec = '';
try {
min = duration.split(':')[0];
sec = duration.split(':')[1];
} catch (e) {
min = Math.floor(duration / 60);
sec = duration % 60;
}
if (isNaN(parseInt(duration))) {
return '无效输入';
}
if (min == 0) {
return sec + '秒'
} else if (0 < min && min < 60) {
return min + '分'
} else if (60 <= min && min < 1440) {
if (min % 60 == 0) {
let h = min / 60;
return h + '小时'
} else {
let h = min / 60;
h = (h + '').split('.')[0];
let m = min % 60;
return h + '小时' + m + '分';
}
} else if (min >= 1440) {
let d = min / 60 / 24;
d = (d + '').split('.')[0];
let h = min / 60 % 24;
h = (h + '').split('.')[0];
let m = min % 60;
let dhm = '';
if (d > 0) {
dhm = d + '天'
}
if (h >= 1) {
dhm = dhm + h + '小时'
}
if (m > 0) {
dhm = dhm + m + '分'
}
return dhm
}
return null
}
function ConvertNum(num) {
let _ws = Math.pow(10, 1);
let _b = 1e4;
if (num < _b) {
return num.toString();
}
let _r = '';
let _strArg = ['', '万', '亿', '万亿'];
let _i = Math.floor(Math.log(num) / Math.log(_b));
if (_i > 3) {
_i = 3;
}
_r = Math.floor(num / Math.pow(_b, _i) * _ws) / _ws + _strArg[_i];
return _r;
}
let data = [];
let vodList = [];
if (MY_CATE === '推荐') {
input = HOST + '/x/web-interface/index/top/rcmd?ps=14&fresh_idx=' + MY_PAGE + '&fresh_idx_1h=' + MY_PAGE;
data = JSON.parse(request(input)).data;
vodList = data.item;
} else if (MY_CATE === '历史记录') {
input = HOST + '/x/v2/history?pn=' + MY_PAGE;
data = JSON.parse(request(input)).data;
vodList = data;
} else {
data = JSON.parse(request(input)).data;
vodList = data.result;
}
let videos = [];
vodList.forEach(function(vod) {
let aid = vod.aid?vod.aid:vod.id;
let title = stripHtmlTag(vod.title);
let img = vod.pic;
if (img.startsWith('//')) {
img = 'https:' + img;
}
let play = '';
let danmaku = '';
if (MY_CATE === '推荐') {
play = ConvertNum(vod.stat.view);
danmaku = vod.stat.danmaku;
} else if (MY_CATE === '历史记录') {
play = ConvertNum(vod.stat.view);
danmaku = vod.stat.danmaku;
} else {
play = ConvertNum(vod.play);
danmaku = vod.video_review;
}
let remark = turnDHM(vod.duration) + ' ▶' + play + ' 💬' + danmaku;
videos.push({
vod_id: aid,
vod_name: title,
vod_pic: img,
vod_remarks: remark
})
});
VODS = videos
`,
二级: `js:
function stripHtmlTag(src) {
return src.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&.{1,5};/g, '').replace(/\\s{2,}/g, ' ');
}
let html = request(input);
let jo = JSON.parse(html).data.View;
// 历史记录
let cookies = rule_fetch_params.headers.Cookie.split(';');
let bili_jct = '';
cookies.forEach(cookie => {
if (cookie.includes('bili_jct')) {
bili_jct = cookie.split('=')[1];
}
});
if (bili_jct !== '') {
let historyReport = 'https://api.bilibili.com/x/v2/history/report';
let dataPost = {
aid: jo.aid,
cid: jo.cid,
csrf: bili_jct,
};
post(historyReport, dataPost, 'form');
}
let stat = jo.stat;
let up_info = JSON.parse(html).data.Card;
let relation = up_info.following ? '已关注' : '未关注';
let aid = jo.aid;
let title = stripHtmlTag(jo.title);
let pic = jo.pic;
let desc = jo.desc;
let date = new Date(jo.pubdate * 1000);
let yy = date.getFullYear().toString();
let mm = date.getMonth()+1;
mm = mm < 10 ? ('0' + mm) : mm;
let dd = date.getDate();
dd = dd < 10 ? ('0' + dd) : dd;
let up_name = jo.owner.name;
let typeName = jo.tname;
// let remark = jo.duration;
let vod = {
vod_id: aid,
vod_name: title,
vod_pic: pic,
type_name: typeName,
vod_year: yy+mm+dd,
vod_area: 'bilidanmu',
// vod_remarks: remark,
vod_tags: 'mv',
// vod_director: '🆙 ' + up_name + ' 👥 ' + up_info.follower + ' ' + relation,
vod_director: '🆙 ' + '[a=cr:' + JSON.stringify({'id':up_name + '_clicklink','name':up_name}) + '/]' + up_name + '[/a]' + ' 👥 ' + up_info.follower + ' ' + relation,
vod_actor: '▶' + stat.view + ' ' + '💬' + stat.danmaku + ' ' + '👍' + stat.like + ' ' + '💰' + stat.coin + ' ' + '⭐' + stat.favorite,
vod_content: desc
};
let ja = jo.pages;
let treeMap = {};
let playurls = [];
ja.forEach(function(tmpJo) {
let cid = tmpJo.cid;
let part = tmpJo.part.replaceAll('#', '﹟').replaceAll('$', '﹩');
playurls.push(
part + '$' + aid + '_' + cid
)
});
treeMap['B站'] = playurls.join('#');
let relatedData = JSON.parse(html).data.Related;
playurls = [];
relatedData.forEach(function(rd) {
let ccid = rd.cid;
let title = rd.title.replaceAll('#', '﹟').replaceAll('$', '﹩');
let aaid = rd.aid;
playurls.push(
title + '$' + aaid + '_' + ccid
)
});
treeMap['分享者推荐'] = playurls.join('#');
vod.vod_play_from = Object.keys(treeMap).join("$$$");
vod.vod_play_url = Object.values(treeMap).join("$$$");
VOD = vod;
`,
搜索: `js:
let html = request(input);
function stripHtmlTag(src) {
return src.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&.{1,5};/g, '').replace(/\\s{2,}/g, ' ');
}
function turnDHM(duration) {
let min = '';
let sec = '';
try {
min = duration.split(':')[0];
sec = duration.split(':')[1];
} catch (e) {
min = Math.floor(duration / 60);
sec = duration % 60;
}
if (isNaN(parseInt(duration))) {
return '无效输入';
}
if (min == 0) {
return sec + '秒'
} else if (0 < min && min < 60) {
return min + '分'
} else if (60 <= min && min < 1440) {
if (min % 60 == 0) {
let h = min / 60;
return h + '小时'
} else {
let h = min / 60;
h = (h + '').split('.')[0];
let m = min % 60;
return h + '小时' + m + '分';
}
} else if (min >= 1440) {
let d = min / 60 / 24;
d = (d + '').split('.')[0];
let h = min / 60 % 24;
h = (h + '').split('.')[0];
let m = min % 60;
let dhm = '';
if (d > 0) {
dhm = d + '天'
}
if (h >= 1) {
dhm = dhm + h + '小时'
}
if (m > 0) {
dhm = dhm + m + '分'
}
return dhm
}
return null
}
let videos = [];
let vodList = JSON.parse(html).data.result;
vodList.forEach(function(vod) {
let aid = vod.aid;
let title = stripHtmlTag(vod.title);
let img = vod.pic;
if (img.startsWith('//')) {
img = 'https:' + img;
}
let remark = turnDHM(vod.duration);
videos.push({
vod_id: aid,
vod_name: title,
vod_pic: img,
vod_remarks: remark
})
});
VODS = videos
`,
}