创建您自己的信号机器人的框架
项目描述
信号机器人框架
用于构建您自己的 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.ChatTestCase
which 设置“骨架”机器人。@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
查看哈希)