mirror of
https://github.com/Cp0204/quark-auto-save.git
synced 2026-01-18 02:40:44 +08:00
Compare commits
3 Commits
f62ca7a057
...
546f4300a1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
546f4300a1 | ||
|
|
b724fbb98a | ||
|
|
9222a703b4 |
@ -277,7 +277,7 @@ def get_share_detail():
|
||||
|
||||
# 正则处理预览
|
||||
def preview_regex(share_detail):
|
||||
regex = request.json.get("regex")
|
||||
regex = request.json.get("regex", {})
|
||||
pattern, replace = account.magic_regex_func(
|
||||
regex.get("pattern", ""),
|
||||
regex.get("replace", ""),
|
||||
@ -292,7 +292,8 @@ def get_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})
|
||||
|
||||
|
||||
@ -448,8 +448,12 @@
|
||||
</nav>
|
||||
<!-- 文件列表 -->
|
||||
<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].replace"></span></div>
|
||||
<div><b>匹配表达式:</b><span class="badge badge-info" v-html="formData.tasklist[fileSelect.index].pattern"></span>
|
||||
<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>
|
||||
<table class="table table-hover table-sm">
|
||||
<thead>
|
||||
@ -763,28 +767,28 @@
|
||||
console.error("Error decodeURIComponent:", e);
|
||||
}
|
||||
// 从分享中提取任务名
|
||||
axios.get('/get_share_detail', { params: { shareurl: task.shareurl } })
|
||||
.then(response => {
|
||||
share_detail = response.data.data
|
||||
if (!response.data.success) {
|
||||
if (share_detail.error.includes("提取码")) {
|
||||
const passcode = prompt("检查失败[" + share_detail.error + "],请输入提取码:");
|
||||
if (passcode != null) {
|
||||
task.shareurl = task.shareurl.replace(/pan.quark.cn\/s\/(\w+)(\?pwd=\w*)*/, `pan.quark.cn/s/$1?pwd=${passcode}`);
|
||||
this.changeShareurl(task);
|
||||
return;
|
||||
}
|
||||
axios.post('/get_share_detail', {
|
||||
shareurl: task.shareurl
|
||||
}).then(response => {
|
||||
share_detail = response.data.data
|
||||
if (!response.data.success) {
|
||||
if (share_detail.error.includes("提取码")) {
|
||||
const passcode = prompt("检查失败[" + share_detail.error + "],请输入提取码:");
|
||||
if (passcode != null) {
|
||||
task.shareurl = task.shareurl.replace(/pan.quark.cn\/s\/(\w+)(\?pwd=\w*)*/, `pan.quark.cn/s/$1?pwd=${passcode}`);
|
||||
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);
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
console.error('Error get_share_detail:', error);
|
||||
});
|
||||
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);
|
||||
}
|
||||
}).catch(error => {
|
||||
console.error('Error get_share_detail:', error);
|
||||
});
|
||||
},
|
||||
clearData(target) {
|
||||
this[target] = "";
|
||||
@ -964,7 +968,7 @@
|
||||
params: params
|
||||
}).then(response => {
|
||||
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.modalLoading = false;
|
||||
@ -1026,9 +1030,9 @@
|
||||
this.getShareDetail();
|
||||
},
|
||||
navigateTo(fid, name) {
|
||||
path = { fid: fid, name: name }
|
||||
dir = { fid: fid, name: name }
|
||||
if (this.fileSelect.selectShare) {
|
||||
this.fileSelect.shareurl = this.getShareurl(this.fileSelect.shareurl, path);
|
||||
this.fileSelect.shareurl = this.getShareurl(this.fileSelect.shareurl, dir);
|
||||
this.getShareDetail();
|
||||
} else {
|
||||
if (fid == "0") {
|
||||
@ -1060,15 +1064,15 @@
|
||||
Vue.set(this.formData.tasklist[this.fileSelect.index], 'startfid', fid);
|
||||
$('#fileSelectModal').modal('hide')
|
||||
},
|
||||
getShareurl(shareurl, path = {}) {
|
||||
if (path == {} || path.fid == 0) {
|
||||
shareurl = shareurl.match(`.*s/[a-z0-9]+`)[0]
|
||||
} else if (shareurl.includes(path.fid)) {
|
||||
shareurl = shareurl.match(`.*/${path.fid}[^\/]*`)[0]
|
||||
getShareurl(shareurl, dir = {}) {
|
||||
if (dir == {} || dir.fid == 0) {
|
||||
shareurl = shareurl.match(`.*s/[a-z0-9]+(\\?pwd=[^#]+)?`)[0]
|
||||
} else if (shareurl.includes(dir.fid)) {
|
||||
shareurl = shareurl.match(`.*/${dir.fid}[^/]*`)[0]
|
||||
} else if (shareurl.includes('#/list/share')) {
|
||||
shareurl = `${shareurl}/${path.fid}-${path.name}`
|
||||
shareurl = `${shareurl}/${dir.fid}-${dir.name?.replace('-', '*101')}`
|
||||
} else {
|
||||
shareurl = `${shareurl}#/list/share/${path.fid}-${path.name}`
|
||||
shareurl = `${shareurl}#/list/share/${dir.fid}-${dir.name?.replace('-', '*101')}`
|
||||
}
|
||||
return shareurl;
|
||||
}
|
||||
|
||||
@ -556,7 +556,7 @@ class Quark:
|
||||
matches = re.findall(r"/(\w{32})-?([^/]+)?", url)
|
||||
for match in matches:
|
||||
fid = match[0]
|
||||
name = urllib.parse.unquote(match[1])
|
||||
name = urllib.parse.unquote(match[1]).replace("*101", "-")
|
||||
paths.append({"fid": fid, "name": name})
|
||||
pdir_fid = paths[-1]["fid"] if matches else 0
|
||||
return pwd_id, passcode, pdir_fid, paths
|
||||
|
||||
Loading…
Reference in New Issue
Block a user