90 lines
2.5 KiB
Python
90 lines
2.5 KiB
Python
import os
|
||
import json
|
||
import sys
|
||
import tkinter as tk
|
||
from tkinter import messagebox
|
||
|
||
# 默认配置
|
||
DEFAULT_CONFIG = {
|
||
# Path of Exile客户端日志路径
|
||
"CLIENT_LOG_PATH": "C:/Program Files (x86)/Grinding Gear Games/Path of Exile 2/logs/Client.txt",
|
||
|
||
# 消息发送API配置
|
||
"API_URL": "https://al.xj.rs/api/v1/send",
|
||
"API_KEY": "", # 需要用户填写
|
||
|
||
# 交易通知配置
|
||
"TRADE_MESSAGES_CONFIG": {
|
||
"enabled": True, # 是否启用交易通知
|
||
"message_forward": True, # 是否转发到消息服务
|
||
},
|
||
|
||
# 私聊消息相关配置
|
||
"CHAT_MESSAGES": {
|
||
"enabled": True, # 是否启用私聊转发
|
||
"message_forward": True, # 是否转发到消息服务
|
||
}
|
||
}
|
||
|
||
CONFIG_FILE = "config.json"
|
||
|
||
def show_error(title, message):
|
||
"""显示错误消息对话框"""
|
||
root = tk.Tk()
|
||
root.withdraw() # 隐藏主窗口
|
||
messagebox.showerror(title, message)
|
||
root.destroy()
|
||
sys.exit(1)
|
||
|
||
def load_config():
|
||
"""加载或创建配置文件"""
|
||
if not os.path.exists(CONFIG_FILE):
|
||
# 创建默认配置文件
|
||
try:
|
||
with open(CONFIG_FILE, 'w', encoding='utf-8') as f:
|
||
json.dump(DEFAULT_CONFIG, f, indent=4, ensure_ascii=False)
|
||
show_error(
|
||
"配置文件创建成功",
|
||
f"已创建默认配置文件: {CONFIG_FILE}\n请编辑配置文件填写必要信息后重启程序"
|
||
)
|
||
except Exception as e:
|
||
show_error(
|
||
"错误",
|
||
f"创建配置文件失败: {str(e)}"
|
||
)
|
||
|
||
try:
|
||
# 读取配置文件
|
||
with open(CONFIG_FILE, 'r', encoding='utf-8') as f:
|
||
config = json.load(f)
|
||
|
||
# 检查必要的配置项
|
||
if not config.get("API_KEY"):
|
||
show_error(
|
||
"配置错误",
|
||
"请在配置文件中设置API_KEY后重启程序"
|
||
)
|
||
|
||
return config
|
||
|
||
except json.JSONDecodeError:
|
||
show_error(
|
||
"配置错误",
|
||
"配置文件格式错误,请检查JSON格式是否正确"
|
||
)
|
||
except Exception as e:
|
||
show_error(
|
||
"错误",
|
||
f"读取配置文件失败: {str(e)}"
|
||
)
|
||
|
||
# 加载配置
|
||
config = load_config()
|
||
|
||
# 导出配置项
|
||
CLIENT_LOG_PATH = config["CLIENT_LOG_PATH"]
|
||
API_URL = config["API_URL"]
|
||
API_KEY = config["API_KEY"]
|
||
TRADE_MESSAGES_CONFIG = config["TRADE_MESSAGES_CONFIG"]
|
||
CHAT_MESSAGES = config["CHAT_MESSAGES"]
|