用于构建具有权限系统的Telegram机器人的库。
项目描述
privibot
这个库提供了装饰器,可以根据用户授予的权限限制对您的Telegram机器人处理程序的访问。权限通过SQLAlchemy(SQLite、Postgres等)存储在数据库中。
要求
privibot需要Python 3.6或更高版本。
要安装Python 3.6,我建议使用pyenv
。
# install pyenv
git clone https://github.com/pyenv/pyenv ~/.pyenv
# setup pyenv (you should also put these three lines in .bashrc or similar)
export PATH="${HOME}/.pyenv/bin:${PATH}"
export PYENV_ROOT="${HOME}/.pyenv"
eval "$(pyenv init -)"
# install Python 3.6
pyenv install 3.6.8
# make it available globally
pyenv global system 3.6.8
安装
使用pip
python3.6 -m pip install privibot
使用pipx
python3.6 -m pip install --user pipx
pipx install --python python3.6 privibot
使用方法
要限制对处理程序的访问,请像以下这样装饰您的回调函数
from privibot import require_access, require_admin
@require_access
def callback_for_registered_users(update, context):
pass
@require_admin
def callback_for_admins_only(update, context):
pass
要使用自定义权限,请定义如下
# privileges.py
from privibot import Privilege, Privileges as Ps
class Privileges(Ps):
MEDIA_MANAGER = Privilege(
name="media_manager",
verbose_name="Media Manager",
description="This privilege allows users to act (accept or reject) on media-related requests.",
)
USER_MANAGER = Privilege(
"user_manager", "User Manager", "This privilege allows users to manage access of other users to the bot."
)
TESTER = Privilege("tester", "Tester", "This privilege allows users to test new things.")
现在只需使用这些权限与装饰器一起使用即可
from privibot import require_privileges
from .privileges import Privileges
@require_privileges([Privileges.USER_MANAGER])
def callback_for_user_managers_only(update, context):
pass
您也可以手动检查权限,如下所示
from privibot import User
from .privileges import Privileges
def some_callback(update, context):
telegram_user = update.effective_user
db_user = User.get_with_id(telegram_user.id)
if db_user.has_privilege(Privileges.TESTER):
# do something
elif db_user.has_privileges([Privileges.MEDIA_MANAGER, Privileges.USER_MANAGER]):
# do something else
未通过权限测试的用户将收到一条消息,说明他们已被拒绝访问。
内置处理程序
此库还提供了以下命令的处理程序及其回调
- /start
- /help
- /requestAccess
- /myPrivileges
- /grant
- /revoke
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
privibot-0.1.1.tar.gz (8.8 kB 查看哈希值)
构建版本
privibot-0.1.1-py3-none-any.whl (11.1 kB 查看哈希)
关闭
privibot-0.1.1.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 01d7320bfa9a7ddd8e86de6b72cdb1872271a94b46779f9d9188a4cd78cfac89 |
|
MD5 | b3e3fae0e95a5317db826cb1a1b12fa4 |
|
BLAKE2b-256 | 3fcd44e6f6dae156a5b759a049a76898986e970f38b06f6745606ed4a7da4801 |
关闭
privibot-0.1.1-py3-none-any.whl 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | aa5cd667db385ef09806b29a4f5dcba812652a26b97091ed683221c6d1ecf017 |
|
MD5 | 88846d6e9cd6240afd098f85661aea98 |
|
BLAKE2b-256 | 0e98fb51a1afc7a8d5eb4c0e29668763980d7dcd41aa575d8659802cdb3e3d78 |