[PYTHON] Lassen Sie uns den Befehl pünktlich mit dem Bot der Zwietracht ausführen

Der Punkt


Was ist discord.py?

Discord verfügt über Bot Development Library für viele Sprachen und eine Bibliothek für Python [discord.py](https :: //pypi.org/project/discord.py/).


Ich versuchte es

Verwenden Sie discord.py, um einen Bot zu erstellen, der bei der Rekrutierung von Online-Spielquests und Match-Up-Gegnern verwendet werden kann, und verwenden Sie ihn tatsächlich etwa einen Monat lang. Ich habe es gesehen, also werde ich es als Artikel schreiben.


Umrissspezifikationen


Satz von Code

Klicken Sie hier, um den Code und nicht die Theorie anzuzeigen. https://github.com/coleyon/discord-partypoll


Was für eine Funktion?

Grob gesagt ist es ein Bot, der aus den folgenden zwei Funktionen besteht.


Was ist das für eine Umgebung?

Bot als Python-Programm ist so konfiguriert, dass es auf einem Docker-Container ausgeführt wird.

aws_vpc_design-Page-3.png


Umgebung


Bereiten Sie den Server und das Betriebssystem vor

Richten Sie beispielsweise "Ubuntu 18.04 LTS x86-64" auf EC2 ein. Die kostenlose Stufe ist ausreichend. image.png


Installieren Sie die Docker-Serverumgebung

Docker installieren und komponieren.


Installieren Sie die Docker-Serverumgebung

Ich denke es sieht so aus.

$ docker --version
Docker version 19.03.12, build 48a66213fe
$ docker-compose --version
docker-compose version 1.27.2, build 18f557f9
$ id
uid=1000(ubuntu) gid=1000(ubuntu),
#Unterlassung...
,999(docker)
$ 

Erstellen Sie einen Docker-Container

$ git clone  https://github.com/coleyon/discord-partypoll.git
Cloning into 'discord-partypoll'...
...
Resolving deltas: 100% (136/136), done.
$ cd discord-partypoll/
$ docker-compose build
$ docker images | grep partypoll
discord-partypoll_discord-bot  latest ...
$ 

Laden Sie Bot zum Discord-Server ein


Erstelle eine Discord App

Erstellen Sie eine Anwendung im Entwicklerportal (https://discord.com/developers/applications). image.png


Setzen Sie das OAuth2-Token des Bots im Bot-Programm

Holen Sie sich das "Client Secret" aus dem Menü "Allgemeine Informationen" der App und setzen Sie es in "docker-compose.yml" auf "DISCORD_BOT_TOKEN".

version: "3"
services:
  discord-bot:
    restart: always
    build: .
    environment: 
      DISCORD_BOT_TOKEN: "yourtoken"

Laden Sie Bot zum Discord-Server ein

Rufen Sie im OAuth2-Menü der App die OAuth2-URL ab, unter der Scopes BOT lautet. Geben Sie für Berechtigungen "Nachrichten senden", "Nachrichten verwalten", "Dateien anhängen", "Alle erwähnen" und "Reaktionen hinzufügen" an.


Laden Sie Bot zum Discord-Server ein

Greifen Sie in Ihrem Browser auf die OAuth2-URL zu und laden Sie den Bot zum Discord-Server ein. image.png


Starten Sie das Bot-Programm


Generieren Sie abhängige Bibliotheken für Bot-Programme

Generieren Sie require.yml aus Pipfile.

$ pipenv lock -r > requirements.txt

Starten Sie das Bot-Programm

Starten Sie das Bot-Programm (Docker-Container als Ausführungsumgebung).

$ docker-compose up -d
$ docker-compose logs -f
Attaching to discord-partypoll_discord-bot_1
discord-bot_1  | -----Logged in info-----
discord-bot_1  | {BOT_NAME}
discord-bot_1  | {BOT_ID}
discord-bot_1  | {DISCORDPY_VERSION}
discord-bot_1  | ------------------------
discord-bot_1  | Poll Extension Enabled.
discord-bot_1  | Cron Extension Enabled.
^CERROR: Aborting.
$ 

Durch das Starten des Bot-Programms wird der Bot on Discord online und einsatzbereit.


Versuchen Sie es mit dem Befehl zur Rekrutierung von Parteien ppoll


Rekrutierung, die die Gesamtzahl der Rekrutierungen begrenzen kann

Dieser Befehl rekrutiert Gruppen für insgesamt bis zu 20 Personen für das gesamte Team. / ppoll insgesamt 20 Personen 3 Teams 20 TeamA TeamB TeamC image.png


Rekrutierung, die die Anzahl der Personen für jeden Rekrutierungsgegenstand begrenzen kann

image.png


Hilfebefehl

Weitere Informationen finden Sie in der Befehlsbeschreibung / ppoll help oder im Git-Repository readme.md.


Versuchen Sie es mit dem Befehl cron für die geplante Ausführung


Spezifikation der Ausführungszeitzone

Sie können die Ausführungszeitzone festlegen. Die Standardeinstellung ist die japanische Zeit (Asien / Tokio), Sie können sie jedoch auf die östliche US-Zeit (EST) einstellen. image.png


Jobdefinition und Aktivierung


Beispiel für eine Joboperation

Es wird so sein. Weitere Informationen finden Sie in der Befehlsbeschreibung / cron help oder im Git-Repository readme.md. image.png


Referenzmaterial


Grundsätzlich ist Official Docs die Bibel, aber die Mitglieder des Online-Spiels haben während der Erstellung die folgenden Bücher vorgestellt.

Als ich es las, war es sehr leicht zu verstehen und nützlich, da es viele Inhalte gab, die ich im offiziellen Handbuch nicht erfassen konnte. Daher wird es für diejenigen empfohlen, die daran interessiert sind, Discord Bot zu erstellen.

Recommended Posts

Lassen Sie uns den Befehl pünktlich mit dem Bot der Zwietracht ausführen
Erstellen Sie mit MeCab mit Discord einen Bot, der nur das Ergebnis der morphologischen Analyse zurückgibt
Lassen Sie uns das Farbschema von iTerm2 je nach Tageszeit automatisch ändern
Zum Zeitpunkt des Python-Updates mit Ubuntu
Führen Sie die Paketerfassung zum angegebenen Zeitpunkt unter CentOS7 aus
Die Geschichte des Stoppens des Produktionsdienstes mit dem Befehl hostname
Lassen Sie uns jetzt die Mehrdeutigkeit des Bindestrichs (-) des Befehls su beseitigen! !!
[Linux] Führen Sie git pull regelmäßig mit dem Befehl crontab aus
Erstellen Sie einen BOT, der die Discord-URL verkürzt
Führen Sie einen Befehl auf dem Webserver aus und zeigen Sie das Ergebnis an
Machen wir einen Discord Bot.
Holen Sie sich UNIXTIME zu Beginn des heutigen Tages mit einem Befehl
Überprüfen Sie den Speicherstatus des Servers mit dem Befehl Linux free
Berühren wir die API der Netatmo Weather Station mit Python. #Python #Netatmo
Überprüfen Sie den Betriebsstatus des Servers mit dem Linux-Befehl top
Formatieren Sie die Zeitachse des Pandas-Zeitreihendiagramms mit matplotlib neu
Geben Sie dem Befehl history ein Datum und eine Uhrzeit ein und sammeln Sie Verlaufsdateien aller Benutzer mit einem Skript
[Abgeschlossen] Bot, der eine Benachrichtigung über den Start der Live-Übertragung von Nico Nico an Discord auf discord.py sendet
Bis zum Start des Django-Tutorials mit Pycharm unter Windows
Stellen wir uns die Anzahl der mit Matplotlib mit dem Coronavirus infizierten Personen vor
Verwenden wir den verteilten Ausdruck von Wörtern schnell mit fastText!
[Konzept] Bot, der eine Benachrichtigung über den Beginn der Live-Live-Übertragung von Nico Nico an Discord auf discord.py sendet
Die Geschichte, wie man mit discord.py einen Fragenkasten-Bot erstellt
Rufen Sie den Hostnamen des Host-PCs mit Docker unter Linux ab
Lesen Sie die Koordinaten des Diagramms in der Grafik mit Python-matplotlib (Super-Anfänger)
Wie ist der Fortschritt? Lassen Sie uns mit dem Boom in Python weitermachen
Messen Sie die Testabdeckung von Push-Python-Code auf GitHub.
Unter Linux ist der Zeitstempel einer Datei etwas vorbei.
Discord Bot mit Aufnahmefunktion ab Python: (5) Bedienen Sie die Discord API direkt
Ich habe mit Kaggle Start Book basierend auf Kaggle studiert [Teil 1]
So überwachen Sie den Ausführungsstatus von sqlldr mit dem Befehl pv
Fassen wir den Grad der Kopplung zwischen Modulen mit Python-Code zusammen
Ein Befehl zum einfachen Überprüfen der Netzwerkgeschwindigkeit auf der Konsole
Ich habe das Bild der Science University auf Twitter mit Word2Vec überprüft.
Abschluss des Docker-Befehls unter Linux
Verarbeiten Sie das Ergebnis von% time,% timeit
[DISCORD BOT] Server Manager-Befehlshilfe
Drücken Sie den obersten Befehl mit htop
Lassen Sie uns den Gewinner des Bingo bestimmen
Schauen wir uns den Waldbrand an der Westküste der USA mit Satellitenbildern an.
Laden Sie Daten mit einem Befehl und einer Aktualisierung auf s3 von aws hoch und löschen Sie die verwendeten Daten (unterwegs).
Ermitteln Sie mit Selenium + PhantomJS + Python die Breite des Div auf der Serverseite
Die Geschichte, wie man mit Python einen 100-Yen-Frühstücks-Bot für die Universität macht
Bearbeiten Sie die Datei des SSH-Verbindungszielservers auf dem Server mit VS-Code
Ich habe versucht, die Wartezeit der Ausführungswarteschlange eines Prozesses unter Linux zu messen
Spielen Sie den Kommentar des Nico Nico-Videos auf dem Terminal in Verbindung mit dem Video ab
Die Option --security kann unter CentOS Linux nicht mit dem Befehl dnf verwendet werden
Bereiten Sie die Umgebung von Chainer auf der EC2-Spot-Instanz mit AWS Lambda vor
Die Geschichte des Versuchs, SSH_AUTH_SOCK mit LD_PRELOAD auf dem Bildschirm veraltet zu halten
Tweet die Wettervorhersage mit Bot
Erhalten Sie weiterhin RSS in der Befehlszeile
Fragen Sie mit dem Befehl bc nach Pi
Richten Sie die Größe der Farbleiste an der Matplotlib aus
Lassen Sie uns die Hyperparameter des Modells mit scikit-learn abstimmen!
Lösen wir das Portfolio mit kontinuierlicher Optimierung
Führen Sie das Python-Skript mit TS-220 cron aus