teelebot
Python实现的Telegram Bot机器人框架,具有插件系统,插件支持热更新和热装载。
__ __ __ __
/ /____ ___ / /__ / /_ ____ / /_
/ __/ _ \/ _ \/ / _ \/ __ \/ __ \/ __/
/ /_/ __/ __/ / __/ /_/ / /_/ / /_
\__/\___/\___/_/\___/_.___/\____/\__/
说明
teelebot 是Python编写的Telegram Bot框架。teelebot 具有插件系统,Bot功能以插件的形式组织,你只需要实现具有特定功能的插件,其余细节交给 teelebot 框架处理,极大地提高了Bot的开发部署效率。你可以自由地组合插件,来搭建具有特定功能的Bot。
插件请前往:官方插件仓库
推荐插件:
更新日志
方法列表
插件开发指南
Demo
环境要求
Python版本
teelebot 只支持 Python3.x,不支持Python2.x。
本项目在 Python 3.6 及以上版本测试通过。
安装
1.Pip
pip install teelebot
此方式推荐使用Python虚拟环境安装
2.Docker
docker run -it \
--name teelebot \
--restart always \
-v /path/to/teelebot/config:/config \
-v /path/to/teelebot/plugins:/plugins \
ghcr.io/plutobell/teelebot:latest
docker run -it \
--name teelebot \
--restart always \
--network host \
-e http_proxy="http://ip:port" \
-e https_proxy="http://ip:port" \
-v /path/to/teelebot/config:/config \
-v /path/to/teelebot/plugins:/plugins \
ghcr.io/plutobell/teelebot:latest
Tip: 容器创建后请完善配置文件参数,然后重启容器
升级
1.Pip
pip install teelebot --upgrade
2.Docker
另外,可通过 exec
指令在容器中执行命令 pip install teelebot --upgrade
进行升级
使用
一行命令启动 (Polling Mode)
请自行替换 < ... >
的内容
teelebot -c/--config <config file path> -p/--plugin <plugin path> -k/--key <bot key> -r/--root <your user id>
此命令会自动生成在Polling模式下适用的配置文件,并且,-c/--config 参数可以省略(省略将使用默认配置文件路径)。
一、运行模式
teelebot
支持以 Webhook
模式和 Polling
模式运行。生产环境推荐使用 Webhook
模式,而 Polling
则仅用于开发环境。
1、Webhook 模式
要以 Webhook
模式运行,请将配置文件字段 webhook
设置为 True
,此模式涉及的配置文件字段如下:
[config]
webhook=True
self_signed=False
cert_key=your private cert path
cert_pub=your public cert path
load_cert=False
server_address=your server ip address or domain
server_port=your server port
local_address=webhook local address
local_port=webhook local port
secret_token=webhook secret token
self_signed
用于设置是否使用自签名证书,而 cert_key
和 cert_pub
是你的证书路径(绝对路径),load_cert
则用于设置 Webhook 是否加载本地证书; server_address
为你的服务器公网IP, server_port
为服务器的端口(目前 telegram 官方仅支持 443, 80, 88, 8443),local_address
为Webhook 本地监听地址, local_port
为 Webhook 本地运行的端口;secret_token
则用于设置 Webhook 的secret token。
自签名证书生成请参考:Generating a self-signed certificate pair (PEM)
2、Polling 模式
要以 Polling 模式运行,只需要保证配置文件 webhook
字段为 False
即可。此模式最基本的配置文件如下:
[config]
key=bot key
root_id=your user id
pool_size=40
webhook=False
debug=False
plugin_dir=your plugin dir
二、运行
任意路径打开终端,输入以下命令:
-
对于使用程序配置文件默认路径的:
输入teelebot
回车,正常情况下你应该能看见屏幕提示机器人开始运行。
-
对于命令行手动指定配置文件路径的:
输入teelebot -c/--config <configure file path>
回车,正常情况下你应该能看见屏幕提示机器人开始运行。
更多指令请通过 -h/--help
查看:
usage: -m [-h] [-c CONFIG] [-k KEY] [-r ROOT] [-p PLUGIN] [-mp MAKE_PLUGIN]
[-L] [-C] [-hi] [-d] [-v]
teelebot console command list
options:
-h, --help show this help message and exit
-c CONFIG, --config CONFIG
specify the configuration file
-k KEY, --key KEY specify the bot api token
-r ROOT, --root ROOT specify the telegram user user_id of bot admin
-p PLUGIN, --plugin PLUGIN
specify the plugin path
-mp MAKE_PLUGIN, --make_plugin MAKE_PLUGIN
create a plugin template
-L, --logout log out from the cloud Bot API server before running
the bot locally
-C, --close close the bot instance before transferring it between
local servers
-hi, --hide_info hide plugin info-level console logs
-d, --debug run teelebot in debug mode
-v, --version show the current version of teelebot
三、配置文件
完整的配置文件如下所示:
[config]
key=bot key
root_id=your user id
plugin_dir=your plugin dir
pool_size=40
buffer_size=16
webhook=False
self_signed=False
cert_key=your private cert path
cert_pub=your public cert path
load_cert=False
server_ip=your server ip address
server_port=your server port
local_address=webhook local address
local_port=webhook local port
secret_token=webhook secret token
debug=False
hide_info=False
drop_pending_updates=False
local_api_server=local api server address
updates_chat_member=False
proxy=socks5h://user:pass@host:port
在 1.13.0
及以上版本,支持自动生成配置文件。(默认为Polling模式)
1.在命令行未指定配置文件路径的情况下,会在默认配置文件路径下不存在配置文件时自动生成配置文件 config.cfg
。
2.指定配置文件
Linux 和 Windows 都可在命令行通过参数手动指定配置文件路径,命令格式:
teelebot -c/--config <configure file path>
路径必须为绝对路径,并且配置文件名也应当包含在路径内,此情况下会在指定的配置文件不存在时自动生成配置文件 。
四、导入使用
from teelebot import Bot
bot = Bot()
bot.sendMessage(chat_id="chat_id", text="Hello World!")
Tip: 导入使用时需要确保默认配置文件路径中存在配置文件,并且必须的字段已经填写
联系我
- Email:hi#ojoll.com ( # == @ )
- Blog: 北及
- Telegram Group:teelebot official(t.me/teelebot_official)
Telegram Group:teelebot体验群(t.me/teelebot_chat)- 其他:本repo 的 Issue