[refactor] 更新 InfoUtils.get_user_nickname 方法,添加 config_manager 参数以支持群名片配置

This commit is contained in:
Ri-Nai
2025-10-18 23:34:27 +08:00
parent 98fd257532
commit b6633613db
5 changed files with 11 additions and 7 deletions
@@ -148,7 +148,7 @@ class GoldenQuoteAnalyzer(BaseAnalyzer):
for msg in messages:
sender = msg.get("sender", {})
nickname = InfoUtils.get_user_nickname(sender)
nickname = InfoUtils.get_user_nickname(self.config_manager, sender)
msg_time = datetime.fromtimestamp(msg.get("time", 0)).strftime("%H:%M")
for content in msg.get("message", []):
+2 -2
View File
@@ -72,7 +72,7 @@ class TopicAnalyzer(BaseAnalyzer):
logger.warning(f"build_prompt 跳过sender非字典类型的消息: {type(sender)} - {sender}")
continue
nickname = InfoUtils.get_user_nickname(sender)
nickname = InfoUtils.get_user_nickname(self.config_manager, sender)
msg_time = datetime.fromtimestamp(msg.get("time", 0)).strftime("%H:%M")
message_list = msg.get("message", [])
@@ -298,7 +298,7 @@ class TopicAnalyzer(BaseAnalyzer):
logger.warning(f"extract_text_messages 跳过sender非字典类型的消息: {type(sender)} - {sender}")
continue
nickname = InfoUtils.get_user_nickname(sender)
nickname = InfoUtils.get_user_nickname(self.config_manager, sender)
msg_time = datetime.fromtimestamp(msg.get("time", 0)).strftime("%H:%M")
for content in msg.get("message", []):
+1 -1
View File
@@ -29,7 +29,7 @@ class UserAnalyzer:
for msg in messages:
sender = msg.get("sender", {})
user_id = str(sender.get("user_id", ""))
nickname = InfoUtils.get_user_nickname(sender)
nickname = InfoUtils.get_user_nickname(self.config_manager, sender)
user_stats[user_id]["message_count"] += 1
user_stats[user_id]["nickname"] = nickname
+6 -2
View File
@@ -1,9 +1,13 @@
class InfoUtils:
@staticmethod
def get_user_nickname(sender) -> str:
def get_user_nickname(config_manager, sender) -> str:
"""
获取用户昵称
优先使用nickname字段,如果为空则使用card(群名片)字段
"""
return sender.get("nickname", "") or sender.get("card", "")
enable_user_card = config_manager.get_enable_user_card()
if enable_user_card:
return sender.get("card", "") or sender.get("nickname", "")
else:
return sender.get("nickname", "") or sender.get("card", "")
+1 -1
View File
@@ -30,7 +30,7 @@ class ActivityVisualizer:
# # 用户分析
# sender = msg.get("sender", {})
# user_id = str(sender.get("user_id", ""))
# nickname = InfoUtils.get_user_nickname(sender)
# nickname = InfoUtils.get_user_nickname(self.config_manager, sender)
# 统计每小时消息数
hourly_activity[hour] += 1