Source code for digit.info
import json
import sys
import os
"""
加载info文件, 其中包括api_token和data的字典,如果已经缓存,则data字典中有对应data的data_id和data_name,
"""
[docs]class Information:
def __init__(self):
if getattr(sys, 'frozen', None): # 确保在不同环境下都能加载正确的文件路径, 无论是打包后的执行文件还是为打包的python脚本
basedir = sys._MEIPASS
else:
basedir = os.path.dirname(__file__)
self.file_path = os.path.join(basedir ,"info.json")
self.api_token = ""
self.data = {}
self._load_data()
def _load_data(self):
with open(self.file_path) as json_file:
data = json.load(json_file)
self.data = data.get("data", {})
self.api_token = data.get("api_token", "")
def _save_data(self):
try:
with open(self.file_path, "w") as json_file:
data = {
"api_token": self.api_token,
"data": self.data
}
json.dump(data, json_file, indent=4)
except Exception as e:
print(f"修改出错,错误信息:{e}")
[docs] def update_api_token(self, new_token):
if new_token:
self.api_token = new_token
self._save_data()
else:
print("new_token 为空")
[docs] def add_data(self, data_id):
# 增加已经下载的数据的缓存表,表示该数据已下载
self.data[data_id] = data_id
self._save_data()
[docs] def delete_data(self, data_id):
# 删除data_id对应的缓存判断表。查询不到,表示该数据未下载
self.data.pop(data_id)
self._save_data()
[docs] def query_data(self, data_id):
if data_id in self.data:
return self.data.get(data_id) # 如果存在则返回data_id
return False # 如果不存在则返回False