Files
ai_mip/view_db_stats.py

84 lines
2.9 KiB
Python
Raw Permalink Normal View History

2026-01-16 22:06:46 +08:00
"""
快速查看数据库统计信息
"""
from db_manager import SiteManager, ClickManager, InteractionManager, StatisticsManager
from loguru import logger
import sys
# 配置日志
logger.remove()
logger.add(
sys.stdout,
format="<green>{time:HH:mm:ss}</green> | <level>{level: <8}</level> | <level>{message}</level>",
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()