跳转到主要内容

一个Synapse的第三方规则模块,当最后一个管理员离开房间时自动冻结房间,并允许其他成员解冻并成为新的管理员。

项目描述

冻结房间

此模块使用Synapse模块接口的第三方规则回调来识别何时最后一个管理员离开房间,并且当他们这样做时“冻结”房间。

冻结房间意味着向房间的状态中添加一个自定义的 org.matrix.room.frozen。如果该事件的 内容表示房间已冻结 ({"frozen": true}),则模块将阻止任何事件在房间中发送。唯一的例外是允许用户离开房间,以及允许用户解冻房间并接管房间的管理。

解冻房间意味着向房间发送一个内容为 {"frozen": false}org.matrix.room.frozen 状态事件。解冻房间的用户将自动成为房间中唯一的管理员。

与其他使用第三方规则回调的模块一样,建议仅在所有服务器都以此相同方式配置的封闭联盟中使用此模块。

此模块需要 Synapse v1.39.0 或更高版本。

安装

此插件可以通过 PyPI 进行安装。

pip install synapse-freeze-room

配置

将以下内容添加到您的 Synapse 配置中

modules:
  - module: freeze_room.FreezeRoom
    config:
      # Optional: a list of servers that are forbidden from unfreezing rooms.
      unfreeze_blacklist:
        - evil.com
        - foo.com
      # Optional: if set to true, when the last admin in a room leaves it, the module will
      # try to promote any moderator (or user with the highest power level) as admin. In
      # this mode, it will only freeze the room if it can't find any user to promote.
      # Defaults to false.
      promote_moderators: false

开发和测试

此存储库使用 tox 来运行测试。

测试

此存储库使用 unittest 来运行位于 tests 目录中的测试。它们可以通过 tox -e tests 运行。

发布版本

git tag vX.Y
python3 setup.py sdist
twine upload dist/synapse-freeze-room-X.Y.tar.gz
git push origin vX.Y

项目详细信息


下载文件

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

源分布

synapse-freeze-room-1.1.0.tar.gz (16.3 kB 查看哈希值)

上传时间

由...支持