在前面两篇文章(第一篇, 第二篇)中讲到了如何读取Hive区块链信息,回溯N个区块,如何在区块信息中过滤信息,并根据自己定义的规则生成待发送的信息。下面介绍一下如何配置Python Telegram bot并发送过滤后的信息给Telegram客户端。
首先需要安装telegram-send这个包:
pip3 install telegram-send
接下来需要配置一个bot账号,运行:
telegram-send --configure
其运行结果如下图所示,提示你访问BotFather页面:https://telegram.me/BotFather 并创建一个机器人(bot),在后续操作中得到token后需要粘贴过来。
打开BotFather页面。如果你还没有Telegram账号,需要先创建一个。
这里我通过网页方式访问Telegram。
依次输入以下命令来创建一个你自己的bot:
/newbot
你的bot名字
你的bot用户名
接下来你就会获得一个token:
返回Linux命令行界面,粘贴你刚获取的token。
打开你的bot页面,我这里就是:https://telegram.me/aafeng_bot
粘贴刚才命令行中获取的密码,bot就会提示已经配置成功;
测试一下,在命令行中运行:
telegram-send "Hello, telegram"
可以成功收到信息:
发送图片:
telegram-send --image test.png
发送文件:
telegram-send --file test.txt
在Python程序中发送Telegram消息也很简单,只需要下面两行代码:
import telegram_send
telegram_send.send(messages="test message")
把telegram部分和前面程序结合起来:
telegram_messages = []
while i<= number_of_blocks_to_check:
for transaction in cb["transactions"]:
for operation in transaction["operations"]:
if operation[0] == "vote":
message = get_vote_message(vote_rules, operation[1])
if message is not None:
telegram_messages.append(message)
previousid = int(cb["previous"][:8], base=16)
cb = b.hive.get_block(previousid)
i = i+1
if len(telegram_messages)>0:
telegram_send.send(messages=telegram_messages)
然后把第一篇,第二篇,以及这篇文章中提到的整合到一起,就可以检测区块链,把感兴趣的内容推送到你Telegram客户端了。比如说,收到如下的Telegram消息推送:
Thanks for my upvote