mirror of
https://github.com/Nezumi-2711/astrbot_plugin_qq_group_daily_analysis.git
synced 2026-09-22 13:38:43 +00:00
[refactor] 使用 InfoUtils 提取用户昵称,简化代码
This commit is contained in:
@@ -9,6 +9,7 @@ from astrbot.api import logger
|
||||
from ...models.data_models import GoldenQuote, TokenUsage
|
||||
from .base_analyzer import BaseAnalyzer
|
||||
from ..utils.json_utils import extract_golden_quotes_with_regex
|
||||
from ...utils import InfoUtils
|
||||
|
||||
|
||||
|
||||
@@ -147,7 +148,7 @@ class GoldenQuoteAnalyzer(BaseAnalyzer):
|
||||
|
||||
for msg in messages:
|
||||
sender = msg.get("sender", {})
|
||||
nickname = sender.get("nickname", "") or sender.get("card", "")
|
||||
nickname = InfoUtils.get_user_nickname(sender)
|
||||
msg_time = datetime.fromtimestamp(msg.get("time", 0)).strftime("%H:%M")
|
||||
|
||||
for content in msg.get("message", []):
|
||||
|
||||
@@ -10,6 +10,7 @@ from astrbot.api import logger
|
||||
from ...models.data_models import SummaryTopic, TokenUsage
|
||||
from .base_analyzer import BaseAnalyzer
|
||||
from ..utils.json_utils import extract_topics_with_regex
|
||||
from ...utils import InfoUtils
|
||||
|
||||
|
||||
class TopicAnalyzer(BaseAnalyzer):
|
||||
@@ -71,7 +72,7 @@ class TopicAnalyzer(BaseAnalyzer):
|
||||
logger.warning(f"build_prompt 跳过sender非字典类型的消息: {type(sender)} - {sender}")
|
||||
continue
|
||||
|
||||
nickname = sender.get("nickname", "") or sender.get("card", "")
|
||||
nickname = InfoUtils.get_user_nickname(sender)
|
||||
msg_time = datetime.fromtimestamp(msg.get("time", 0)).strftime("%H:%M")
|
||||
|
||||
message_list = msg.get("message", [])
|
||||
@@ -297,7 +298,7 @@ class TopicAnalyzer(BaseAnalyzer):
|
||||
logger.warning(f"extract_text_messages 跳过sender非字典类型的消息: {type(sender)} - {sender}")
|
||||
continue
|
||||
|
||||
nickname = sender.get("nickname", "") or sender.get("card", "")
|
||||
nickname = InfoUtils.get_user_nickname(sender)
|
||||
msg_time = datetime.fromtimestamp(msg.get("time", 0)).strftime("%H:%M")
|
||||
|
||||
for content in msg.get("message", []):
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
from datetime import datetime
|
||||
from typing import List, Dict
|
||||
from collections import defaultdict
|
||||
from ..utils import InfoUtils
|
||||
|
||||
|
||||
class UserAnalyzer:
|
||||
@@ -28,7 +29,7 @@ class UserAnalyzer:
|
||||
for msg in messages:
|
||||
sender = msg.get("sender", {})
|
||||
user_id = str(sender.get("user_id", ""))
|
||||
nickname = sender.get("nickname", "") or sender.get("card", "")
|
||||
nickname = InfoUtils.get_user_nickname(sender)
|
||||
|
||||
user_stats[user_id]["message_count"] += 1
|
||||
user_stats[user_id]["nickname"] = nickname
|
||||
|
||||
@@ -5,8 +5,10 @@
|
||||
|
||||
from .pdf_utils import PDFInstaller
|
||||
from .helpers import MessageAnalyzer
|
||||
from .info_utils import InfoUtils
|
||||
|
||||
__all__ = [
|
||||
'PDFInstaller',
|
||||
'MessageAnalyzer'
|
||||
'MessageAnalyzer',
|
||||
'InfoUtils'
|
||||
]
|
||||
@@ -0,0 +1,9 @@
|
||||
class InfoUtils:
|
||||
@staticmethod
|
||||
def get_user_nickname(sender) -> str:
|
||||
"""
|
||||
获取用户昵称
|
||||
|
||||
优先使用nickname字段,如果为空则使用card(群名片)字段
|
||||
"""
|
||||
return sender.get("nickname", "") or sender.get("card", "")
|
||||
@@ -30,7 +30,7 @@ class ActivityVisualizer:
|
||||
# # 用户分析
|
||||
# sender = msg.get("sender", {})
|
||||
# user_id = str(sender.get("user_id", ""))
|
||||
# nickname = sender.get("nickname", "") or sender.get("card", "")
|
||||
# nickname = InfoUtils.get_user_nickname(sender)
|
||||
|
||||
# 统计每小时消息数
|
||||
hourly_activity[hour] += 1
|
||||
|
||||
Reference in New Issue
Block a user