123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- #!/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()
|