diff --git a/Assets/user_configs.easysave b/Assets/user_configs.easysave deleted file mode 100644 index f59ef05..0000000 --- a/Assets/user_configs.easysave +++ /dev/null @@ -1,3 +0,0 @@ -{ - "entries": [] -} \ No newline at end of file diff --git a/PWF b/PWF index 4ad222c..14ce7e6 160000 --- a/PWF +++ b/PWF @@ -1 +1 @@ -Subproject commit 4ad222cbc7b6ccc8b9af75b43d4b4d932b1571a7 +Subproject commit 14ce7e6e3f29238f8bc56931eb70ddb52a44c909 diff --git a/Plugins/WPSAPI.py b/Plugins/WPSAPI.py index 6d8072a..8f3369a 100644 --- a/Plugins/WPSAPI.py +++ b/Plugins/WPSAPI.py @@ -209,7 +209,7 @@ class WPSAPI(BasicWPSInterface): @override def wake_up(self) -> None: - config.Log("Info", "WPSAPI核心插件已加载") + config.Log("Info", f"{ConsoleFrontColor.GREEN}WPSAPI核心插件已加载{ConsoleFrontColor.RESET}") self.register_plugin("say") self.register_plugin("说") diff --git a/Plugins/WPSConfigPlugin.py b/Plugins/WPSDailyAPI.py similarity index 84% rename from Plugins/WPSConfigPlugin.py rename to Plugins/WPSDailyAPI.py index f5503ac..7dd736f 100644 --- a/Plugins/WPSConfigPlugin.py +++ b/Plugins/WPSDailyAPI.py @@ -3,16 +3,13 @@ from __future__ import annotations import asyncio import time -from PWF.Convention.Runtime import Config -from PWF.Convention.Runtime.Config import * - from pydantic import BaseModel, Field - -from PWF.Convention.Runtime.EasySave import EasySave, EasySaveSetting +from PWF.Convention.Runtime.Config import * +from PWF.Convention.Runtime.Architecture import Architecture from PWF.Convention.Runtime.File import ToolFile from PWF.Convention.Runtime.GlobalConfig import ProjectConfig -from .WPSAPI import BasicWPSInterface, LimitStringLength, get_internal_debug, WPSAPI +from .WPSAPI import WPSAPI config = ProjectConfig() @@ -28,7 +25,7 @@ class UserConfigStore(BaseModel): entries: List[UserConfigEntry] = Field(default_factory=list) -class WPSConfigPlugin(BasicWPSInterface): +class WPSConfigAPI(WPSAPI): def __init__(self) -> None: super().__init__() self._lock = asyncio.Lock() @@ -41,20 +38,20 @@ class WPSConfigPlugin(BasicWPSInterface): def dependencies(self) -> List[Type]: return [WPSAPI] - def _build_setting(self) -> ToolFile: #EasySaveSetting: - data_file: ToolFile = config.GetFile("user_configs.easysave", False) + @override + def is_enable_plugin(self) -> bool: + return True + + def _build_setting(self) -> ToolFile: + data_file: ToolFile = config.GetFile("user_configs.json", False) data_file.TryCreateParentPath() if data_file.Exists() == False: data_file.SaveAsJson(self._store) return data_file - @override - def is_enable_plugin(self) -> bool: - return True - @override def wake_up(self) -> None: - config.Log("Info", "WPSConfigPlugin 插件已加载") + config.Log("Info", f"{ConsoleFrontColor.GREEN}WPSConfigAPI 插件已加载{ConsoleFrontColor.RESET}") self.register_plugin("config") self.register_plugin("cfg") @@ -222,9 +219,8 @@ class WPSConfigPlugin(BasicWPSInterface): def get_user_name(self, chat_id: int, user_id: int) -> Optional[str]: entry = self._entries.get((chat_id, user_id)) if not entry: - return None - value = entry.data.get("user.name") - return str(value) if value is not None else None + return f"user_{user_id}" + return str(entry.data.get("user.name", f"user_{user_id}")) def get_user_url(self, chat_id: int, user_id: int) -> Optional[str]: entry = self._entries.get((chat_id, user_id)) @@ -255,7 +251,39 @@ class WPSConfigPlugin(BasicWPSInterface): ) +class WPSDailyAPI(WPSAPI): + @override + def dependencies(self) -> List[Type]: + return [WPSAPI] + + @override + def is_enable_plugin(self) -> bool: + return True + + @override + def wake_up(self) -> None: + config.Log("Info", f"{ConsoleFrontColor.GREEN}WPSDailyAPI 插件已加载{ConsoleFrontColor.RESET}") + self.register_plugin("daily") + + def _get_today_checkin_status(self, user_id: int) -> bool: + # TODO: 获取今日签到状态 + return False + + async def do_callback(self, message: str, chat_id: int, user_id: int) -> Optional[str]: + # 不匹配时默认返回当前的分数信息 + return f'''# 积分信息 +- 当前分数: {Architecture.Get(WPSConfigAPI).get_user_points(chat_id, user_id)} +- 今日签到状态: {"已签到" if self._get_today_checkin_status(user_id) else "未签到"} +''' + + @override + async def callback(self, message: str, chat_id: int, user_id: int) -> Optional[str]: + message = self.parse_message_after_at(message) + message = await self.do_callback(message, chat_id, user_id) + return await self.send_markdown_message(message, chat_id, user_id) + + config.SaveProperties() -__all__ = ["WPSConfigPlugin"] +__all__ = ["WPSConfigAPI"]