将看板功能独立,方便独立维护功能。
This commit is contained in:
80
admin/dashboard_start.py
Normal file
80
admin/dashboard_start.py
Normal file
@@ -0,0 +1,80 @@
|
||||
import os
|
||||
import sys
|
||||
import logging
|
||||
import tomli
|
||||
import argparse
|
||||
|
||||
# 添加项目根目录到系统路径
|
||||
sys.path.append(os.path.abspath(os.path.dirname(os.path.dirname(__file__))))
|
||||
|
||||
from admin.dashboard.server import DashboardServer
|
||||
|
||||
def setup_logging():
|
||||
"""设置日志"""
|
||||
logging.basicConfig(
|
||||
level=logging.INFO,
|
||||
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
|
||||
handlers=[
|
||||
logging.StreamHandler(),
|
||||
logging.FileHandler(os.path.join(os.path.dirname(__file__), 'dashboard.log'))
|
||||
]
|
||||
)
|
||||
|
||||
def load_config():
|
||||
"""加载TOML配置"""
|
||||
config_path = os.path.join(os.path.dirname(__file__), 'dashboard', 'config.toml')
|
||||
if not os.path.exists(config_path):
|
||||
print(f"配置文件不存在: {config_path}")
|
||||
return None
|
||||
|
||||
try:
|
||||
with open(config_path, 'rb') as f:
|
||||
config = tomli.load(f)
|
||||
return config
|
||||
except Exception as e:
|
||||
print(f"加载配置文件失败: {e}")
|
||||
return None
|
||||
|
||||
def main():
|
||||
"""主函数"""
|
||||
parser = argparse.ArgumentParser(description='启动WeChatRobot管理后台')
|
||||
parser.add_argument('--host', type=str, help='服务器主机地址')
|
||||
parser.add_argument('--port', type=int, help='服务器端口')
|
||||
parser.add_argument('--username', type=str, help='管理员用户名')
|
||||
parser.add_argument('--password', type=str, help='管理员密码')
|
||||
args = parser.parse_args()
|
||||
|
||||
# 设置日志
|
||||
setup_logging()
|
||||
logger = logging.getLogger("Dashboard")
|
||||
|
||||
# 加载配置
|
||||
config = load_config()
|
||||
if not config:
|
||||
logger.error("无法加载配置,使用默认配置")
|
||||
config = {}
|
||||
|
||||
# 命令行参数优先级高于配置文件
|
||||
host = args.host or config.get('host', '0.0.0.0')
|
||||
port = args.port or config.get('port', 8888)
|
||||
username = args.username or config.get('username', 'admin')
|
||||
password = args.password or config.get('password', 'admin123')
|
||||
|
||||
# 检查是否启用
|
||||
if not config.get('enable', True):
|
||||
logger.info("管理后台已禁用,退出程序")
|
||||
return
|
||||
|
||||
# 创建并启动服务器
|
||||
server = DashboardServer(
|
||||
host=host,
|
||||
port=port,
|
||||
username=username,
|
||||
password=password
|
||||
)
|
||||
|
||||
logger.info(f"启动管理后台服务器,访问地址: http://{host}:{port}")
|
||||
server.run()
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user