跳转到主要内容

一个用于提醒您事项的matrix机器人!

项目描述

Matrix Reminder Bot

example of interacting with the bot

使用 nio-template 编写的简短机器人。

功能

  • 设置提醒
  • 让机器人提醒您或整个房间
  • 提醒在机器人重启后持续存在
  • 闹钟 - 提醒的持续通知,直到被静音
  • 支持端到端加密的房间

安装

matrix-reminder-bot需要matrix-nio,它支持参与端到端加密房间!为了做到这一点,它使用了libolm C库。此库必须安装才能启用端到端加密功能,不幸的是,它也用于功能性的消息轮询,因此实际上对程序来说是强制要求的。

遗憾的是,在某些平台上安装此库可能相当复杂。然而,借助 Docker 的力量,依赖关系可以轻松处理,因此它是安装 matrix-reminder-bot 的推荐方法。还提供了本地安装说明,但请注意,它们更为复杂。

Docker

推荐。 按照Docker的安装说明进行操作。

本地安装

安装 libolm

您可以从源代码安装 libolm,或者检查您的系统包管理器。需要版本 3.0.0 或更高版本。

(可选) postgres 开发头文件

默认情况下,matrix-reminder-bot 使用 SQLite 作为其存储后端。对于几百个用户来说,这很好,但如果您计划支持更高的请求量,您可能考虑使用 Postgres 作为数据库后端。

如果您想使用 postgres 作为数据库后端,则需要安装 postgres 开发头文件

Debian/Ubuntu

sudo apt install libpq-dev libpq5

Arch

sudo pacman -S postgresql-libs

安装 Python 依赖项

创建并激活 Python 3 虚拟环境

virtualenv -p python3 env
source env/bin/activate

安装 Python 依赖项

pip install matrix-reminder-bot

(可选) 如果您想使用 postgres 作为数据库后端,使用以下命令安装必要的 postgres 依赖项

pip install "matrix-reminder-bot[postgres]"

配置

将示例配置文件复制到新的 config.yaml 文件。

cp sample.config.yaml config.yaml

编辑配置文件。必须至少修改 matrix 部分。

(可选) 设置 Postgres 数据库

为 matrix-reminder-bot 创建一个 postgres 用户和数据库

sudo -u postgresql psql createuser matrix-reminder-bot -W  # prompts for a password
sudo -u postgresql psql createdb -O matrix-reminder-bot matrix-reminder-bot

编辑 storage.database 配置选项,将 sqlite://... 字符串替换为 postgres://...。语法是

database: "postgres://username:password@localhost/dbname?sslmode=disable"

请参阅 sample.config.yaml 中的注释。

运行

Docker

请参阅 docker 的运行说明

本地安装

如果尚未这样做,请确保源您的 Python 环境

source env/bin/activate

然后只需运行机器人

matrix-reminder-bot

默认情况下,机器人将以 ./config.yaml 中的配置文件运行。但是,可以在命令后指定替代的相对或绝对文件路径

matrix-reminder-bot other-config.yaml

用法

邀请机器人进入一个房间,它应该接受邀请并加入。

设置提醒

让机器人在房间里提醒您某件事

!remindme <time>; <reminder text>
  • <time> 是可以以自然语言表达的时间。例如,“明天中午”,“周四下午5点”,“一周后”等。
  • <reminder text> 是机器人将提醒您的文本。

让机器人在房间里提醒房间里的每个人某件事(假设机器人有权限这样做)

!remindroom <time>; <reminder text>

重复提醒

要创建重复提醒,请将 every 后跟时间长度,然后是提醒第一次响起的时间,最后是提醒文本

!remindme every 1w; tuesday; take out the trash
!remindroom every 5m; 1m; you are loved

Cron 样式提醒

如果您需要更复杂的提醒时间功能,可以使用 cron 选项卡。您可以在这里阅读关于 cron 选项卡的指南。

简而言之,它们允许您执行更复杂、重复的提醒,例如只在工作日触发的提醒。

!remindme cron * 9 * * mon-fri; time for the daily stand up

上述提醒将在每个工作日上午 9:00 响起。

!remindme cron 0/30 9-18 * * mon,wed,fri; take a short break

上述提醒将在上午 9:00 之后每 30 分钟响起一次,直到下午 6:30,并且仅在周一、周三和周五。

列出即将到来的提醒

!listreminders

这将输出一个提醒列表和它们下一次响起的时间

sometime Do the dishes (every 1d)
sometime Take out the trash
sometime Send email to Grandma

取消提醒

!cancelreminder <reminder text>

设置闹钟

闹钟与提醒相同,但它们将在响起后每 5 分钟重复一次,直到被静音。

创建闹钟的语法与创建提醒相同,只是命令不同

!alarmme <time>; <reminder text>
!alarmroom every <recurring time>; <start time>; <reminder text>

静音闹钟

可以使用以下命令来静音闹钟

!silence <reminder text>

开发

请参阅CONTRIBUTING.md

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

matrix-reminder-bot-0.3.0.tar.gz (27.8 kB 查看哈希值)

上传时间

构建分布

matrix_reminder_bot-0.3.0-py3-none-any.whl (28.7 kB 查看哈希值)

上传时间 Python 3

由以下支持