
这个多功能的机器人可以做一些事情!如果您不知道该怎么做,这是一个戳戳,缩短URL,甚至让您感到无聊。它是在我的Twitch频道上开发的,目的是在一个项目中学习各种技术,功能和实施思想。此外,它不会从用户从电报上与他互动的用户收集任何数据,而只会通过提出的请求做出响应。
在下面,您可以看到项目中使用了哪些API和技术,要安装必要软件包的说明以及应用程序的使用。该项目已经完成并可以在云中工作,以确保每个人都可以随时撤离。只需在电报上添加@bittoinlivebot ,然后玩得开心!
用于在云中运行机器人的平台是Heroku,因为它快速,简单且高效。对于机器人bot和云执行,使用此平台不是必须的,因为它可以在您的计算机上本地运行,也可以使用其他平台,例如AWS,Google等。
用于开发机器人的API列表:
资料来源:GitHub的公共API列表
用于开发机器人的主要python包
项目中使用的Python版本:Python 3.8
要安装该项目中使用的软件包并将其复制在您的计算机上或基于此基础上创建另一个软件包,需要一些信息才能解决!首先,如果您想用自己的机器人复制,则需要使用@BotFather聊天在电报上创建机器人。在此聊天中,您可以创建一个机器人,编辑命令,添加描述等。但是最重要的是,要复制项目,它是为了保存其创建中生成的令牌API 。该令牌可以放在项目中的bot.py文件中,在bot_token变量中,以便所有功能直接运行到bot。
安装执行代码所需的所有内容有两种方法,您必须选择最佳的代码。通过requirements.txt或Pipenv 。云中的bot配置将在此处无法解决,因为平台文档本身(Heroku)具有将代码运行的逐步运行,但是值得注意的是,这些包装安装方法中至少有一种对于云中环境以及计算机上环境的配置都是必需的。
按要求安装很简单,因为您只需要在计算机上安装PIP并运行以下命令:
pip install requirments.txt
以这种方式安装的优点是快速,简单易用的。但是,应注意的是,该方法仅确保项目中使用的主要库安装在其正确版本中,而不是其子公司。从现在开始,几年来可能会出错,但您不必担心。
要使用Pipenv安装数据包很简单,请首先确保在计算机上安装PipEnv,并具有以下命令:
pip install pipenv
然后通过命令通过pipfile.lock文件安装软件包:
pipenv install --ignore-pipfile
在安装了所有内容后,您只需要在项目文件夹中运行PipEnv shell命令,并且一旦安装了所有内容,就可以在虚拟环境内运行,它就会正常运行代码。
pipenv shell
python main.py

在此主题中,将解释项目的结构,文件之间以及代码如何连接,以便每个人都理解并可以修改必要的方式。在库本身的文档文档中已经解释了实施方式,因此重点将放在该项目中的组织方式上。在下图中,可以观察到文件的结构方式,从中我们将输入它们之间的连接(IMG IMG文件夹忽略了,因为它仅包含此readme中使用的图像)。

该项目可以分为三个部分:
整个机器人组织和功能代码都在funcs/ 。 python main.py文件仅包含bot.py内部的bot类对象的创建,以执行使用run()执行bot执行。
为此项目创建的每个功能都有自己的类class Pokedex() , class Bored()和class Urlshort() 。为了保持代码的组织易于维护,机器人中存在的每个命令都在类方法中拥挤。在“机器人使用”部分中,您应该注意,方法的名称与机器人自己命令的名称相同,因此对于每件事的实现都没有混淆。由于某些API被用于集合机器人数据,因此每个类也具有其基本URL,以便将每个API很好地分开并组织各自的请求和特殊性。命令实现的一个示例可以在下面看到,使用机器人的最基本命令,使用带有书面文本的send_message()函数,适用于自己称为命令的人。
def start ( self , update , context ):
context . bot . send_message ( chat_id = update . effective_chat . id , text = "Bem vindo ao bot da transmissão (Ao vivo, não de covid) n Acesse twitch.tv/bittoin para mais informações!" )最后,在bot.py文件中,我们在bot.py文件中有了所有之前提到的功能类别的主要类别,它们创建了各自的类对象,并使用这些方法来管理在线bot Chat中实现和使用的命令。在我们拥有功能类别的对象之后,我们创建了一个处理程序,该处理程序将通过机器人调用及其命令将传递的方法,如下所示:
pokedex_handler = CommandHandler ( 'pokedex' , self . pokedex . pokedex )第一个参数是将在聊天中调用的命令的名称,第二个是操作时将调用的方法。之后,我们使用Bot的dispatcher ,该调度员负责管理和使所有创建的处理程序工作以响应所有用户请求并维护呼叫的内部组织。
self . dispatcher . add_handler ( pokedex_handler )在过程结束时,我们将执行机器人本身,并将其所有功能添加到dispatcher中,并正在等待完成。
# Inicia a execução do bot
self . updater . start_polling ()
# Roda o bot até apertar CTRL + C ou receber um SIGNAL
self . updater . idle ()如果在项目执行中存在任何错误与涉及转换中错误的请求有关的错误,请使用解决方案访问此链接。
sample/具有sample.py和inlineKeyboard.py文件。 Sample.py在LIVE开头对机器人进行了第一个测试,以测试Python的Telegram库的功能如何工作,以发现和验证某些属性。您可能会注意到,由于所有内容都仅在一个文件中,因此很难分开,因此已经采用了funcs/组织。在InlineKeyboard.py中,该示例是直接从库文档中获取的,目的是在电报聊天上测试键/按钮以实现无聊的API的功能。
软件包安装已经在安装部分早些时候进行了解释,因此焦点将放在Procfile文件上。 Procfile将通过Heroku平台在云中执行。这是一个简单的文件,包含简单命令:
工人:python main.py
此命令只需在云中分配服务器的实例(Worker),以通过main.py文件运行我们的bot,从而激活执行。

以下列出了书面和充满生活中讨论的所有功能。这些主题中的每一个都已实时实施和测试。这个想法是,在生活中,公众有助于创建功能,确定要求以及最终的要求。

在本节中,将显示每个功能的机器人和用例获得的结果。享受并将机器人添加到电报并进行测试!只需寻找@BittoinLiveBot ,然后开始在聊天中键入命令即可。
如果您想查看有关一切工作原理的完整,更有说明的演示,请访问我的Instagram或我的YouTube频道,该频道将在IGTV/频道上使用所有内容,还有更多内容!
/start /start命令仅显示一条欢迎消息。


这里介绍了Pokédex功能的所有命令。
/pokedex nome_pokemon 
/pokedex numero_pokemon 
/habilidades nome_num_pokemon 
/moves nome_num_pokemon 

在这里介绍了URL短功能的所有命令。
/url link 

在这里,此处介绍了该工具的所有命令。
/bored 
/participantes num_participantes 