mirror of
https://github.com/Cp0204/quark-auto-save.git
synced 2026-01-18 19:00:44 +08:00
Compare commits
4 Commits
a949220cfc
...
a3216891ff
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a3216891ff | ||
|
|
546f4300a1 | ||
|
|
b724fbb98a | ||
|
|
9222a703b4 |
@ -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,7 +292,8 @@ def get_share_detail():
|
|||||||
)
|
)
|
||||||
return share_detail
|
return share_detail
|
||||||
|
|
||||||
share_detail = preview_regex(share_detail)
|
if request.json.get("regex"):
|
||||||
|
share_detail = preview_regex(share_detail)
|
||||||
|
|
||||||
return jsonify({"success": True, "data": share_detail})
|
return jsonify({"success": True, "data": share_detail})
|
||||||
|
|
||||||
|
|||||||
@ -448,8 +448,12 @@
|
|||||||
</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>
|
<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].replace"></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>
|
||||||
|
<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>
|
||||||
@ -763,28 +767,28 @@
|
|||||||
console.error("Error decodeURIComponent:", e);
|
console.error("Error decodeURIComponent:", e);
|
||||||
}
|
}
|
||||||
// 从分享中提取任务名
|
// 从分享中提取任务名
|
||||||
axios.get('/get_share_detail', { params: { shareurl: task.shareurl } })
|
axios.post('/get_share_detail', {
|
||||||
.then(response => {
|
shareurl: task.shareurl
|
||||||
share_detail = response.data.data
|
}).then(response => {
|
||||||
if (!response.data.success) {
|
share_detail = response.data.data
|
||||||
if (share_detail.error.includes("提取码")) {
|
if (!response.data.success) {
|
||||||
const passcode = prompt("检查失败[" + share_detail.error + "],请输入提取码:");
|
if (share_detail.error.includes("提取码")) {
|
||||||
if (passcode != null) {
|
const passcode = prompt("检查失败[" + share_detail.error + "],请输入提取码:");
|
||||||
task.shareurl = task.shareurl.replace(/pan.quark.cn\/s\/(\w+)(\?pwd=\w*)*/, `pan.quark.cn/s/$1?pwd=${passcode}`);
|
if (passcode != null) {
|
||||||
this.changeShareurl(task);
|
task.shareurl = task.shareurl.replace(/pan.quark.cn\/s\/(\w+)(\?pwd=\w*)*/, `pan.quark.cn/s/$1?pwd=${passcode}`);
|
||||||
return;
|
this.changeShareurl(task);
|
||||||
}
|
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);
|
||||||
.catch(error => {
|
} else {
|
||||||
console.error('Error get_share_detail:', error);
|
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);
|
||||||
|
}
|
||||||
|
}).catch(error => {
|
||||||
|
console.error('Error get_share_detail:', error);
|
||||||
|
});
|
||||||
},
|
},
|
||||||
clearData(target) {
|
clearData(target) {
|
||||||
this[target] = "";
|
this[target] = "";
|
||||||
@ -964,7 +968,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;
|
||||||
@ -1026,9 +1030,9 @@
|
|||||||
this.getShareDetail();
|
this.getShareDetail();
|
||||||
},
|
},
|
||||||
navigateTo(fid, name) {
|
navigateTo(fid, name) {
|
||||||
path = { fid: fid, name: name }
|
dir = { fid: fid, name: name }
|
||||||
if (this.fileSelect.selectShare) {
|
if (this.fileSelect.selectShare) {
|
||||||
this.fileSelect.shareurl = this.getShareurl(this.fileSelect.shareurl, path);
|
this.fileSelect.shareurl = this.getShareurl(this.fileSelect.shareurl, dir);
|
||||||
this.getShareDetail();
|
this.getShareDetail();
|
||||||
} else {
|
} else {
|
||||||
if (fid == "0") {
|
if (fid == "0") {
|
||||||
@ -1060,15 +1064,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, path = {}) {
|
getShareurl(shareurl, dir = {}) {
|
||||||
if (path == {} || path.fid == 0) {
|
if (dir == {} || dir.fid == 0) {
|
||||||
shareurl = shareurl.match(`.*s/[a-z0-9]+`)[0]
|
shareurl = shareurl.match(`.*s/[a-z0-9]+(\\?pwd=[^#]+)?`)[0]
|
||||||
} else if (shareurl.includes(path.fid)) {
|
} else if (shareurl.includes(dir.fid)) {
|
||||||
shareurl = shareurl.match(`.*/${path.fid}[^\/]*`)[0]
|
shareurl = shareurl.match(`.*/${dir.fid}[^/]*`)[0]
|
||||||
} else if (shareurl.includes('#/list/share')) {
|
} else if (shareurl.includes('#/list/share')) {
|
||||||
shareurl = `${shareurl}/${path.fid}-${path.name}`
|
shareurl = `${shareurl}/${dir.fid}-${dir.name?.replace('-', '*101')}`
|
||||||
} else {
|
} else {
|
||||||
shareurl = `${shareurl}#/list/share/${path.fid}-${path.name}`
|
shareurl = `${shareurl}#/list/share/${dir.fid}-${dir.name?.replace('-', '*101')}`
|
||||||
}
|
}
|
||||||
return shareurl;
|
return shareurl;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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])
|
name = urllib.parse.unquote(match[1]).replace("*101", "-")
|
||||||
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
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user