--- tags: Discord Bot, 伴學松, 伴伴學共創專案 description: 這是「從 0 開始學 Discord Bot!」活動的討論共筆 image: https://i.imgur.com/b7Eh6yX.png --- # 從 0 開始學 Discord Bot! ## outline 1. https://discord.com/developers/docs/intro (找一個中文的 guidline) 3. 申請一個 Discord 應用程式 4. 語言選擇:大家傾向用 Python 5. 應用方向: - 嘗試 Discord 特殊功能(例如身份組) - 算命、遊戲、心理測驗這種 ㄎ一ㄤ 的應用 - 暴富工具 7. Reference: - https://github.com/Cog-Creators/Red-DiscordBot ## Weekly schedule 1. Week1: 依照這個 [guide](https://ithelp.ithome.com.tw/articles/10262736) 建立起一個 application 並請管理員邀請進 server 2. Week2: - python 指令/功能 - 每個人分享 1 ~ 3 個指令,可以實作在 bot 裏面 - 了解什麼是物件導向?(可以跳過) 3. Week3: - 決定 Discord 機器人 框架 - (Red Discord Bot / Pycord / Discord.Py) - 每個人實作一個指令到Bot上面,在下個禮拜前要將機器人放到伴伴學DC給各位玩 ## 建立 Application 的 Guide 1. 建立應用程式([link](https://discord.com/developers/applications)),勾選同意協議(哪次不同意XD)   2. 配置機器人,並填入機器人名稱,勾選message intent    3. 點選重製令牌,並記錄到只有你自己知道的地方妥善保管  4. 準備設定機器人權限  5. 勾選對應權限  applications.commands 讓您的應用程式在其安裝的頻道中使用命令 bot是啟用您的機器人。點擊bot後,還可以為bot添加不同的用戶權限。 6. 現在,只需選中發送消息  添加權限後,應該會看到一個 URL,可以複製該 URL 貼到瀏覽器可以安裝至具有管理權限的頻道(可以自己創一個頻道加進去玩) 7. 安裝python [python 官網](https://www.python.org/) 8. 安裝pycord,開啟cmd輸入以下指令 ``` py -3 -m pip install -U py-cord --pre ``` 9. 執行應用程式 :::success python 可使用的編輯器: 1. 官方自帶的 IDLE3 2. VSCODE 3. 任何喜歡的文字編輯器。記事本也行只是沒有高亮語法XD 最推薦VSCODE ::: 10. 範例 ```python= import discord class MyClient(discord.Client): async def on_ready(self): print('Logged on as', self.user) async def on_message(self, message): # don't respond to ourselves if message.author == self.user: return if message.content == 'ping': await message.channel.send('pong') intents = discord.Intents.default() intents.message_content = True client = MyClient(intents=intents) token = "Your Token" client.run(token) ``` 11. 打完收工回家睡覺  # Python async & await 理解 ## 1. 何謂多線程&多程序? 好處是什麼? [菜鳥教程-多執行緒](http://www.runoob.com/python/python-multithreading.html) 簡單的說法就是 讓電腦在單個時間內可以同時執行多個任務。 如果讓電腦執行完某個任務才執行下個任務,系統就會卡到爆。 以下圖為例,須等任務1執行5秒後,才能執行任務2。然後任務2執行完才能執行任務3。 你應該不想在看電影的時候,影像都播完了,才開始撥放聲音吧:))  因此我們需要將可分割的工作切碎(例如先看到一幀畫面或是一個音符),讓每一件事情都可以輪流分到處理時間  如此一來,我們就可以一邊聽聲音,一邊看影像,好好的欣賞一部電影了。 一個程序可以管理多個線程 而多個程序可以調用更多的CPU來執行工作 多線程&多程序好處如下: a. 讓閒置的cpu可以獲得更大的使用率 b. 讓不可分割的任務不至於卡住系統,造成畫面凍結的現象 ## 2. Python 多線程(thread)行為 Python 中的解釋器CPython引入了GIL鎖的概念,導致Python在同一個時間中只能執行一個執行緒,其他執行緒處於凍結狀態。以確保不會同時有兩個執行緒同時存取到同一個記憶體位置,造成資料混亂。所有的執行緒都可以對當前的記憶體區塊進行存取。 但Python主程式可以自己視為一個進程(process),在這個進程底下,調用多個線程來工作。通常在設計上,僅會將一個CPU指派一個進程。因此即使你想在一秒內同時使用8個線程,也會因為分配的關係,導致每個線程平均只會拿到0.125秒。也換句話說同時間再多線程的設計中,只能有一個cpu達到滿載,其餘cpu皆無法使用。 理想上多線程的工作狀態,CPU會同時操作二至多個緒同時工作,透過這樣並行來減少作業時間。  但在Python中,就沒有這回事了。  同一個時間只能有一個執行緒執行,然後在換下一個 那有沒有可以更進一步將cpu使用率最大化的方法呢? 有的,就是多進程 ## 2. Python 多進程行為 下集待續....
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.