diff --git a/SrcJuying.js b/SrcJuying.js
index f5c8f70f..4daf72e3 100644
--- a/SrcJuying.js
+++ b/SrcJuying.js
@@ -37,11 +37,203 @@ function dianboerji() {
"lists": lists
};
*/
- log(erdata.tabs);
- log(erdata.linecodes);
- log(erdata.lists);
-
+ //取之前足迹记录,用于自动定位之前的线路
+ try {
+ eval('var SrcMark = ' + fetch("hiker://files/cache/SrcMark.json"));
+ if (SrcMark != "") {
+ if (SrcMark.route[MY_URL] != undefined) {
+ var SrcMarkline = SrcMark.route[MY_URL];
+ putMyVar(MY_URL, SrcMark.route[MY_URL]);
+ }
+ }
+ } catch (e) { }
+ let Marksum = 30;//设置记录线路足迹的数量
+ let lineindex = getMyVar(MY_URL, typeof(SrcMarkline) != "undefined"?SrcMarkline:'0');
+ //线路部份
+ let Color1 = getItem('SrcJy$linecolor1','#09c11b')||'#09c11b';//#f13b66a
+ let Color2 = getItem('SrcJy$linecolor2','');;//#098AC1
+ let Color3 = getItem('SrcJy$playcolor','');
+ function getHead(title,Color,strong) {
+ if(Color){
+ if(strong){
+ return '‘‘’’' + title + '';
+ }else{
+ return '‘‘’’' + title + '';
+ }
+ }else{
+ return title;
+ }
+ }
+ for (let i = 0; i < 9; i++) {
+ d.push({
+ col_type: "blank_block"
+ })
+ }
+ function setTabs(tabs, vari) {
+ d.push({
+ title: getMyVar('shsort') == '1'?'““””∨' : '““””∧',
+ url: $("#noLoading#").lazyRule(() => {
+ if (getMyVar('shsort') == '1') { putMyVar('shsort', '0'); } else { putMyVar('shsort', '1') };
+ refreshPage(false);
+ return 'toast://切换排序成功'
+ }),
+ col_type: 'scroll_button'
+ })
+ for (var i in tabs) {
+ if (tabs[i] != "") {
+ if(getMyVar(vari, '0') == i){putMyVar('linecode', linecodes[i])};
+ d.push({
+ title: getMyVar(vari, '0') == i ? getHead(tabs[i],Color1,1) : getHead(tabs[i],Color2),
+ url: $("#noLoading#").lazyRule((vari, i, Marksum) => {
+ if (parseInt(getMyVar(vari, '0')) != i) {
+ try {
+ eval('var SrcMark = ' + fetch("hiker://files/cache/SrcMark.json"));
+ } catch (e) {
+ var SrcMark = "";
+ }
+ if (SrcMark == "") {
+ SrcMark = { route: {} };
+ } else if (SrcMark.route == undefined) {
+ SrcMark.route = {};
+ }
+ SrcMark.route[vari] = i;
+ var key = 0;
+ var one = "";
+ for (var k in SrcMark.route) {
+ key++;
+ if (key == 1) { one = k }
+ }
+ if (key > Marksum) { delete SrcMark.route[one]; }
+ writeFile("hiker://files/cache/SrcMark.json", JSON.stringify(SrcMark));
+ putMyVar(vari, i);
+ refreshPage(false);
+ }
+ return '#noHistory#hiker://empty'
+ }, vari, i, Marksum),
+ col_type: 'scroll_button'
+ })
+ }
+ }
+ }
+ setTabs(erdata.tabs, MY_URL);
+
+ //选集部份
+ function setLists(lists, index) {
+ let list = lists[index];
+ function playlist(lx, len) {//定义选集列表生成
+ if (lx == '1') {
+ if (/v1|app|v2|iptv|cms/.test(type)) {
+ var playtitle = list[j].split('$')[0].trim();
+ if (/iptv/.test(type)) {
+ var playurl = list[j].split('$')[1].split('=')[1];
+ parse_api = list[j].split('$')[1].split('=')[0]+"=";
+ }else{
+ var playurl = list[j].split('$')[1];
+ }
+ putMyVar('parse_api', parse_api);
+ var DTJX = $("").lazyRule(() => {
+ require(config.依赖.match(/http(s)?:\/\/.*\//)[0].replace('/Ju/','/master/') + 'SrcParseS.js');
+ return SrcParseS.聚影(input);
+ });
+ }else if (/xpath|biubiu|XBPQ/.test(type)) {
+ var playtitle = list[j].split('$')[0].trim();
+ var playurl = list[j].split('$')[1];
+ if(/\.mp4|\.m3u8/.test(playurl) || (/qq\.com|douyin|youku|mgtv|ixigua|bili|iqiyi|sohu|pptv|migu|1905|le\.com/.test(playurl) && /html/.test(playurl))){
+ var DTJX = $("").lazyRule(() => {
+ require(config.依赖.match(/http(s)?:\/\/.*\//)[0].replace('/Ju/','/master/') + 'SrcParseS.js');
+ return SrcParseS.聚影(input);
+ });
+ }else if(playurl.indexOf('https://www.aliyundrive.com/s/')>-1){
+ var DTJX = $("").lazyRule((input) => {
+ input = input.replace('http','\nhttp');
+ return $("hiker://empty##fypage#noRecordHistory##noHistory#").rule((input) => {
+ require(config.依赖.match(/http(s)?:\/\/.*\//)[0].replace('/Ju/','/master/') + 'SrcJyAliDisk.js');
+ aliShareUrl(input);
+ },input);
+ },playurl);
+ }else{
+ var DTJX = $("").lazyRule(() => {
+ require(config.依赖.match(/http(s)?:\/\/.*\//)[0].replace('/Ju/','/master/') + 'SrcParseS.js');
+ return SrcParseS.task({},input);
+ });
+ }
+ }else{
+ //网页
+ }
+
+ let extra = {
+ id: playurl,
+ jsLoadingInject: true,
+ blockRules: ['.m4a', '.mp3', '.gif', '.jpeg', '.jpg', '.ico', '.png', 'hm.baidu.com', '/ads/*.js', 'cnzz.com'],
+ videoExcludeRule: ['m3u8.js','?url='],
+ cls: "loadlist"
+ }
+
+ if(!/qq|youku|mgtv|bili|qiyi|sohu|pptv/.test(playurl) && /html/.test(playurl)){
+ extra.referer = playurl;
+ }
+ if(getMyVar('superwebM3U8') == "1"){
+ extra.cacheM3u8 = true;
+ }
+
+ d.push({
+ title: getHead(playtitle.replace(/第|集|话|期|-|new|最新|新/g, ''), Color3),
+ url: playurl + DTJX,
+ extra: extra,
+ col_type: list.length > 4 && len < 7 ? 'text_4' : len > 20 ? 'text_1' :'text_3'
+ });
+ } else {
+ d.push({
+ title: '当前无播放选集,点更多片源试试!',
+ url: '#noHistory#hiker://empty',
+ col_type: 'text_center_1'
+ });
+ }
+
+ }
+ if (list == undefined || list.length == 0) {
+ playlist('0');
+ } else {
+ if (/v1|app|v2|iptv|cms|xpath|biubiu|XBPQ/.test(type)) {
+ var listone = list[0].split('$')[0].trim();
+ try{
+ let list1 = list[0].split('$')[0];
+ let list2 = list[list.length-1].split('$')[0];
+ if(parseInt(list1.match(/(\d+)/)[0])>parseInt(list2.match(/(\d+)/)[0])){
+ list.reverse();
+ }
+ }catch(e){
+ //log('修正选集顺序失败>'+e.message)
+ }
+ }else{
+
+ }
+
+ if (listone) {
+ var len = listone.length;
+ }
+ if (getMyVar('shsort') == '1') {
+ try {
+ for (var j = list.length - 1; j >= 0; j--) {
+ playlist('1', len);
+ }
+ } catch (e) {
+ playlist('0');
+ }
+ } else {
+ try {
+ for (var j = 0; j < list.length; j++) {
+ playlist('1', len);
+ }
+ } catch (e) {
+ playlist('0');
+ }
+
+ }
+ }
+ }
+ setLists(erdata.lists, lineindex);
//底部说明
d.push({