""" 快速查看数据库统计信息 """ from db_manager import SiteManager, ClickManager, InteractionManager, StatisticsManager from loguru import logger import sys # 配置日志 logger.remove() logger.add( sys.stdout, format="{time:HH:mm:ss} | {level: <8} | {message}", level="INFO" ) def main(): """显示数据库统计信息""" logger.info("="*70) logger.info("数据库统计信息") logger.info("="*70) logger.info("") # 全局统计 stats_mgr = StatisticsManager() global_stats = stats_mgr.get_statistics() logger.info("【全局统计】") logger.info(f" 总站点数: {global_stats.get('total_sites', 0)}") logger.info(f" 活跃站点数: {global_stats.get('active_sites', 0)}") logger.info(f" 总点击数: {global_stats.get('total_clicks', 0)}") logger.info(f" 总回复数: {global_stats.get('total_replies', 0)}") logger.info(f" 成功互动数: {global_stats.get('successful_interactions', 0)}") logger.info(f" 回复率: {global_stats.get('reply_rate', '0%')}") logger.info(f" 成功率: {global_stats.get('success_rate', '0%')}") logger.info("") # 站点列表 site_mgr = SiteManager() sites = site_mgr.get_all_sites() logger.info("【站点列表】") if sites: for idx, site in enumerate(sites[:10], 1): logger.info(f"\n {idx}. 站点ID: {site['id']}") logger.info(f" URL: {site['site_url']}") logger.info(f" 名称: {site['site_name']}") logger.info(f" 状态: {site['status']}") logger.info(f" 点击数: {site['click_count']}") logger.info(f" 回复数: {site['reply_count']}") logger.info(f" 创建时间: {site['created_at']}") if len(sites) > 10: logger.info(f"\n ...还有 {len(sites) - 10} 个站点") else: logger.info(" 暂无站点记录") logger.info("") # 最近的互动记录 if sites: logger.info("【最近的互动记录】(最多显示前5个站点的记录)") interaction_mgr = InteractionManager() for site in sites[:5]: site_id = site['id'] interactions = interaction_mgr.get_interactions_by_site(site_id, limit=3) if interactions: logger.info(f"\n 站点: {site['site_name']} (ID: {site_id})") for interaction in interactions: logger.info(f" - 时间: {interaction['interaction_time']}") logger.info(f" 内容: {interaction['reply_content']}") logger.info(f" 状态: {interaction['interaction_status']}") logger.info(f" 收到回复: {'是' if interaction['response_received'] else '否'}") logger.info("") logger.info("="*70) if __name__ == "__main__": main()