创建您自己的信号机器人的框架
项目描述
信号机器人框架
用于构建您自己的 Signal 机器人的 Python 包。要运行机器人,您需要启动signal-cli-rest-api服务并将您的设备与其链接。有关详细信息,请参阅该项目。API 服务器必须在json-rpc模式下运行。
入门
请参阅https://github.com/filipre/signalbot-example了解如何使用该软件包以及如何构建一个简单的机器人的示例。
类和 API
文档工作正在进行中。随时提出问题。
该包提供了轻松侦听传入消息并对其做出响应或反应的方法。它还提供了一个类来开发新命令,然后可以在机器人中注册。
信号机器人
bot.listen(group_id, internal_id):收听群聊中的消息。group_id必须以group.bot.listen(phone_number):收听用户聊天中的消息。bot.register(command): 注册一个新命令bot.start(): 启动机器人bot.send(receiver, text, listen=False): 发送新消息bot.react(message, emoji): 对消息做出反应bot.start_typing(receiver): 开始打字bot.stop_typing(receiver): 停止输入bot.scheduler:APScheduler > AsyncIOScheduler,见这里bot.storage: In-memory 或 Redis stroage,见storage.py
命令
要实现自己的命令,您需要固有Command并覆盖以下方法:
setup(self):启动任何需要发送消息的任务,可选describe(self): 描述你的命令的字符串,可选handle(self, c: Context):处理传入的消息。默认情况下,任何命令都会读取任何传入的消息。Context可用于轻松回复 (c.send(text))、反应 (c.react(emoji)) 和输入组 (c.start_typing()andc.stop_typing())。您可以使用@triggered装饰器来侦听特定命令,也可以检查c.message.text.
单元测试
在很多情况下,我们可以模拟接收和发送消息以加快开发时间。为此,您可以使用signalbot.utils.ChatTestCasewhich 设置“骨架”机器人。@chat然后,您可以像这样使用装饰器发送消息signalbot.utils:
class PingChatTest(ChatTestCase):
def setUp(self):
# initialize self.singal_bot
super().setUp()
# all that is left to do is to register the commands that you want to test
self.signal_bot.register(PingCommand())
@chat("ping", "ping")
async def test_ping(self, query, replies, reactions):
self.assertEqual(replies.call_count, 2)
for recipient, message in replies.results():
self.assertEqual(recipient, ChatTestCase.group_secret)
self.assertEqual(message, "pong")
在signalbot.utils,查看ReceiveMessagesMock,SendMessagesMock并ReactMessageMock了解有关他们的 API 的更多信息。
故障排除
- 检查您是否已成功关联您的帐户
- API 服务器是否在
json-rpc模式下运行? - 您可以使用(websockets)接收消息并使用(http)
wscat发送消息吗?curl - 您是否在 API 日志中看到传入消息?
- 您是否在机器人的日志中看到“原始”消息?
- 您是否看到“消费者”接手工作并处理传入消息?
- 您在机器人的日志中看到响应了吗?
本地开发和打包
部分工作正在进行中。随时提出问题。
poetry install
poetry run pre-commit install
其他的项目
还有一些与此类似的其他相关项目。您可能需要检查它们,看看它是否符合您的需求。
| 项目 | 描述 | 语 | 地位 |
|---|---|---|---|
| https://github.com/signalapp/libsignal-service-java | 信号库 | 爪哇 | 最后更改 2019 年 11 月 12 日 |
| https://github.com/AsamK/signal-cli | Signal 的 CLI 和 D-Bus 接口 | 爪哇 | 活跃,建立在https://github.com/signalapp/libsignal-service-java之上 |
| https://github.com/bbernhard/signal-cli-rest-api | Signal CLI 的 REST API 包装器 | 去 | 活跃,建立在https://github.com/AsamK/signal-cli之上 |
| https://github.com/aaronetz/signal-bot | 机器人框架 | 爪哇 | 最后更改 2021 年 2 月 18 日 |
| https://github.com/signal-bot/signal-bot | 机器人框架 | Python | 最后更改 2018 年 7 月 6 日 |
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
signalbot-0.6.0.tar.gz
(11.6 kB
查看哈希)
内置分布
signalbot-0.6.0-py3-none-any.whl
(12.0 kB
查看哈希)