Compare commits

..

No commits in common. "546f4300a1f07c1635a9257e5c53a1ea88508cea" and "f62ca7a05746698d7809247b5fc8c9b2f215a07d" have entirely different histories.

3 changed files with 35 additions and 40 deletions

View File

@ -277,7 +277,7 @@ def get_share_detail():
# 正则处理预览 # 正则处理预览
def preview_regex(share_detail): def preview_regex(share_detail):
regex = request.json.get("regex", {}) regex = request.json.get("regex")
pattern, replace = account.magic_regex_func( pattern, replace = account.magic_regex_func(
regex.get("pattern", ""), regex.get("pattern", ""),
regex.get("replace", ""), regex.get("replace", ""),
@ -292,8 +292,7 @@ def get_share_detail():
) )
return share_detail return share_detail
if request.json.get("regex"): share_detail = preview_regex(share_detail)
share_detail = preview_regex(share_detail)
return jsonify({"success": True, "data": share_detail}) return jsonify({"success": True, "data": share_detail})

View File

@ -448,12 +448,8 @@
</nav> </nav>
<!-- 文件列表 --> <!-- 文件列表 -->
<div class="mb-3" v-if="fileSelect.previewRegex"> <div class="mb-3" v-if="fileSelect.previewRegex">
<div><b>匹配表达式:</b><span class="badge badge-info" v-html="formData.tasklist[fileSelect.index].pattern"></span> <div><b>匹配表达式:</b><span class="badge badge-info" v-html="formData.tasklist[fileSelect.index].pattern"></span></div>
<span class="badge badge-info" v-if="formData.tasklist[fileSelect.index].pattern in formData.magic_regex">{{ formData.magic_regex[formData.tasklist[fileSelect.index].pattern].pattern }}</span> <div><b>替换表达式:</b><span class="badge badge-info" v-html="formData.tasklist[fileSelect.index].replace"></span></div>
</div>
<div><b>替换表达式:</b><span class="badge badge-info" v-if="formData.tasklist[fileSelect.index].replace" v-html="formData.tasklist[fileSelect.index].replace"></span>
<span class="badge badge-info" v-else-if="formData.tasklist[fileSelect.index].pattern in formData.magic_regex">{{ formData.magic_regex[formData.tasklist[fileSelect.index].pattern].replace }}</span>
</div>
</div> </div>
<table class="table table-hover table-sm"> <table class="table table-hover table-sm">
<thead> <thead>
@ -767,28 +763,28 @@
console.error("Error decodeURIComponent:", e); console.error("Error decodeURIComponent:", e);
} }
// 从分享中提取任务名 // 从分享中提取任务名
axios.post('/get_share_detail', { axios.get('/get_share_detail', { params: { shareurl: task.shareurl } })
shareurl: task.shareurl .then(response => {
}).then(response => { share_detail = response.data.data
share_detail = response.data.data if (!response.data.success) {
if (!response.data.success) { if (share_detail.error.includes("提取码")) {
if (share_detail.error.includes("提取码")) { const passcode = prompt("检查失败[" + share_detail.error + "],请输入提取码:");
const passcode = prompt("检查失败[" + share_detail.error + "],请输入提取码:"); if (passcode != null) {
if (passcode != null) { task.shareurl = task.shareurl.replace(/pan.quark.cn\/s\/(\w+)(\?pwd=\w*)*/, `pan.quark.cn/s/$1?pwd=${passcode}`);
task.shareurl = task.shareurl.replace(/pan.quark.cn\/s\/(\w+)(\?pwd=\w*)*/, `pan.quark.cn/s/$1?pwd=${passcode}`); this.changeShareurl(task);
this.changeShareurl(task); return;
return; }
} }
this.$set(task, "shareurl_ban", share_detail.error);
} else {
task.taskname = task.taskname == "" ? share_detail.share.title : task.taskname;
task.savepath = task.savepath.replace(/TASKNAME/g, share_detail.share.title);
this.$set(task, "shareurl_ban", undefined);
} }
this.$set(task, "shareurl_ban", share_detail.error); })
} else { .catch(error => {
task.taskname = task.taskname == "" ? share_detail.share.title : task.taskname; console.error('Error get_share_detail:', error);
task.savepath = task.savepath.replace(/TASKNAME/g, share_detail.share.title); });
this.$set(task, "shareurl_ban", undefined);
}
}).catch(error => {
console.error('Error get_share_detail:', error);
});
}, },
clearData(target) { clearData(target) {
this[target] = ""; this[target] = "";
@ -968,7 +964,7 @@
params: params params: params
}).then(response => { }).then(response => {
this.fileSelect.fileList = response.data.data.list this.fileSelect.fileList = response.data.data.list
if (response.data.data.paths?.length > 0) { if (response.data.data.paths.length > 0) {
this.fileSelect.paths = response.data.data.paths this.fileSelect.paths = response.data.data.paths
} }
this.modalLoading = false; this.modalLoading = false;
@ -1030,9 +1026,9 @@
this.getShareDetail(); this.getShareDetail();
}, },
navigateTo(fid, name) { navigateTo(fid, name) {
dir = { fid: fid, name: name } path = { fid: fid, name: name }
if (this.fileSelect.selectShare) { if (this.fileSelect.selectShare) {
this.fileSelect.shareurl = this.getShareurl(this.fileSelect.shareurl, dir); this.fileSelect.shareurl = this.getShareurl(this.fileSelect.shareurl, path);
this.getShareDetail(); this.getShareDetail();
} else { } else {
if (fid == "0") { if (fid == "0") {
@ -1064,15 +1060,15 @@
Vue.set(this.formData.tasklist[this.fileSelect.index], 'startfid', fid); Vue.set(this.formData.tasklist[this.fileSelect.index], 'startfid', fid);
$('#fileSelectModal').modal('hide') $('#fileSelectModal').modal('hide')
}, },
getShareurl(shareurl, dir = {}) { getShareurl(shareurl, path = {}) {
if (dir == {} || dir.fid == 0) { if (path == {} || path.fid == 0) {
shareurl = shareurl.match(`.*s/[a-z0-9]+(\\?pwd=[^#]+)?`)[0] shareurl = shareurl.match(`.*s/[a-z0-9]+`)[0]
} else if (shareurl.includes(dir.fid)) { } else if (shareurl.includes(path.fid)) {
shareurl = shareurl.match(`.*/${dir.fid}[^/]*`)[0] shareurl = shareurl.match(`.*/${path.fid}[^\/]*`)[0]
} else if (shareurl.includes('#/list/share')) { } else if (shareurl.includes('#/list/share')) {
shareurl = `${shareurl}/${dir.fid}-${dir.name?.replace('-', '*101')}` shareurl = `${shareurl}/${path.fid}-${path.name}`
} else { } else {
shareurl = `${shareurl}#/list/share/${dir.fid}-${dir.name?.replace('-', '*101')}` shareurl = `${shareurl}#/list/share/${path.fid}-${path.name}`
} }
return shareurl; return shareurl;
} }

View File

@ -556,7 +556,7 @@ class Quark:
matches = re.findall(r"/(\w{32})-?([^/]+)?", url) matches = re.findall(r"/(\w{32})-?([^/]+)?", url)
for match in matches: for match in matches:
fid = match[0] fid = match[0]
name = urllib.parse.unquote(match[1]).replace("*101", "-") name = urllib.parse.unquote(match[1])
paths.append({"fid": fid, "name": name}) paths.append({"fid": fid, "name": name})
pdir_fid = paths[-1]["fid"] if matches else 0 pdir_fid = paths[-1]["fid"] if matches else 0
return pwd_id, passcode, pdir_fid, paths return pwd_id, passcode, pdir_fid, paths