|
|
@ -283,7 +283,7 @@ function pre() { |
|
|
|
|
|
|
|
|
|
|
|
let rule = {}; |
|
|
|
let rule = {}; |
|
|
|
let vercode = typeof (pdfl) === 'function' ? 'drpy2.1' : 'drpy2'; |
|
|
|
let vercode = typeof (pdfl) === 'function' ? 'drpy2.1' : 'drpy2'; |
|
|
|
const VERSION = vercode + ' 3.9.50beta31 20240617'; |
|
|
|
const VERSION = vercode + ' 3.9.50beta33 20240709'; |
|
|
|
/** 已知问题记录 |
|
|
|
/** 已知问题记录 |
|
|
|
* 1.影魔的jinjia2引擎不支持 {{fl}}对象直接渲染 (有能力解决的话尽量解决下,支持对象直接渲染字符串转义,如果加了|safe就不转义)[影魔牛逼,最新的文件发现这问题已经解决了] |
|
|
|
* 1.影魔的jinjia2引擎不支持 {{fl}}对象直接渲染 (有能力解决的话尽量解决下,支持对象直接渲染字符串转义,如果加了|safe就不转义)[影魔牛逼,最新的文件发现这问题已经解决了] |
|
|
|
* Array.prototype.append = Array.prototype.push; 这种js执行后有毛病,for in 循环列表会把属性给打印出来 (这个大毛病需要重点排除一下) |
|
|
|
* Array.prototype.append = Array.prototype.push; 这种js执行后有毛病,for in 循环列表会把属性给打印出来 (这个大毛病需要重点排除一下) |
|
|
@ -1060,8 +1060,31 @@ function fixAdM3u8Ai(m3u8_url, headers) { |
|
|
|
let s = m3u8.trim().split('\n').filter(it => it.trim()).join('\n'); |
|
|
|
let s = m3u8.trim().split('\n').filter(it => it.trim()).join('\n'); |
|
|
|
let ss = s.split('\n') |
|
|
|
let ss = s.split('\n') |
|
|
|
//找出第一条播放地址
|
|
|
|
//找出第一条播放地址
|
|
|
|
let firststr = ss.find(x => !x.startsWith('#')); |
|
|
|
//let firststr = ss.find(x => !x.startsWith('#'));
|
|
|
|
|
|
|
|
let firststr = ''; |
|
|
|
let maxl = 0;//最大相同字符
|
|
|
|
let maxl = 0;//最大相同字符
|
|
|
|
|
|
|
|
let kk = 0; |
|
|
|
|
|
|
|
let kkk = 2; |
|
|
|
|
|
|
|
let secondstr = ''; |
|
|
|
|
|
|
|
for (let i = 0; i < ss.length; i++) { |
|
|
|
|
|
|
|
let s = ss[i]; |
|
|
|
|
|
|
|
if (!s.startsWith("#")) { |
|
|
|
|
|
|
|
if (kk == 0) firststr = s; |
|
|
|
|
|
|
|
if (kk == 1) maxl = b(firststr, s); |
|
|
|
|
|
|
|
if (kk > 1) { |
|
|
|
|
|
|
|
if (maxl > b(firststr, s)) { |
|
|
|
|
|
|
|
if (secondstr.length < 5) secondstr = s; |
|
|
|
|
|
|
|
kkk = kkk + 2; |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
maxl = b(firststr, s); |
|
|
|
|
|
|
|
kkk++; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
kk++; |
|
|
|
|
|
|
|
if (kk >= 20) break; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (kkk > 30) firststr = secondstr; |
|
|
|
let firststrlen = firststr.length; |
|
|
|
let firststrlen = firststr.length; |
|
|
|
//log('字符串长度:' + firststrlen);
|
|
|
|
//log('字符串长度:' + firststrlen);
|
|
|
|
let ml = Math.round(ss.length / 2).toString().length;//取数据的长度的位数
|
|
|
|
let ml = Math.round(ss.length / 2).toString().length;//取数据的长度的位数
|
|
|
@ -2198,7 +2221,7 @@ function categoryParse(cateObj) { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
let new_url; |
|
|
|
let new_url; |
|
|
|
new_url = cheerio.jinja2(url, {fl: fl}); |
|
|
|
new_url = cheerio.jinja2(url, {fl: fl, fyclass: cateObj.tid}); |
|
|
|
// console.log('jinjia2执行后的new_url类型为:'+typeof(new_url));
|
|
|
|
// console.log('jinjia2执行后的new_url类型为:'+typeof(new_url));
|
|
|
|
url = new_url; |
|
|
|
url = new_url; |
|
|
|
} |
|
|
|
} |
|
|
|