diff --git a/SrcJu.js b/SrcJu.js
index 9ae8b9f3..b104afa4 100644
--- a/SrcJu.js
+++ b/SrcJu.js
@@ -97,16 +97,8 @@ function sousuo() {
putMyVar('SrcJuSousuo', '1');
let name = MY_URL.split('##')[1];
let d = [];
- d.push({
- title: "搜索中...",
- url: "hiker://empty",
- extra: {
- id: "sousuoloading"
- }
- });
+ search(name,'sousuo');
setResult(d);
- java.lang.Thread.sleep(1000);
- search(name);
}
//二级+源搜索
@@ -178,13 +170,13 @@ function erji() {
MY_URL = surl;
sauthor = parse["作者"] || sauthor;
let detailsmark;
- if(getMyVar('SrcJuloading')){
+ if(getMyVar('是否取缓存文件')){
let detailsdata = fetch(detailsfile);
if (detailsdata != "") {
try{
eval("let detailsjson=" + detailsdata + ";");
if(detailsjson.sname==sname && detailsjson.surl==surl){
- detailsmark = detailsjson;
+ detailsmark = detailsjson;//本地缓存接口+链接对得上则取本地,用于切换排序和样式时加快
}
}catch(e){ }
}
@@ -479,7 +471,7 @@ function erji() {
最新(surl,公共);
}, surl, parse['最新'], 公共))
}
- putMyVar('SrcJuloading','1');//判断是否取本地缓存文件,软件打开初次必需在线取同名数据
+ putMyVar('是否取缓存文件','1');//判断是否取本地缓存文件,软件打开初次必需在线取同名数据
} else {
if(!detailload){
d.push({
@@ -509,46 +501,59 @@ function erji() {
}
//搜索接口
-function search(name, sdata) {
+function search(keyword, mode, sdata) {
if(getMyVar('SrcJuSearching')=="1"){
return "toast://上次搜索线程还未结束,等等再来"
}
- let searchMark = storage0.getMyVar('searchMark') || {};
- let loadid = getMyVar('SrcJuSousuo') == "1" ? 'sousuoloading' : 'listloading';
- if (searchMark[name] && !sdata) {
- //log("重复搜索>"+name+",调用搜索缓存");
- addItemBefore(loadid, searchMark[name]);
- updateItem(loadid, { title: getMyVar('SrcJuSousuo') == "1" ? "当前搜索为缓存" : "‘‘’’当前搜索为缓存" })
- } else {
- showLoading('搜源中,请稍后.');
- let searchMark = storage0.getMyVar('searchMark') || {};
- let i = 0;
- let one = "";
- for (var k in searchMark) {
- i++;
- if (i == 1) { one = k }
+ putMyVar('SrcJuSearching','1');
+ let name = keyword.split(' ')[0];
+ let success = 0;
+ let beresults = [];
+ let beerrors = [];
+ if (sdata) {
+ erdatalist = [];
+ erdatalist.push(sdata);
+ }
+
+ let task = function (obj) {
+ try {
+ let parse;
+ let 公共;
+ eval("let source = " + obj.erparse);
+ if (source.ext && /^http/.test(source.ext)) {
+ requireCache(source.ext, 48);
+ parse = erdata;
+ } else {
+ parse = source;
+ }
+ if(parse){
+ eval("let gonggong = " + obj.public);
+ 公共 = gonggong || parse['公共'] || {};
+ }
+ let data = [];
+ eval("let 搜索 = " + parse['搜索'])
+ data = 搜索(name) || [];
+ return {result:data, success:1};
+ } catch (e) {
+ log(obj.name + '>搜索失败>' + e.message);
+ return {result:[], success:0};
}
- if (i > 20) { delete searchMark[one]; }
- let success = 0;
- let task = function (obj) {
- try {
- let parse;
- let 公共;
- eval("let source = " + obj.erparse);
- if (source.ext && /^http/.test(source.ext)) {
- requireCache(source.ext, 48);
- parse = erdata;
- } else {
- parse = source;
- }
- if(parse){
- eval("let gonggong = " + obj.public);
- 公共 = gonggong || parse['公共'] || {};
- }
- let data = [];
- eval("let 搜索 = " + parse['搜索'])
- data = 搜索(name) || [];
- if (data.length > 0) {
+ }
+ let list = erdatalist.map((item) => {
+ return {
+ func: task,
+ param: item,
+ id: item.name
+ }
+ });
+ if (list.length > 0) {
+ //deleteItemByCls('loadlist');
+ be(list, {
+ func: function (obj, id, error, taskResult) {
+ let i = taskResult.success;//是否成功,用于判断有无报错1为成功无错
+ if(i==1){
+ let data = taskResult.result;
+ success++;
data.forEach(item => {
let extra = item.extra || {};
extra.name = extra.name || item.title;
@@ -558,83 +563,87 @@ function search(name, sdata) {
extra.pageTitle = extra.name;
extra.surl = item.url ? item.url.replace(/#immersiveTheme#|#autoCache#|#noRecordHistory#|#noHistory#|#readTheme#|#autoPage#/, "") : "";
item.extra = extra;
- if (getMyVar('SrcJuSousuo') == "1") {
- item.url = $("hiker://empty#immersiveTheme##autoCache#").rule(() => {
- require(config.依赖);
- erji();
- })
- } else {
- item.url = item.url + $("#noLoading#").lazyRule((extra) => {
- putMyVar('JuSouSuoStoptask','1');
- if(getMyVar('SrcJuSearching')){
- return "toast://等待搜索线程结束...";
- }else if(getMyVar('SrcJuselectsname')){
- return "toast://请勿重复点击,稍等...";
- }else{
- putMyVar('SrcJuselectsname','1');
- clearMyVar(extra.sname+"_"+extra.name);
- storage0.putMyVar('erjiextra', extra);
- refreshPage(false);
- return "toast://已切换源:" + extra.sname;
- }
- }, extra);
- }
+ item.url = mode=="sousuo" ? $("hiker://empty#immersiveTheme##autoCache#").rule(() => {
+ require(config.依赖);
+ erji();
+ }) : item.url + $("#noLoading#").lazyRule((extra) => {
+ if(getMyVar('SrcJuselectsname')){
+ return "toast://请勿重复点击,稍等...";
+ }else{
+ putMyVar('SrcJuselectsname','1');
+ clearMyVar(extra.sname+"_"+extra.name);
+ storage0.putMyVar('erjiextra', extra);
+ refreshPage(false);
+ return "toast://已切换源:" + extra.sname;
+ }
+ }, extra);
item.content = item.desc;
item.sdesc = extra.sdesc || item.desc;
- item.desc = getMyVar('SrcJuSousuoTest')?item.desc:getMyVar('SrcJuSousuo') ? MY_RULE.title + ' · ' + obj.name : obj.name + item.sdesc?(' · ' + item.sdesc):"";
- item.col_type = getMyVar('SrcJuSousuoTest')?"movie_1_vertical_pic":getMyVar('SrcJuSousuo') ? "video" : "avatar";
+ item.desc = mode=="sousuo" ? MY_RULE.title + ' · ' + obj.name : obj.name + (item.sdesc?(' · ' + item.sdesc):"");
+ item.col_type = mode=="sousuo" ? "video" : "avatar";
})
- searchMark[name] = searchMark[name] || [];
- searchMark[name] = searchMark[name].concat(data);
- addItemBefore(loadid, data);
- success++;
- hideLoading();
+ if(mode=="list"){
+ searchMark[name] = searchMark[name] || [];
+ searchMark[name] = searchMark[name].concat(data);
+ if(!getMyVar('SrcJuselectsname')){
+ addItemBefore("listloading", data);
+ }
+ hideLoading();
+ }
+ obj.results = obj.results.concat(data);
+ }else{
+ obj.errors.push(id);
}
- } catch (e) {
- log(obj.name + '>搜源失败>' + e.message);
+ },
+ param: {
+ results: beresults,
+ errors: beerrors
}
- return 1;
+ });
+ if(mode=="sousuo"){
+ return beresults;
}
- if (sdata) {
- erdatalist = [];
- erdatalist.push(sdata);
+ /*
+ if (!sdata) {
+ storage0.putMyVar('searchMark', searchMark);
}
- let list = erdatalist.map((item) => {
- return {
- func: task,
- param: item,
- id: item.name
- }
- });
+ let sousuosm = getMyVar('SrcJuSousuo') == "1" ? success + "/" + list.length + ",搜索完成" : "‘‘’’" + success + "/" + list.length + ",搜索完成";
+ updateItem(loadid, { title: sousuosm })
+ */
+ } else {
+ let sousuosm = "无接口";
+ updateItem(loadid, { title: sousuosm })
+ }
- if (list.length > 0) {
- putMyVar('SrcJuSearching','1');
- deleteItemByCls('loadlist');
- be(list, {
- func: function (obj, id, error, taskResult) {
- if (getMyVar('JuSouSuoStoptask')) {
- toast("线程已中止");
- clearMyVar('JuSouSuoStoptask');
- return "break";
- }
- },
- param: {
- }
- });
- if (!sdata) {
- storage0.putMyVar('searchMark', searchMark);
- }
- let sousuosm = getMyVar('SrcJuSousuo') == "1" ? success + "/" + list.length + ",搜索完成" : "‘‘’’" + success + "/" + list.length + ",搜索完成";
- updateItem(loadid, { title: sousuosm })
- } else {
- let sousuosm = "无接口";
- updateItem(loadid, { title: sousuosm })
+/*
+
+ let searchMark = storage0.getMyVar('searchMark') || {};
+ let loadid = getMyVar('SrcJuSousuo') == "1" ? 'sousuoloading' : 'listloading';
+ if (searchMark[name] && !sdata) {
+ //log("重复搜索>"+name+",调用搜索缓存");
+ addItemBefore(loadid, searchMark[name]);
+ updateItem(loadid, { title: getMyVar('SrcJuSousuo') == "1" ? "当前搜索为缓存" : "‘‘’’当前搜索为缓存" })
+ } else {
+ showLoading('搜源中,请稍后.');
+ let searchMark = storage0.getMyVar('searchMark') || {};
+ let i = 0;
+ let one = "";
+ for (var k in searchMark) {
+ i++;
+ if (i == 1) { one = k }
}
+ if (i > 20) { delete searchMark[one]; }
+
+
+
+
+
clearMyVar('SrcJuSearching');
clearMyVar('SrcJuSousuo');
clearMyVar('SrcJuSousuoTest');
hideLoading();
}
+ */
}
//取本地足迹记录