@@ -14,6 +14,7 @@ import threading, requests, psutil
1414import json
1515
1616os_name = platform .system () # 获取操作系统类型
17+
1718if os_name == "Windows" : # 如果是 Windows 操作系统,导入 Windows 相关库
1819 import win32print , win32gui , win32con , win32api , ctypes , winreg
1920
@@ -256,21 +257,14 @@ def open_access_token_window():
256257
257258 # 保存按钮
258259 def save_token ():
260+ global tip_info
259261 user_token = token_text .get ("1.0" , tk .END ).strip ()
260262 if user_token :
261263 set_access_token (user_token )
262264 # 重新启用“下载”按钮,并提示用户
263265 download_btn .config (state = "normal" )
264-
265- # 在 Windows & Linux 上额外提示存储位置
266- if os_name == "Windows" :
267- reg_pos = "HKEY_CURRENT_USER\\ Software\\ tchMaterial-parser\\ AccessToken"
268- messagebox .showinfo ("提示" , f"Access Token 已保存!\n 已写入注册表:{ reg_pos } " )
269- elif os_name == "Linux" :
270- file_path = "~/.config/tchMaterial-parser/data.json"
271- messagebox .showinfo ("提示" , f"Access Token 已保存!\n 已写入文件:{ file_path } " )
272- else :
273- messagebox .showinfo ("提示" , "Access Token 已保存!" )
266+ # 显示提示
267+ messagebox .showinfo ("提示" , tip_info )
274268
275269 token_window .destroy ()
276270 else :
@@ -435,16 +429,15 @@ session.proxies = { "http": None, "https": None } # 全局忽略代理
435429# 尝试从注册表读取本地存储的 access_token(仅限Windows)
436430def load_access_token_from_registry ():
437431 global access_token
438- if os_name == "Windows" :
439- try :
440- with winreg .OpenKey (winreg .HKEY_CURRENT_USER , "Software\\ tchMaterial-parser" , 0 , winreg .KEY_READ ) as key :
441- token , _ = winreg .QueryValueEx (key , "AccessToken" )
442- if token :
443- access_token = token
444- # 更新请求头
445- headers ["X-ND-AUTH" ] = f'MAC id="{ access_token } ",nonce="0",mac="0"'
446- except :
447- pass # 读取失败则不做处理
432+ try :
433+ with winreg .OpenKey (winreg .HKEY_CURRENT_USER , "Software\\ tchMaterial-parser" , 0 , winreg .KEY_READ ) as key :
434+ token , _ = winreg .QueryValueEx (key , "AccessToken" )
435+ if token :
436+ access_token = token
437+ # 更新请求头
438+ headers ["X-ND-AUTH" ] = f'MAC id="{ access_token } ",nonce="0",mac="0"'
439+ except :
440+ pass # 读取失败则不做处理
448441
449442# 尝试从Linux系统的 ~/.config/tchMaterial-parser/data.json 文件加载 access_token
450443def load_access_token_on_linux ():
@@ -470,12 +463,11 @@ def load_access_token_on_linux():
470463
471464# 将access_token写入注册表
472465def save_access_token_to_registry (token : str ):
473- if os_name == "Windows" :
474- try :
475- with winreg .CreateKey (winreg .HKEY_CURRENT_USER , r"Software\\tchMaterial-parser" ) as key :
476- winreg .SetValueEx (key , "AccessToken" , 0 , winreg .REG_SZ , token )
477- except :
478- pass
466+ try :
467+ with winreg .CreateKey (winreg .HKEY_CURRENT_USER , r"Software\\tchMaterial-parser" ) as key :
468+ winreg .SetValueEx (key , "AccessToken" , 0 , winreg .REG_SZ , token )
469+ except :
470+ pass
479471
480472# 将access_token保存到 Linux 系统的 ~/.config/tchMaterial-parser/data.json 文件中
481473def save_access_token_on_linux (token : str ):
@@ -505,17 +497,28 @@ def set_access_token(token: str):
505497 global access_token , headers
506498 access_token = token
507499 headers ["X-ND-AUTH" ] = f'MAC id="{ access_token } ",nonce="0",mac="0"'
508- if os_name == "Windows" :
509- save_access_token_to_registry (token )
510- elif os_name == "Linux" :
511- save_access_token_on_linux (token )
500+ save_access_token (token )
512501
513- # 立即尝试加载已存的access_token(如果有的话)
514502if os_name == "Windows" :
515- load_access_token_from_registry ()
503+ load_access_token = load_access_token_from_registry
504+ save_access_token = save_access_token_to_registry
505+ # 在 Windows 上额外提示存储位置
506+ reg_pos = "HKEY_CURRENT_USER\\ Software\\ tchMaterial-parser\\ AccessToken"
507+ tip_info = f"Access Token 已保存!\n 已写入注册表:{ reg_pos } "
516508elif os_name == "Linux" :
517- load_access_token_on_linux ()
509+ load_access_token = load_access_token_on_linux
510+ save_access_token = save_access_token_on_linux
511+ # 在 Linux 上额外提示存储位置
512+ file_path = "~/.config/tchMaterial-parser/data.json"
513+ tip_info = f"Access Token 已保存!\n 已写入文件:{ file_path } "
514+ else :
515+ # 在其他操作系统上 load/save access_token 什么也不做
516+ load_access_token = lambda : 0
517+ save_access_token = lambda token : 0
518+ tip_info = "Access Token 已保存!"
518519
520+ # 立即尝试加载已存的access_token(如果有的话)
521+ load_access_token ()
519522
520523# 获取资源列表
521524try :
0 commit comments