git://www.github.com/szastupov/aiotg.git
git clone http://www.github.com/szastupov/aiotg
$ svn co --depth empty http://www.github.com/szastupov/aiotg
Checked out revision 1.
$ cd repo
$ svn up trunk
用于构建电报机器人的异步 python API,具有以下功能:
用pip安装它:
pip install aiotg
然后,你可以在几行中创建一个新的机器人:
from aiotg import Bot, Chat
bot = Bot(api_token="...")@bot.command(r"/echo (.+)")defecho(chat: Chat, match):
return chat.reply(match.group(1))
bot.run()
现在用适当的API_TOKEN运行它,它应该回复/echo 命令。
便笺
类型注释不是必需的,但会帮助你的编辑器/ide提供代码完成。
上面的示例看起来像一个普通的同步代码,但实际上它返回一个协作器。 如果你想使外部请求( 这就是机器人通常做的),只需使用aiohttp和异步/等待语法:
import aiohttpfrom aiotg import Bot, Chat
bot = Bot(api_token="...")@bot.command("bitcoin")asyncdefbitcoin(chat: Chat, match):
url ="https://api.bitcoinaverage.com/ticker/global/USD/"asyncwith aiohttp.get(url) as s:
info =await s.json()
await chat.send_text(info["24h_avg"])
bot.run()
但是如果你只是想编写一个快速集成,而不需要提供会话接口,那该怎么做? 你可以通过构建带有或者通道 NAME的聊天对象来发送消息。 我们还为你节省了一些额外的按键,提供方便的通道构造函数:
...channel = bot.channel("@yourchannel")
private = bot.private("1111111")asyncdefgreeter():
await channel.send_text("Hello from channel!")
await private.send_text("Why not greet personally?")...
例如在一个真实的例子中,看看 WhatisBot 或者音乐目录 Bot 。
有关如何使用该项目的更多信息,请参见项目文档的 。 有问题请在的项目电报聊天网站上提问。?