31 lines
999 B
Python
31 lines
999 B
Python
import time
|
|
from src.config.config import global_config
|
|
from src.common.message_repository import count_messages
|
|
|
|
|
|
def get_recent_message_stats(minutes: int = 30, chat_id: str = None) -> dict:
|
|
"""
|
|
Args:
|
|
minutes (int): 检索的分钟数,默认30分钟
|
|
chat_id (str, optional): 指定的chat_id,仅统计该chat下的消息。为None时统计全部。
|
|
Returns:
|
|
dict: {"bot_reply_count": int, "total_message_count": int}
|
|
"""
|
|
|
|
now = time.time()
|
|
start_time = now - minutes * 60
|
|
bot_id = global_config.bot.qq_account
|
|
|
|
filter_base = {"time": {"$gte": start_time}}
|
|
if chat_id is not None:
|
|
filter_base["chat_id"] = chat_id
|
|
|
|
# 总消息数
|
|
total_message_count = count_messages(filter_base)
|
|
# bot自身回复数
|
|
bot_filter = filter_base.copy()
|
|
bot_filter["user_id"] = bot_id
|
|
bot_reply_count = count_messages(bot_filter)
|
|
|
|
return {"bot_reply_count": bot_reply_count, "total_message_count": total_message_count}
|