84 lines
2.9 KiB
Python
84 lines
2.9 KiB
Python
|
|
"""
|
|||
|
|
快速查看数据库统计信息
|
|||
|
|
"""
|
|||
|
|
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()
|