一个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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 64905cf94ca73d2896dfee766eb1a8b8e59466de5fa03413b9d36db42ae4e5fd |
|
MD5 | 2d0ceae5e5ac8f519da0ba18c0c66dec |
|
BLAKE2b-256 | a7dc3cb29fe242cef71a6070fea1429ce548280de77eeaa765037140140545a2 |