@@ -91,17 +91,20 @@ lsQ9xY0xYPpRZUZKMEeR7e9gmRNLAgMBAAE=
91
91
-----END RSA PUBLIC KEY-----
92
92
` . trim ( ) ;
93
93
94
+ // @ts -ignore
94
95
let pkcs1_public_pem = `
95
96
MEgCQQCrI0pQ/ERRpJ3Ou190XJedFq846nDYP52rOtXyDxlFK5D3p6JJu2RwsKwy
96
97
lsQ9xY0xYPpRZUZKMEeR7e9gmRNLAgMBAAE=
97
98
` . trim ( ) ;
98
99
100
+ // @ts -ignore
99
101
let pkcs8_public = `
100
102
-----BEGIN PUBLIC KEY-----
101
103
MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKsjSlD8RFGknc67X3Rcl50WrzjqcNg/
102
104
nas61fIPGUUrkPenokm7ZHCwrDKWxD3FjTFg+lFlRkowR5Ht72CZE0sCAwEAAQ==
103
105
-----END PUBLIC KEY-----` . trim ( ) ;
104
106
107
+ // @ts -ignore
105
108
let pkcs8_public_pem = `
106
109
MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKsjSlD8RFGknc67X3Rcl50WrzjqcNg/
107
110
nas61fIPGUUrkPenokm7ZHCwrDKWxD3FjTFg+lFlRkowR5Ht72CZE0sCAwEAAQ==
@@ -119,6 +122,7 @@ EJNBXVRTK42SNsZ2hJ/9xLwOwnH2epT8Q43s3Q==
119
122
-----END RSA PRIVATE KEY-----
120
123
` . trim ( )
121
124
125
+ // @ts -ignore
122
126
let pkcs8_private = `
123
127
-----BEGIN PRIVATE KEY-----
124
128
MIIBUgIBADANBgkqhkiG9w0BAQEFAASCATwwggE4AgEAAkEAqyNKUPxEUaSdzrtf
@@ -263,7 +267,7 @@ const pre = () => {
263
267
let rule = { } ;
264
268
// @ts -ignore
265
269
let vercode = typeof pdfl === 'function' ? 'drpy3.1' : 'drpy3' ;
266
- const VERSION = `${ vercode } 3.9.50beta24 20240601 ` ;
270
+ const VERSION = `${ vercode } 3.9.50beta25 20240604 ` ;
267
271
/** 已知问题记录
268
272
* 1.影魔的jinjia2引擎不支持 {{fl}}对象直接渲染 (有能力解决的话尽量解决下,支持对象直接渲染字符串转义,如果加了|safe就不转义)[影魔牛逼,最新的文件发现这问题已经解决了]
269
273
* Array.prototype.append = Array.prototype.push; 这种js执行后有毛病,for in 循环列表会把属性给打印出来 (这个大毛病需要重点排除一下)
@@ -291,7 +295,7 @@ const IOS_UA =
291
295
const RULE_CK = 'cookie' ; // 源cookie的key值
292
296
// const KEY = typeof(key)!=='undefined'&&key?key:'drpy_' + (rule.title || rule.host); // 源的唯一标识
293
297
const CATE_EXCLUDE = '首页|留言|APP|下载|资讯|新闻|动态' ;
294
- const TAB_EXCLUDE = '猜你|喜欢|下载|剧情|热播 ' ;
298
+ const TAB_EXCLUDE = '猜你|喜欢|下载|剧情|榜|评论 ' ;
295
299
const OCR_RETRY = 3 ; // ocr验证重试次数
296
300
// const OCR_API = 'http://drpy.nokia.press:8028/ocr/drpy/text';//ocr在线识别接口
297
301
const OCR_API = 'https://api.nn.ci/ocr/b64/text' ; //ocr在线识别接口
@@ -614,6 +618,7 @@ Object.defineProperty(Object.prototype, 'myValues', {
614
618
var res = [ ]
615
619
for ( var k in obj ) {
616
620
if ( obj . hasOwnProperty ( k ) ) { //需判断是否是本身的属性
621
+ // @ts -ignore
617
622
res . push ( obj [ k ] ) ;
618
623
}
619
624
}
@@ -631,6 +636,7 @@ if (typeof Object.prototype.values != 'function') {
631
636
var res = [ ]
632
637
for ( var k in obj ) {
633
638
if ( obj . hasOwnProperty ( k ) ) { //需判断是否是本身的属性
639
+ // @ts -ignore
634
640
res . push ( obj [ k ] ) ;
635
641
}
636
642
}
@@ -984,6 +990,7 @@ const RSA = {
984
990
decode ( data , key , option ) {
985
991
option = option || { } ;
986
992
if ( typeof JSEncrypt === 'function' ) {
993
+ // @ts -ignore
987
994
const chunkSize = option . chunkSize ?? 117 ; // 默认分段长度为117
988
995
const privateKey = this . getPrivateKey ( key ) ;
989
996
const decryptor = new JSEncrypt ( ) ;
@@ -995,6 +1002,7 @@ const RSA = {
995
1002
encode ( data , key , option ) {
996
1003
option = option || { } ;
997
1004
if ( typeof JSEncrypt === 'function' ) {
1005
+ // @ts -ignore
998
1006
const chunkSize = option . chunkSize ?? 117 ; // 默认分段长度为117
999
1007
const publicKey = this . getPublicKey ( key ) ;
1000
1008
const encryptor = new JSEncrypt ( ) ;
@@ -1113,13 +1121,14 @@ const fixAdM3u8 = (m3u8_text: string, m3u8_url: string, ad_remove: string) => {
1113
1121
return m3u8_text ;
1114
1122
} ;
1115
1123
1124
+
1116
1125
/**
1117
1126
* 智能对比去除广告。支持嵌套m3u8。只需要传入播放地址
1118
1127
* @param m3u8_url m3u8播放地址
1119
1128
* @param headers 自定义访问m3u8的请求头,可以不传
1120
1129
* @returns {string }
1121
1130
*/
1122
- const fixAdM3u8Ai = ( m3u8_url : string , headers :object = null ) => {
1131
+ const fixAdM3u8Ai = ( m3u8_url : string , headers :object | null = null ) => {
1123
1132
let ts = new Date ( ) . getTime ( ) ;
1124
1133
let option = headers ? { headers :headers } :{ } ;
1125
1134
@@ -1494,7 +1503,7 @@ const jq = parseTags.jq;
1494
1503
* @returns {string }
1495
1504
*/
1496
1505
const readFile = ( filePath ) => {
1497
- // filePath = filePath || './uri.min.js';
1506
+ filePath = filePath || './uri.min.js' ;
1498
1507
// var fd = os.open(filePath);
1499
1508
// var buffer = new ArrayBuffer(1024);
1500
1509
// var len = os.read(fd, buffer, 0, 1024);
@@ -1548,6 +1557,7 @@ var OcrApi = {
1548
1557
}
1549
1558
code = html || '' ;
1550
1559
} catch ( e ) {
1560
+ // @ts -ignore
1551
1561
log ( `OCR识别验证码发生错误:${ e . message } ` )
1552
1562
}
1553
1563
return code
@@ -1799,6 +1809,7 @@ const request = (url: string, obj: any = undefined, ocr_flag: boolean = false) =
1799
1809
* @returns {string|DocumentFragment|* }
1800
1810
*/
1801
1811
const post = ( url : string , obj :object = { } ) => {
1812
+ // @ts -ignore
1802
1813
obj . method = 'POST' ;
1803
1814
return request ( url , obj ) ;
1804
1815
} ;
@@ -1812,6 +1823,7 @@ const post = (url: string, obj:object={}) => {
1812
1823
* @returns {{cookie: string, html: (*|string|DocumentFragment)} }
1813
1824
*/
1814
1825
const reqCookie = ( url :string , obj :object = { } , all_cookie :boolean = false ) => {
1826
+ // @ts -ignore
1815
1827
obj . withHeaders = true ;
1816
1828
let html = request ( url , obj ) ;
1817
1829
let json = JSON . parse ( html ) ;
@@ -3027,21 +3039,24 @@ function getOriginalJs(js_code){
3027
3039
* @param arg
3028
3040
*/
3029
3041
function runMain ( main_func_code , arg ) {
3042
+ // @ts -ignore
3030
3043
let mainFunc = function ( arg ) { return '' } ;
3031
3044
try {
3032
3045
eval ( main_func_code + '\nmainFunc=main;' ) ;
3033
3046
return mainFunc ( arg ) ;
3034
3047
} catch ( e ) {
3048
+ // @ts -ignore
3035
3049
log ( `执行main_funct发生了错误:${ e . message } ` ) ;
3036
3050
return ''
3037
3051
}
3038
3052
}
3039
3053
3054
+ // @ts -ignore
3040
3055
/**
3041
3056
* js源预处理特定返回对象中的函数
3042
3057
* @param ext
3043
3058
*/
3044
- const init = ( ext ) => {
3059
+ const init = ( ext : string | object ) => {
3045
3060
console . log ( '[t3]init' ) ;
3046
3061
// init前重置rule和fetch_params
3047
3062
rule = { } ;
@@ -3071,6 +3086,7 @@ const init = (ext) => {
3071
3086
ext = getOriginalJs ( ext ) ;
3072
3087
// eval(ext.replace('var rule', 'rule'));
3073
3088
// eval("(function(){'use strict';"+ext.replace('var rule', 'rule')+"})()");
3089
+ // @ts -ignore
3074
3090
eval ( "(function(){" + ext . replace ( 'var rule' , 'rule' ) + "})()" ) ;
3075
3091
}
3076
3092
}
@@ -3098,6 +3114,7 @@ const init = (ext) => {
3098
3114
console . log ( `[t3][publish]执行${ rule [ 'hostJs' ] } 获取host发生错误:${ e } ` ) ;
3099
3115
}
3100
3116
}
3117
+ rule [ '类型' ] = rule [ '类型' ] || '影视' ; // 影视|听书|漫画|小说
3101
3118
rule [ 'url' ] = rule [ 'url' ] || '' ;
3102
3119
rule [ 'double' ] = rule [ 'double' ] || false ;
3103
3120
rule [ 'homeUrl' ] = rule [ 'homeUrl' ] || '' ;
@@ -3186,6 +3203,11 @@ const init = (ext) => {
3186
3203
return init_test ( ) ;
3187
3204
} catch ( e ) {
3188
3205
console . info ( '[t3][init]init_test发生错误:' , e ) ;
3206
+ return {
3207
+ version : VERSION ,
3208
+ rkey : RKEY ,
3209
+ rule : { } ,
3210
+ }
3189
3211
}
3190
3212
} ;
3191
3213
0 commit comments