Skip to content

Commit b4395b8

Browse files
author
Taois
committed
feat: 把一些dr2源转成ds源
1 parent 64dd4de commit b4395b8

File tree

9 files changed

+141
-112
lines changed

9 files changed

+141
-112
lines changed

docs/updateRecord.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
1. 升级drpyS 兼容drpy2的 二级*,二级object,一级class_parse字符串写法。
88
2. 把某些dr2源简单修改为ds源作为示例
9-
3. pdfl 函数存在问题,下个版本再修,先不用
9+
3. 已修复 `pdfl` 函数逻辑错误
1010

1111
### 20250908
1212

libs/drpyS.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1893,7 +1893,7 @@ async function commonDetailListParse(moduleObject, method, injectVars, args) {
18931893
let tabName = tab_ext ? $pdfh(html, tab_ext) : tab_name;
18941894

18951895
let new_vod_list = [];
1896-
if (typeof this.pdfl2 === 'function') { // pdfl函数有问题
1896+
if (typeof this.pdfl === 'function') {
18971897
new_vod_list = this.pdfl(html, p1, list_text, list_url, this.MY_URL);
18981898
if (list_url_prefix) {
18991899
new_vod_list = new_vod_list.map(it => it.split('$')[0] + '$' + list_url_prefix + it.split('$').slice(1).join('$'));

libs_drpy/htmlParser.js

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -148,8 +148,7 @@ class Jsoup {
148148
return res;
149149
}
150150

151-
pdfl(html, parse, list_text, list_url, url_key) {
152-
// fixme
151+
pdfl(html, parse, list_text, list_url, MY_URL) {
153152
if (!html || !parse) return [];
154153
parse = this.parseHikerToJq(parse, false);
155154
const new_vod_list = [];
@@ -165,17 +164,15 @@ class Jsoup {
165164
ret.each((_, element) => {
166165
const _html = `${doc(element)}`;
167166
// new_vod_list.push(`${doc(element)}`);
168-
let _doc = cheerio.load(_html);
169-
let _ret1 = null;
170-
let _title = this.parseOneRule(_doc, list_text, _ret1);
171-
let _ret2 = null;
172-
let _url = this.parseOneRule(_doc, list_url, _ret2);
173-
new_vod_list.push(`${_title}${_url}`);
167+
let _title = this.pdfh(_html, list_text);
168+
let _url = this.pd(_html, list_url, MY_URL);
169+
new_vod_list.push(`${_title}$${_url}`);
174170
});
175171

176172
return new_vod_list;
177173
}
178174

175+
179176
pdfh(html, parse, baseUrl = '') {
180177
if (!html || !parse) return '';
181178

public/index.html

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
</head>
99
<body>
1010
<h1 id="drpysdrpy-node">drpyS(drpy-node)</h1>
11-
<p>nodejs作为服务端的drpy实现。全面升级异步写法<br><del>积极开发中,每日一更</del>,当前进度 <code>96%</code><br><del>找工作中,随缘更新</del><br>上班当牛马,下班要带娃,阶段性佛系趁娃睡觉熬夜更新</p>
11+
<p>nodejs作为服务端的drpy实现。全面升级异步写法<br><del>积极开发中,每日一更</del>,当前进度 <code>97%</code><br><del>找工作中,随缘更新</del><br>上班当牛马,下班要带娃,阶段性佛系趁娃睡觉熬夜更新</p>
1212
<h3 id="常用超链接">常用超链接</h3>
1313
<ul>
1414
<li><a href="docs/apidoc.md">接口文档</a> | <a href="docs/apiList.md">接口列表如定时任务</a> | <a href="https://github.com/waifu-project/movie/pull/135">小猫影视-待对接T4</a></li>
@@ -41,6 +41,8 @@ <h3 id="插件应用列表">插件应用列表</h3>
4141
<li><a href="/cat/index.html">在线猫ds源主页</a></li>
4242
</ul>
4343
<h2 id="更新记录">更新记录</h2>
44+
<h3 id="20250909">20250909</h3>
45+
<p>更新至V1.2.28</p>
4446
<h3 id="20250908">20250908</h3>
4547
<p>更新至V1.2.27</p>
4648
<h3 id="20250907">20250907</h3>
Lines changed: 36 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44
filterable: 1,
55
quickSearch: 0,
66
title: '360影视[官]',
7-
lang: 'dr2'
7+
'类型': '影视',
8+
lang: 'ds'
89
})
910
*/
1011

@@ -29,18 +30,17 @@ var rule = {
2930
multi: 1,
3031
searchable: 2,
3132
play_parse: true,
32-
lazy: 'js:input=input.split("?")[0];log(input);',
33-
// 疑似t4专用的
34-
// lazy:'js:input={parse: 1, playUrl: "", jx: 1, url: input.split("?")[0]}',
35-
// 手动调用解析请求json的url,此lazy不方便
36-
// lazy:'js:input="https://cache.json.icu/home/api?type=ys&uid=292796&key=fnoryABDEFJNPQV269&url="+input.split("?")[0];log(input);let html=JSON.parse(request(input));log(html);input=html.url||input',
33+
lazy: async function () {
34+
let {input} = this;
35+
return input.split("?")[0];
36+
},
3737
推荐: 'json:data;title;cover;comment;cat+ent_id;description',
3838
一级: 'json:data.movies;title;cover;pubdate;id;description',
39-
二级: '',
40-
二级: $js.toString(() => {
41-
let html = JSON.parse(fetch(input, fetch_params));
39+
二级: async function () {
40+
let {input, fetch_params} = this;
41+
let html = JSON.parse(await request(input, fetch_params));
4242
let data = html.data;
43-
let tilte = data.title;
43+
let title = data.title;
4444
let img = data.cdncover;
4545
let vod_type = data.moviecategory.join(",");
4646
let area = data.area.join(",");
@@ -49,29 +49,29 @@ var rule = {
4949
let content = data.description;
5050
let base_vod = {
5151
vod_id: input,
52-
vod_name: tilte,
52+
vod_name: title,
5353
type_name: vod_type,
5454
vod_actor: actor,
5555
vod_director: director,
5656
vod_content: content,
5757
vod_remarks: area,
58-
vod_pic: urljoin2(input, img)
58+
vod_pic: urljoin(input, img)
5959
};
6060
let delta = 50;
6161
let vod_play = {};
6262
let sites = data.playlink_sites;
63-
sites.forEach(function (site) {
63+
for (const site of sites) {
6464
let playList = "";
6565
let vodItems = [];
66-
print(data)
66+
// print(data)
6767
if (data.allupinfo) {
6868
let total = parseInt(data.allupinfo[site]);
69-
print(total)
69+
// print(total)
7070
for (let j = 1; j < total; j += delta) {
7171
let end = Math.min(total, j + delta - 1);
72-
print(end)
73-
let url2 = buildUrl(input, { start: j, end: end, site: site });
74-
let vod_data = JSON.parse(fetch(url2), fetch_params).data;
72+
// print(end)
73+
let url2 = buildUrl(input, {start: j, end: end, site: site});
74+
let vod_data = JSON.parse(await request(url2), fetch_params).data;
7575
if (vod_data != null) {
7676
if (vod_data.allepidetail) {
7777
vod_data = vod_data.allepidetail[site];
@@ -89,21 +89,28 @@ var rule = {
8989
} else {
9090
let item = data.playlinksdetail[site];
9191
vodItems.push((item.sort || "") + "$" + urlDeal(item.default_url || ""))
92-
} if (vodItems.length > 0) {
92+
}
93+
if (vodItems.length > 0) {
9394
playList = vodItems.join("#")
94-
} if (playList.length < 1) {
95-
return
96-
} vod_play[site] = playList
97-
});
95+
}
96+
if (playList.length < 1) {
97+
continue;
98+
}
99+
vod_play[site] = playList
100+
}
98101
let tabs = Object.keys(vod_play);
99-
let playUrls = []; for (let id in tabs) {
100-
print("id:" + id); playUrls.push(vod_play[tabs[id]])
101-
} if (tabs.length > 0) {
102-
let vod_play_from = tabs.join("$$$"); let vod_play_url = playUrls.join("$$$");
102+
let playUrls = [];
103+
for (let id in tabs) {
104+
// print("id:" + id);
105+
playUrls.push(vod_play[tabs[id]])
106+
}
107+
if (tabs.length > 0) {
108+
let vod_play_from = tabs.join("$$$");
109+
let vod_play_url = playUrls.join("$$$");
103110
base_vod.vod_play_from = vod_play_from;
104111
base_vod.vod_play_url = vod_play_url
105112
}
106-
VOD = base_vod;
107-
}),
113+
return base_vod;
114+
},
108115
搜索: 'json:data.longData.rows;titleTxt||titlealias;cover;cat_name;cat_id+en_id;description',
109116
}
Lines changed: 32 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44
filterable: 1,
55
quickSearch: 0,
66
title: '优酷[官]',
7-
lang: 'dr2'
7+
'类型': '影视',
8+
lang: 'ds'
89
})
910
*/
1011

@@ -30,14 +31,16 @@ var rule = {
3031
class_url: '电视剧&电影&综艺&动漫&少儿&纪录片&文化&亲子&教育&搞笑&生活&体育&音乐&游戏',
3132
limit: 20,
3233
play_parse: true,
33-
lazy: $js.toString(() => {
34-
input = {
34+
lazy: async function () {
35+
let {input} = this;
36+
return {
3537
parse: 1,
3638
jx: 1,
3739
url: input
38-
};
39-
}),
40-
一级: $js.toString(() => {
40+
}
41+
},
42+
一级: async function () {
43+
let {input, MY_CATE, MY_FL, MY_PAGE, fetch_params} = this;
4144
let d = [];
4245
MY_FL.type = MY_CATE;
4346
let fl = stringify(MY_FL);
@@ -51,7 +54,7 @@ var rule = {
5154
input = input.replace("optionRefresh=1", "session=" + encodeUrl(old_session))
5255
}
5356
}
54-
let html = fetch(input, fetch_params);
57+
let html = await request(input, fetch_params);
5558
try {
5659
html = JSON.parse(html);
5760
let lists = html.data.filterData.listData;
@@ -78,23 +81,24 @@ var rule = {
7881
} catch (e) {
7982
log("一级列表解析发生错误:" + e.message)
8083
}
81-
setResult(d);
82-
}),
83-
二级: $js.toString(() => {
84-
var d = [];
85-
VOD = {};
86-
let html = request(input);
84+
return setResult(d);
85+
},
86+
二级: async function () {
87+
let {input, fetch_params, MY_URL} = this;
88+
let d = [];
89+
let VOD = {};
90+
let html = await request(input);
8791
let json = JSON.parse(html);
8892
if (/keyword/.test(input)) {
8993
input = "https://search.youku.com/api/search?appScene=show_episode&showIds=" + json.pageComponentList[0].commonData.showId;
90-
json = JSON.parse(fetch(MY_URL, fetch_params))
94+
json = JSON.parse(await request(MY_URL, fetch_params))
9195
}
9296
let video_lists = json.serisesList;
93-
var name = json.sourceName;
97+
let name = json.sourceName;
9498
if (//.test(name) && video_lists.length > 0) {
9599
let ourl = "https://v.youku.com/v_show/id_" + video_lists[0].videoId + ".html";
96100
let _img = video_lists[0].thumbUrl;
97-
let html = fetch(ourl, {
101+
let html = await request(ourl, {
98102
headers: {
99103
Referer: "https://v.youku.com/",
100104
"User-Agent": PC_UA
@@ -126,7 +130,7 @@ var rule = {
126130
VOD.vod_content = JJ
127131
} catch (e) {
128132
log("海报渲染发生错误:" + e.message);
129-
print(json);
133+
// print(json);
130134
VOD.vod_remarks = name
131135
}
132136
}
@@ -140,6 +144,8 @@ var rule = {
140144
return urlencode(url)
141145
}
142146

147+
let play_url = '';
148+
143149
play_url = play_url.replace("&play_url=", "&type=json&play_url=");
144150
video_lists.forEach(function (it) {
145151
let url = "https://v.youku.com/v_show/id_" + it.videoId + ".html";
@@ -162,11 +168,14 @@ var rule = {
162168
return it.title + "$" + it.url
163169
})
164170
.join("#");
165-
}),
166171

167-
搜索: $js.toString(() => {
168-
var d = [];
169-
let html = request(input);
172+
return VOD;
173+
},
174+
175+
搜索: async function () {
176+
let {input} = this;
177+
let d = [];
178+
let html = await request(input);
170179
let json = JSON.parse(html);
171180
json.pageComponentList.forEach(function (it) {
172181
if (it.hasOwnProperty("commonData")) {
@@ -180,6 +189,6 @@ var rule = {
180189
})
181190
}
182191
});
183-
setResult(d)
184-
}),
192+
return setResult(d)
193+
},
185194
}
Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
/*
22
@header({
3-
searchable: 2,
3+
searchable: 0,
44
filterable: 1,
55
quickSearch: 0,
66
title: '清风DJ[听]',
7-
lang: 'dr2'
7+
'类型': '影视',
8+
lang: 'ds'
89
})
910
*/
1011

@@ -30,5 +31,5 @@ var rule = {
3031
推荐: '#recs-list&&li;h2&&Text;*;i&&Text;a&&href',
3132
一级: '.isgood_list;a&&title;img&&src;.sc_1&&Text;a&&href',
3233
二级: '*',
33-
搜索: '*',
34+
// 搜索: '*',
3435
}

0 commit comments

Comments
 (0)