#bot #room #user #bot-api #server #friendly #integration

app waasabi-matrix

您附近的Matrix服务器上的友好Ferris

1个不稳定版本

0.2.0 2021年4月23日

#13 in #room

MIT/Apache

48KB
1K SLoC

waasabi-matrix - 您友好的Rust蟹,引导您通过会议

waasabi-matrix 是一个Matrix聊天机器人,可以处理日志、管理和一些管理员操作。

配置

在开始使用之前,需要配置该机器人。配置文件为TOML格式。启动机器人时,应将机器人配置文件的路径指定为命令行参数。

示例配置可在bot-config.example.toml中找到

配置包含以下字段

Matrix服务器

机器人将连接到配置中指定的Matrix服务器,并使用它访问Matrix网络。

目前,机器人处理不了由Matrix服务器进行速率限制的情况,因此建议禁用机器人用户的速率限制(因此,我们建议使用允许这样做 的Matrix服务器)。目前这只能手动完成。

[matrix]
homeserver 要连接的Matrix服务器的URL
user 机器人用户的完整matrix用户名
password 机器人用户的密码
admins 可以控制机器人的机器人命令的matrix用户名的列表(数组)

后端

机器人收集所有房间信息和传入消息,并将它们转发到后端集成。目前支持的唯一集成是Waasabi的聊天集成,通过Strapi实现。

[backend]
host 公开API根的URL(对于Waasabi服务器,默认位于<origin>/waasabi
user 具有API访问权限的用户名(事件管理集成角色)
password 认证用户的密码
integrations_endpoint 可选 用于发布Matrix信息的端点。默认:event-manager/integrations

机器人API

此机器人公开了一个http API,可以通过API请求将命令发送到机器人。

[API]
监听 监听的地址或ip/端口号组合(例如,公开API)
密钥 所有API请求中必须存在的密钥

API

邀请用户加入房间

POST /invite
{
    api_key: <secret string>,
    user_id: <@user:homeserver>,
    room_id: <#channel:homeserver>,
}

在服务器上创建新房间

POST /room
{
    api_key: <secret string>,
    alias: <room name>,
    name: <room display name>,
    topic: <optional topic for the room>,
}

命令

这些是机器人理解的命令。

命令 描述
!ping 管理员专用。与机器人进行ping-pong。
!邀请<用户ID> 管理员专用。邀请用户加入当前房间。
!创建<房间别名> <房间名称> 管理员专用。创建新房间。
!op 管理员专用。给予所有管理员用户房间管理员权限。
!op<用户ID> 管理员专用。将新用户添加到管理员列表。
?ops 管理员专用。列出所有当前管理员用户。

构建

构建代码,然后使用target/release/waasabi-matrix目录下的二进制文件

cargo build --release

或者立即构建并安装

cargo install --path .

构建此应用程序需要libopenssl。在Ubuntu上,使用

apt-get install libssl-dev

否则,在构建过程中可能会收到错误消息

Package openssl was not found in the pkg-config search path.

贡献

想要加入我们吗?请查看指南中的“贡献”部分:The "Contributing" section of the guide

行为准则

waasabi-matrix项目遵守Contributor Covenant行为准则。这描述了所有贡献者应遵守的最小行为。

许可

根据您选择以下任一许可

任选其一。

贡献

除非您明确表示,否则您有意提交的任何贡献,根据Apache-2.0许可定义,应双重许可如上所述,不附加任何额外条款或条件。

依赖关系

~18–32MB
~533K SLoC