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