用于在电报帐户和计算机之间交互的个人电报机器人
pybliotecario的Python项目详细描述
Pybliotecario
pybliotecario是一个用python编写的简单电报机器人。 程序的目标是在运行Pybliotecario的计算机之间保持一个活动连接 还有你的电报帐户。
安装Pybliotecario
pybliotecario可以作为其他python项目安装,使用pip
pip install pybliotecario
o设置工具:
python3 setup.py install
当以这种方式安装时,可执行文件的名称将是hostname(即,运行该文件的计算机的名称,第一个字母大写)。如果要使用其他名称,只需修改pybliotecario_name
中的变量setup.py
。
为了将程序与telegram bot连接,必须创建一个bot与telegram的botfather对话。--init
选项将指导您完成整个过程。
pybliotecario --init
一个小的systemd_install.sh
脚本与Pybliotecario的Github版本一起提供,以便轻松地对其进行守护。
Pybliotecario的配置
pybliotecario的所有配置选项都可以在文件中找到
$HOME/.pybliotecario.ini
此文件将通过运行--init
自动创建(并且大多数选项都已填充)。
扩展Pybliotecario
程序的目标是100%可扩展,以两种不同的模式运行任何类型的操作:
- 命令行:用正确的参数调用命令。例如,给你的手机发送一条消息。
- 消息命令:从电报中给机器人写一个命令,这样机器人就可以执行这个命令。
向每个不同的模式添加新的操作是很简单的,在相关的文件中每个案例都有一个小例子。
要向bot添加新命令,需要修改文件on_cmdline.py
(用于命令行参数)或on_cmd_message.py
(用于从电报发送的命令)。最简单的操作过程是复制其中一个组件(在components
文件夹中,您可以看到不同的模块)并添加您自己的操作。其中最简单的可能是components/ip_lookup.py
所以看看吧!
命令行:
在文件on_cmdline.py
中添加新的if条件。您可以将您的操作作为python代码添加到那里。如果你想做一些更复杂的事情,我建议你创建一个新的组件(拉请求是受欢迎的!)
注意:如果需要新的命令行参数(当然需要!)别忘了把它们加到argument_parser.py
的末尾!
示例:-i test.jpg,这将把名为test.img的图像发送到您定义的电报聊天
消息命令:
这些是bot以/command Do whatever
形式接收的命令。在文件on_cmd_message.py
中,只需向if条件添加一个新命令。命令定义将在变量tg_command
中定义。
在这里,您可以编写python代码来执行命令或添加新组件。bot刚刚收到的消息中的所有信息都将包含在message_obj
变量中。尤其是文本将是message_obj.text
。
示例:如果发送命令/IP,则bot将使用其运行的计算机的当前IP进行响应。
可用的命令行选项:
- 消息:向电报发送消息
- -I:发送图像到电报
- -F:发送文件到电报
- ——AXIVIONEXION:用最新的提交给ARXIV发送一个MSG到电报,如您认为合适的那样过滤(使用https://github.com/lukasschwab/arxiv.py作为API)
- --天气:向电报发送当前天气和一些有关天气预报的信息(使用https://github.com/csparpa/pyowm作为openweathermap api,它需要一个api键)
- --check_repository:将消息发送到电报,其中包含对存储库的传入更改
- --my_ip:将bot的ip发送给定义的电报用户
- --PID:通过PID监视进程,在进程完成后运行所有其他选项。
可用命令
- /IP:告诉你IP在哪里机器人目前正在运行
- /ARXIV查询ARXVIIID:返回查询的文件 的信息
- /ARXIV得到ARXIVIIID:下载文件并将其发送到电报
- /is_pid_alive pid_number/process_name:检查给定进程是否活动
- /kill_pid:终止运行bot的计算机中的给定进程
一些例子和想法:
例如,你可以每天早上7点15分运行PyLogoTeCARIO,告诉你今天在ARXIV的新闻是什么?15 07 * * mon-fri /home/pi/Telegram/pybliotecario/pybliotecario.py --arxiv_new