Compare commits

...

4 Commits

Author SHA1 Message Date
Super-Passerby
6c16550d38
Merge e0cb7443fe into b118231f58 2025-04-20 07:48:17 +08:00
Cp0204
b118231f58 🔧 优化默认的 $TV 正则表达式
Some checks are pending
Docker Publish / build-and-push (push) Waiting to run
- 集数前强制定位,增强准确性
- 取消集数字符E编组,只取数字,替换默认加E
2025-04-19 20:57:13 +08:00
Super-Passerby
e0cb7443fe
Update quark_auto_save.py
同步最新代码:2024-11-13
当设定:
MAX_SAVE_FILES = 0 
不限制保存数量,即与原代码功能一致
2025-03-14 09:10:31 +08:00
Super-Passerby
fd46206024
增加了最大转存文件数量的限制
增加了最大转存文件数量的限制,可配合自动下载、删除脚本,方便网盘容量有限的用户使用。
2025-02-26 20:18:57 +08:00
2 changed files with 46 additions and 7 deletions

View File

@ -18,6 +18,10 @@ import importlib
import urllib.parse
from datetime import datetime
# ========== 修改内容开始 ==========
MAX_SAVE_FILES = 0 # 最大保存文件数量0 为不限制保存数量
# ========== 修改内容结束 ==========
# 兼容青龙
try:
from treelib import Tree
@ -34,8 +38,8 @@ GH_PROXY = os.environ.get("GH_PROXY", "https://ghproxy.net/")
MAGIC_REGEX = {
"$TV": {
"pattern": r".*?(?<!\d)([Ss]\d{1,2})?([Ee]?[Pp]?[Xx]?\d{1,3})(?!\d).*?\.(mp4|mkv)",
"replace": r"\1\2.\3",
"pattern": r".*?([Ss]\d{1,2})?(?:[第EePpXx\.\-\_\( ]{1,2}|^)(\d{1,3})(?!\d).*?\.(mp4|mkv)",
"replace": r"\1E\2.\3",
},
"$BLACK_WORD": {
"pattern": r"^(?!.*纯享)(?!.*加更)(?!.*超前企划)(?!.*训练室)(?!.*蒸蒸日上).*",
@ -407,9 +411,20 @@ class Quark:
"__dt": int(random.uniform(1, 5) * 60 * 1000),
"__t": datetime.now().timestamp(),
}
# ========== 修改内容开始 ==========
# 当 MAX_SAVE_FILES = 0 时,不限制保存文件数量
if MAX_SAVE_FILES > 0:
files_to_save = fid_list[:MAX_SAVE_FILES]
tokens_to_save = fid_token_list[:MAX_SAVE_FILES]
else:
files_to_save = fid_list
tokens_to_save = fid_token_list
# ========== 修改内容结束 ==========
payload = {
"fid_list": fid_list,
"fid_token_list": fid_token_list,
"fid_list": files_to_save, # 修改为 files_to_save
"fid_token_list": tokens_to_save, # 修改为 tokens_to_save
"to_pdir_fid": to_pdir_fid,
"pwd_id": pwd_id,
"stoken": stoken,
@ -763,7 +778,13 @@ class Quark:
# 指定文件开始订阅/到达指定文件(含)结束历遍
if share_file["fid"] == task.get("startfid", ""):
break
# ========== 修改内容开始 ==========
# 当 MAX_SAVE_FILES = 0 时,不限制保存文件数量
if MAX_SAVE_FILES > 0:
need_save_list = need_save_list[:MAX_SAVE_FILES]
# ========== 修改内容结束 ==========
fid_list = [item["fid"] for item in need_save_list]
fid_token_list = [item["share_fid_token"] for item in need_save_list]
if fid_list:
@ -905,6 +926,11 @@ def do_save(account, tasklist=[]):
# 获取全部保存目录fid
account.update_savepath_fid(tasklist)
# ========== 修改内容开始 ==========
# 初始化计数器
total_files_transferred = 0 # 无论 MAX_SAVE_FILES 的值如何,都初始化计数器
# ========== 修改内容结束 ==========
def check_date(task):
return (
not task.get("enddate")
@ -922,6 +948,12 @@ def do_save(account, tasklist=[]):
for index, task in enumerate(tasklist):
# 判断任务期限
if check_date(task):
# ========== 修改内容开始 ==========
# 当 MAX_SAVE_FILES > 0 时,检查是否已转存超过限制
if MAX_SAVE_FILES > 0 and total_files_transferred >= MAX_SAVE_FILES:
print("⚠️ 已达到转存文件总数上限,停止转存任务")
break
# ========== 修改内容结束 ==========
print()
print(f"#{index+1}------------------")
print(f"任务名称: {task['taskname']}")
@ -940,6 +972,13 @@ def do_save(account, tasklist=[]):
print()
is_new_tree = account.do_save_task(task)
is_rename = account.do_rename_task(task)
# ========== 修改内容开始 ==========
# 当 MAX_SAVE_FILES > 0 时,更新计数器
if MAX_SAVE_FILES > 0 and (is_new_tree or is_rename):
total_files_transferred += 1 # 每成功转存或重命名一个文件计数器加1
# ========== 修改内容结束 ==========
# 补充任务的插件配置
def merge_dicts(a, b):

View File

@ -14,8 +14,8 @@
},
"magic_regex": {
"$TV": {
"pattern": ".*?(?<!\\d)([Ss]\\d{1,2})?([Ee]?[Pp]?[Xx]?\\d{1,3})(?!\\d).*?\\.(mp4|mkv)",
"replace": "\\1\\2.\\3"
"pattern": ".*?([Ss]\\d{1,2})?(?:[第EePpXx\\.\\-\\_\\( ]{1,2}|^)(\\d{1,3})(?!\\d).*?\\.(mp4|mkv)",
"replace": "\\1E\\2.\\3"
},
"$BLACK_WORD": {
"pattern": "^(?!.*纯享)(?!.*加更)(?!.*超前企划)(?!.*训练室)(?!.*蒸蒸日上).*",