style: 统一代码风格并进行现代化改进

对整个代码库进行了一次全面的风格统一和现代化改进。主要变更包括:

- 将 `hasattr` 等内置函数中的字符串参数从单引号 `'` 统一为双引号 `"`。
- 采用现代类型注解,例如将 `Optional[T]` 替换为 `T | None`,`List[T]` 替换为 `list[T]` 等。
- 移除不再需要的 Python 2 兼容性声明 `# -*- coding: utf-8 -*-`。
- 清理了多余的空行、注释和未使用的导入。
- 统一了文件末尾的换行符。
- 优化了部分日志输出和字符串格式化 (`f"{e!s}"`)。

这些改动旨在提升代码的可读性、一致性和可维护性,使其更符合现代 Python 编码规范。
This commit is contained in:
minecraft1024a
2025-10-05 13:21:27 +08:00
committed by Windpicker-owo
parent 1fb2ab6450
commit cd84373828
47 changed files with 437 additions and 283 deletions

View File

@@ -52,7 +52,7 @@ class AffinityInterestCalculator(BaseInterestCalculator):
# 用户关系数据缓存
self.user_relationships: dict[str, float] = {} # user_id -> relationship_score
logger.info(f"[Affinity兴趣计算器] 初始化完成:")
logger.info("[Affinity兴趣计算器] 初始化完成:")
logger.info(f" - 权重配置: {self.score_weights}")
logger.info(f" - 回复阈值: {self.reply_threshold}")
logger.info(f" - 智能匹配: {self.use_smart_matching}")
@@ -69,9 +69,9 @@ class AffinityInterestCalculator(BaseInterestCalculator):
"""执行AffinityFlow风格的兴趣值计算"""
try:
start_time = time.time()
message_id = getattr(message, 'message_id', '')
content = getattr(message, 'processed_plain_text', '')
user_id = getattr(message, 'user_info', {}).user_id if hasattr(message, 'user_info') and hasattr(message.user_info, 'user_id') else ''
message_id = getattr(message, "message_id", "")
content = getattr(message, "processed_plain_text", "")
user_id = getattr(message, "user_info", {}).user_id if hasattr(message, "user_info") and hasattr(message.user_info, "user_id") else ""
logger.debug(f"[Affinity兴趣计算] 开始处理消息 {message_id}")
logger.debug(f"[Affinity兴趣计算] 消息内容: {content[:50]}...")
@@ -135,7 +135,7 @@ class AffinityInterestCalculator(BaseInterestCalculator):
logger.error(f"Affinity兴趣值计算失败: {e}", exc_info=True)
return InterestCalculationResult(
success=False,
message_id=getattr(message, 'message_id', ''),
message_id=getattr(message, "message_id", ""),
interest_value=0.0,
error_message=str(e)
)
@@ -206,9 +206,9 @@ class AffinityInterestCalculator(BaseInterestCalculator):
def _calculate_mentioned_score(self, message: "DatabaseMessages", bot_nickname: str) -> float:
"""计算提及分"""
is_mentioned = getattr(message, 'is_mentioned', False)
is_at = getattr(message, 'is_at', False)
processed_plain_text = getattr(message, 'processed_plain_text', '')
is_mentioned = getattr(message, "is_mentioned", False)
is_at = getattr(message, "is_at", False)
processed_plain_text = getattr(message, "processed_plain_text", "")
if is_mentioned:
if is_at:
@@ -238,7 +238,7 @@ class AffinityInterestCalculator(BaseInterestCalculator):
keywords = []
# 尝试从 key_words 字段提取存储的是JSON字符串
key_words = getattr(message, 'key_words', '')
key_words = getattr(message, "key_words", "")
if key_words:
try:
import orjson
@@ -250,7 +250,7 @@ class AffinityInterestCalculator(BaseInterestCalculator):
# 如果没有 keywords尝试从 key_words_lite 提取
if not keywords:
key_words_lite = getattr(message, 'key_words_lite', '')
key_words_lite = getattr(message, "key_words_lite", "")
if key_words_lite:
try:
import orjson
@@ -262,7 +262,7 @@ class AffinityInterestCalculator(BaseInterestCalculator):
# 如果还是没有,从消息内容中提取(降级方案)
if not keywords:
content = getattr(message, 'processed_plain_text', '') or ''
content = getattr(message, "processed_plain_text", "") or ""
keywords = self._extract_keywords_from_content(content)
return keywords[:15] # 返回前15个关键词
@@ -298,4 +298,4 @@ class AffinityInterestCalculator(BaseInterestCalculator):
self.no_reply_count = min(self.no_reply_count + 1, self.max_no_reply_count)
# 是否使用智能兴趣匹配(作为类属性)
use_smart_matching = True
use_smart_matching = True

