diff --git a/drpy/drpy2.js b/drpy/drpy2.js index e3f8831b..67dc0370 100644 --- a/drpy/drpy2.js +++ b/drpy/drpy2.js @@ -283,7 +283,7 @@ function pre() { let rule = {}; 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就不转义)[影魔牛逼,最新的文件发现这问题已经解决了] * 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 ss = s.split('\n') //找出第一条播放地址 - let firststr = ss.find(x => !x.startsWith('#')); + //let firststr = ss.find(x => !x.startsWith('#')); + let firststr = ''; 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; //log('字符串长度:' + firststrlen); let ml = Math.round(ss.length / 2).toString().length;//取数据的长度的位数 @@ -2198,7 +2221,7 @@ function categoryParse(cateObj) { } } 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)); url = new_url; }