#!/usr/bin/env python3 """ 配置管理命令行工具 提供配置检查、验证、文档生成等功能 """ import argparse import sys from core.utils.config_health_check import run_health_check from core.utils.config_documentation import generate_config_docs from core.utils.config_manager import get_config_manager def list_platforms(): """列出所有平台配置""" config_manager = get_config_manager() platforms = config_manager.list_platforms() print("平台配置列表:") print("-" * 30) for platform in platforms: print(f" - {platform}") print(f"\n总计: {len(platforms)} 个平台") def show_platform_config(platform_name): """显示特定平台的配置详情""" config_manager = get_config_manager() try: config = config_manager.get_platform_config(platform_name) print(f"平台 '{platform_name}' 配置详情:") print("-" * 30) print(f"平台名称: {config.platform}") print(f"模式: {config.mode}") print(f"URL: {config.url}") print(f"方法: {config.method}") print(f"请求超时: {config.request_timeout}") print(f"最大重试次数: {config.max_retries}") print(f"循环次数: {config.loop_times}") print(f"飞书表格ID: {config.feishu_sheetid}") if config.request_body: print("请求体:") for key, value in config.request_body.items(): print(f" {key}: {value}") if config.response_parse: print("响应解析配置:") for key, value in config.response_parse.items(): print(f" {key}: {value}") except Exception as e: print(f"获取平台配置失败: {e}") sys.exit(1) def show_stats(): """显示配置统计信息""" config_manager = get_config_manager() try: stats = config_manager.get_config_stats() print("配置统计信息:") print("-" * 30) print(f"平台数量: {stats['total_platforms']}") print(f"运行环境: {stats['env']}") print(f"配置文件: {stats['config_file']}") print(f"最后修改时间: {stats['last_modified']}") except Exception as e: print(f"获取统计信息失败: {e}") sys.exit(1) def main(): parser = argparse.ArgumentParser(description="AutoScraperX 配置管理工具") subparsers = parser.add_subparsers(dest="command", help="可用命令") # 健康检查命令 subparsers.add_parser("check", help="检查配置健康状态") # 文档生成命令 subparsers.add_parser("docs", help="生成配置文档") # 列出平台命令 subparsers.add_parser("list", help="列出所有平台配置") # 显示统计信息命令 subparsers.add_parser("stats", help="显示配置统计信息") # 显示平台配置详情命令 show_parser = subparsers.add_parser("show", help="显示平台配置详情") show_parser.add_argument("platform", help="平台名称") args = parser.parse_args() if args.command == "check": result = run_health_check() sys.exit(0 if result["success"] else 1) elif args.command == "docs": filepath = generate_config_docs() print(f"配置文档已生成: {filepath}") elif args.command == "list": list_platforms() elif args.command == "stats": show_stats() elif args.command == "show": show_platform_config(args.platform) else: parser.print_help() if __name__ == "__main__": main()