View File

@@ -107,9 +107,9 @@ class ChatterActionPlanner:
# 直接使用消息中已计算的标志,无需重复计算兴趣值
for message in unread_messages:
try:
message_interest = getattr(message, 'interest_value', 0.3)
message_should_reply = getattr(message, 'should_reply', False)
message_should_act = getattr(message, 'should_act', False)
message_interest = getattr(message, "interest_value", 0.3)
message_should_reply = getattr(message, "should_reply", False)
message_should_act = getattr(message, "should_act", False)
# 确保interest_value不是None
if message_interest is None:

View File

@@ -5,7 +5,7 @@
from src.common.logger import get_logger
from src.plugin_system.apis.plugin_register_api import register_plugin
from src.plugin_system.base.base_plugin import BasePlugin
from src.plugin_system.base.component_types import ComponentInfo, ComponentType, InterestCalculatorInfo
from src.plugin_system.base.component_types import ComponentInfo
logger = get_logger("affinity_chatter_plugin")
@@ -52,4 +52,3 @@ class AffinityChatterPlugin(BasePlugin):
return components

View File

@@ -14,4 +14,4 @@ __plugin_meta__ = PluginMetadata(
"is_built_in": True,
"plugin_type": "action_provider",
}
)
)

View File

@@ -13,4 +13,4 @@ __plugin_meta__ = PluginMetadata(
"is_built_in": True,
"plugin_type": "permission",
}
)
)

View File

@@ -14,4 +14,4 @@ __plugin_meta__ = PluginMetadata(
"is_built_in": True,
"plugin_type": "plugin_management",
}
)
)

View File

@@ -14,4 +14,4 @@ __plugin_meta__ = PluginMetadata(
"is_built_in": True,
"plugin_type": "functional"
}
)
)

View File

@@ -65,10 +65,10 @@ class ColdStartTask(AsyncTask):
nickname = await person_api.get_person_value(person_id, "nickname")
user_nickname = nickname or f"用户{user_id}"
user_info = UserInfo(platform=platform, user_id=str(user_id), user_nickname=user_nickname)
# 使用 get_or_create_stream 来安全地获取或创建流
stream = await self.chat_manager.get_or_create_stream(platform, user_info)
formatted_stream_id = f"{stream.user_info.platform}:{stream.user_info.user_id}:private"
await self.executor.execute(stream_id=formatted_stream_id, start_mode="cold_start")
logger.info(f"【冷启动】已为用户 {chat_id} (昵称: {user_nickname}) 发送唤醒/问候消息。")

View File

@@ -14,4 +14,4 @@ __plugin_meta__ = PluginMetadata(
"is_built_in": "true",
"plugin_type": "functional"
}
)
)

View File

@@ -14,4 +14,4 @@ __plugin_meta__ = PluginMetadata(
"is_built_in": True,
"plugin_type": "audio_processor",
}
)
)

View File

@@ -13,4 +13,4 @@ __plugin_meta__ = PluginMetadata(
extra={
"is_built_in": True,
}
)
)