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}
|