
這個多功能的機器人可以做一些事情!如果您不知道該怎麼做,這是一個戳戳,縮短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 