js:
addListener('onClose',$.toString(()=>{
clearVar("Warehouse.back");
clearVar("Warehouse.filter");
clearVar("Warehouse.type");
if(getVar('Warehouse.can_upload','')){
log('操作过禁止上传:'+getVar('Warehouse.can_upload'));
clearVar("Warehouse.can_upload");
refreshPage(true);
}
}));
if (getVar("Warehouse.back") === "1") {
back(false);
}
const {
getApi,
api,
color,
small,
localRuleVer,
htmlTag,
md
} = $.require("hiker://page/utiliy");
const { mergeSort } = $.require("hiker://page/sort");
let {
avatarUrl,
qq,
id,
can_upload
} = MY_PARAMS;
let dataType = getVar("Warehouse.type","");
let backCode = JSON.parse(request(getApi("rulesUrl") + "?name=" + qq+"&data_type="+dataType));
let devName = backCode.dev_name;
putVar("Warehouse.filter", devName);
let ruleList = backCode.result;
let subUrl = getApi("jsonList") + "?name=" + qq;
let hasSub = hasHomeSub(subUrl);
let devInfo = "这个人很懒,什么都没写哦~";
let tmpJson = JSON.parse(request(getApi("infoGetUrl") + qq));
if (tmpJson.status == 0) {
devInfo = tmpJson.result || devInfo;
}
let subFlag = hasSub ? '🆗' : '📡';
let data = [];
require(md);
devInfo=marked.parse(devInfo);
data.push({
title: "““””" + devName + "\n\n" + small(htmlTag("u", "点击查看完整公告")),
desc: small(devInfo),
url: 'hiker://page/info',
extra: {
text: devInfo,
name: devName,
type:"rich_text"
},
pic_url: avatarUrl,
col_type: 'movie_1_vertical_pic'
});
data.push({
title: "订阅管理 (当前" + (hasSub ? "已订阅" : "未订阅") + ")",
col_type: "rich_text"
});
let sub_code = '海阔视界合集规则订阅¥home_sub¥' + devName + "合集@@" + subUrl;
let rulesCode = '海阔视界合集规则¥home_rule_url¥' + subUrl;
data.push({
title: '““””一键订阅',
desc: '订阅““””' + devName + '的所有单规则,合集需单独订阅',
url: sub_code,
col_type: 'text_2'
});
data.push({
title: '““””导入全部',
url: rulesCode,
col_type: 'text_2'
});
data.push({
title: '““””导入轻合集',
url: $().lazyRule((devName,subUrl,avatarUrl)=>{
const {genRule}=$.require("hiker://page/genApi");
log("轻合集图标链接:"+avatarUrl);
let import_rule=genRule("轻合集."+devName,subUrl,avatarUrl);
//copy(import_rule);
let ruleCode=parsePaste(import_rule.split("\n")[0]);
//return "hiker://empty"
importUrl = 'rule://' + base64Encode(ruleCode);
return importUrl
},devName,subUrl,avatarUrl),
col_type: 'text_2'
});
data.push({
title: '““””导入道德经',
url: $().lazyRule((devName,subUrl,avatarUrl)=>{
let title = "H-"+devName;
let subObj = {
title: title,
url: subUrl,
desc: "hiker://files/rules/dzHouse/ruleCache/"+title+".json",
code: "",
active: false,//禁用并发更新
}
let shareText = base64Encode(JSON.stringify(subObj));
var pastes = getPastes();
var url = sharePaste(shareText,pastes.slice(-1)[0]);
let import_rule= "轻合集订阅:"+title+'\n'+url;
copy(import_rule);
const path = 'hiker://files/rules/dzHouse/ruleCache/sub.json';
require(getVar('sub依赖','https://gitcode.net/qq_32394351/dr/-/raw/master/js/subscribe.js'));
return 订阅导入(path)
},devName,subUrl,avatarUrl),
col_type: 'text_2'
});
let can_upload_api = getApi("manCanUpload")+id;
if(getVar('house.is_manager')){
let tips = can_upload?'能':'否';
// log('tips:'+tips);
// log('can_upload:'+can_upload);
data.push({
title:'⚠能否上传:'+(getVar('Warehouse.can_upload')||tips),
col_type:'scroll_button',
url:'hiker://empty'
});
function setUpload(flag,can_upload_api) {
flag = flag || '';
try {
let code = fetch(can_upload_api, {
headers: {"User-Agent": MOBILE_UA},
body: {
"params":
{
"username": getVar('house.username'),
"password": getVar('house.password'),
"can_upload": !!flag
}
}
});
code = JSON.parse(code).result;
if (code.status === 0) {
return code.detail
} else {
return '操作失败:' + code.detail
}
} catch (e) {
return '操作失败:' + e.message
}
}
data.push({
title:'🚫禁止上传',
col_type:'scroll_button',
url:$('禁止该开发者上传规则?你的操作将被系统记录').confirm((id,can_upload_api,setUpload)=>{
let ret = setUpload(false,can_upload_api);
if(!/操作失败/.test(ret)){
putVar('Warehouse.can_upload','否');
refreshPage(false);
}
return 'toast://'+ret
},id,can_upload_api,setUpload)
});
data.push({
title:'✅允许上传',
col_type:'scroll_button',
url:$('允许该开发者上传规则?你的操作将被系统记录').confirm((id,can_upload_api,setUpload)=>{
let ret = setUpload(true,can_upload_api);
if(!/操作失败/.test(ret)){
putVar('Warehouse.can_upload','是');
refreshPage(false);
}
return 'toast://'+ret
},id,can_upload_api,setUpload)
});
}
data.push({
title: "提示:开发者单独分享的合集文件只能单独导入。",
col_type: "rich_text"
});
data.push({
title: "规则列表 (共" + ruleList.length + "条)",
col_type: "rich_text"
});
let dataTypeList = {
"":"全部",
"home_rule_url": '小程序',
//"publish": '提交云仓库规则',
"js_url": '网页插件',
"html": '静态页面',
"config": '主题'
};
for(let key in dataTypeList){
data.push({
title:dataType===key?"““"+dataTypeList[key]+"””":dataTypeList[key],
url:$("#noLoading#").lazyRule((key)=>{
putVar("Warehouse.type",key);
refreshPage(false);
return "hiker://empty";
},key),
col_type:"scroll_button"
});
}
if (ruleList.length > 20) {
data.push({
title: "搜索",
url: $.toString(name => "hiker://search?s=" + input + "&rule=" + name, MY_RULE.title),
col_type: "input",
desc: "搜索当前开发者的规则"
});
}
let homeList = JSON.parse(request(api.home));
let mRuleList = [];
for (var item of ruleList) {
var name = item.name;
if (item.is_tap) {
let location = JSON.parse(request(getApi("ruleListJson") + "?id=" + item.id));
item.id = location.id;
item.name = location.name;
item.author = location.author;
item.data_type = location.data_type;
item.ver = location.ver
}
item.version = item.ver;
let label = "",
lver = -2;
if (item.is_json && item.data_type === "home_rule_url") {
lver = localRuleVer(homeList, item);
if (lver === -1) {
label = "🆕";
} else if (lver < item.ver) {
label = "🆙";
}
}
mRuleList.push({
title: label + name,
url: "hiker://page/ruleDetail#noHistory##noRecordHistory#",
extra: {
lver: lver,
id: item.id
},
pic_url: item.pic,
});
}
/* 归并排序 Start */
//mRuleList = mergeSort(mRuleList);
/* 归并排序 End */
data.push.apply(data, mRuleList)
setResult(data);