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.get_user_nickname 方法,添加 config_manager 参数以支持群名片配置
This commit is contained in:
@@ -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", []):
|
||||
|
||||
@@ -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", []):
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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", "")
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user