新增日常类型插件类
This commit is contained in:
@@ -1,3 +0,0 @@
|
||||
{
|
||||
"entries": []
|
||||
}
|
||||
2
PWF
2
PWF
Submodule PWF updated: 4ad222cbc7...14ce7e6e3f
@@ -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("说")
|
||||
|
||||
|
||||
@@ -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"]
|
||||
|
||||
Reference in New Issue
Block a user