PaiGram/plugins/README.md
2022-06-22 21:33:07 +08:00

48 lines
1.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# plugins 目录
## 说明
该目录仅限处理交互层和业务层数据交换的任务
如有任何新业务接口,请转到 `service` 目录添加
如有任何API请求接口请转到 `model` 目录添加
## 基础代码
``` python
from telegram import Update
from telegram.ext import CallbackContext
from plugins.base import BasePlugins, restricts
from plugins.errorhandler import conversation_error_handler
class Example(BasePlugins):
@staticmethod
def create_conversation_handler(service: BaseService):
example = Example(service)
return CommandHandler('example', example.command_start)
@conversation_error_handler
@restricts()
async def command_start(self, update: Update, context: CallbackContext) -> None:
await message.reply_text("Example")
```
### 注意
plugins 模块下的类需要继承 `BasePlugins`
plugins 模块下的类必须提供 `create_conversation_handler` 静态函数作为构建相应会话过程给 `handle.py`
在函数注册为命令处理过程(如 `CommandHandler` )需要添加 `conversation_error_handler` 修饰器作为错误统一处理
必要的函数必须捕获异常后通知用户或者直接抛出异常
入口函数必须使用 `@restricts()` 修饰器 防止洪水攻击
**注意:`@restricts()` 修饰器带参,必须带括号,否则会出现调用错误**