Skip to content

Commit c621f8a

Browse files
committed
更新版本升级工具
1 parent f9726ba commit c621f8a

File tree

4 files changed

+41
-13
lines changed

4 files changed

+41
-13
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -179,9 +179,9 @@
179179

180180
## EXE 更新
181181

182-
> **方案一:** 下载并解压文件,将旧版本的 `cache` 文件夹和 `settings.json` 文件复制到 `_internal` 文件夹。
182+
> **方案一:** 下载并解压文件,将旧版本的 `TikTokDownloader.db` 文件和 `settings.json` 文件复制到 `_internal` 文件夹。
183183
184-
> **方案二:** 下载并解压文件,复制全部文件,直接覆盖旧版本文件。
184+
> **方案二:** 下载并解压文件(不要运行程序),复制全部文件,直接覆盖旧版本文件。
185185
186186
# ⚠️ 免责声明\(Disclaimers\)
187187

src/downloader/download.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -512,6 +512,7 @@ async def download_file(
512512
RequestError,
513513
StreamError,
514514
) as e:
515+
progress.remove_task(task_id)
515516
self.log.warning(f"{show} 下载中断,错误信息:{e}")
516517
self.delete_file(cache)
517518
await self.recorder.delete_id(id_)

src/tools/truncate.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ def is_chinese_char(char: str) -> bool:
55
return 'CJK' in name(char, "")
66

77

8-
def truncate_string(s: str, length: int) -> str:
8+
def truncate_string(s: str, length: int = 64) -> str:
99
count = 0
1010
result = ""
1111
for char in s:
@@ -19,12 +19,12 @@ def truncate_string(s: str, length: int) -> str:
1919
return result
2020

2121

22-
def trim_string(s: str, length: int) -> str:
22+
def trim_string(s: str, length: int = 64) -> str:
2323
length = length // 2 - 2
2424
return f"{s[:length]}...{s[-length:]}" if len(s) > length else s
2525

2626

27-
def beautify_string(s: str, length: int) -> str:
27+
def beautify_string(s: str, length: int = 64) -> str:
2828
count = 0
2929
for char in s:
3030
if is_chinese_char(char): # 判断是否为中文字符

升级工具.py

Lines changed: 35 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,23 @@
1-
# 本程序仅用于 5.3 更新至 5.4
2-
# 已完成:更新配置文件参数
3-
# 待完成:迁移旧版下载记录
4-
5-
1+
from asyncio import run
62
from json import dump
73
from json import load
84
from platform import system
95

106
from src.config import Settings
117
from src.custom import PROJECT_ROOT
8+
from src.manager import Database
129

1310
SETTING_ROOT = PROJECT_ROOT.joinpath("settings.json")
1411
ENCODE = "UTF-8-SIG" if system() == "Windows" else "UTF-8"
1512

1613

1714
def about():
18-
print("本程序仅用于 5.3 更新至 5.4!")
15+
print("本程序仅适用于 TikTokDownloader V5.3 更新至 V5.4!")
1916
print("请确保本程序放置于 main.py 或 main.exe 同级文件夹!")
17+
print("本程序功能:")
18+
print("更新配置文件参数")
19+
print("迁移旧版映射数据")
20+
print("迁移旧版下载记录")
2021

2122

2223
def update_params():
@@ -28,11 +29,37 @@ def update_params():
2829
print("已更新配置文件!")
2930

3031

31-
def main():
32+
async def update_map(db):
33+
with PROJECT_ROOT.joinpath("cache/AccountCache.json").open("r+", encoding="utf-8") as f:
34+
data = load(f)
35+
for i, j in data.items():
36+
await db.update_mapping_data(i, j["name"], j["mark"])
37+
print("写入映射", i, j["name"], j["mark"])
38+
print("已更新映射数据!")
39+
40+
41+
async def update_record(db):
42+
with PROJECT_ROOT.joinpath("cache/IDRecorder.txt").open("r+", encoding="utf-8") as f:
43+
data = {line.strip() for line in f}
44+
for i in data:
45+
await db.write_download_data(i)
46+
print("写入记录", i)
47+
print("已更新下载记录!")
48+
49+
50+
async def main():
3251
about()
52+
if input("直接回车继续执行,输入任意内容结束运行:"):
53+
return
3354
if not input("即将更新配置文件,直接回车继续执行,输入任意内容跳过执行:"):
3455
update_params()
56+
async with Database() as db:
57+
if not input("即将迁移映射数据,直接回车继续执行,输入任意内容跳过执行:"):
58+
await update_map(db)
59+
if not input("即将迁移下载记录,直接回车继续执行,输入任意内容跳过执行:"):
60+
await update_record(db)
61+
print("程序运行完成!")
3562

3663

3764
if __name__ == '__main__':
38-
main()
65+
run(main())

0 commit comments

Comments
 (0)