Zweite Iteration von Tsoder. Chatbot für Tsoding-Streams.
Beachten Sie, dass wir keine Haskell-Pakete von nixpkgs verwenden. Alle Abhängigkeiten sollen während des Builds von Cabal oder Stack heruntergeladen werden.
$ nix-shell
$ cabal sandbox init
$ cabal install happy-1.19.9
$ cabal install --only-dependencies --enable-tests
$ cabal build
$ cabal test
$ cabal run HyperNerd secret.ini database.db
Weitere Informationen finden Sie unter Lokale Builds im Nix-Stil
$ nix-shell
$ cabal v2-build
$ cabal v2-test
$ cabal v2-run exe:HyperNerd secret.ini database.db
Native Abhängigkeiten:
$ stack build
$ stack exec hlint .
$ stack exec HyperNerd secret.ini database.db
Die Datei secret.ini
besteht aus drei optionalen Abschnitten.
[twitch]
nick = HyperNerd
channel = Tsoding
password =
clientId =
owner =
[discord]
authToken =
guild =
channels = [, , ... ]
[github]
apiKey =
Name | Beschreibung |
---|---|
nick | Spitzname des Bots. |
owner | Besitzer des Bots. Der Bot erkennt diesen Namen als Autorität, unabhängig davon, ob er kein Mod oder Sender ist. |
password | Passwort generiert von https://twitchapps.com/tmi/. oauth: Präfix ist der Teil des Passworts. |
channel | Kanal, dem der Bot beim Start beitritt. |
clientId | Client-ID für Twitch-API-Aufrufe. |
Name | Beschreibung |
---|---|
authToken | Authentifizierungstoken für den Bot: https://github.com/reactiflux/discord-irc/wiki/Creating-a-discord-bot-&-getting-a-token |
guild | Die ID der Gilde, auf die der Bot hört |
channels | Die Liste der IDs der Kanäle, die der Bot hört (die Liste wird als Haskell-Liste geparst: [ ) |
Name | absteigend |
---|---|
apiToken | https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line |
Wenn Geheimnisse im in docker-compose.yaml
definierten Volume vorhanden sind,
$ docker-compose up --build
$ docker build --target app -t hypernerd .
$ mkdir hypernerd-state
$ cp secret.ini hypernerd-state
$ docker create -v /absolute/path/to/hypernerd-state/:/tmp/hypernerd/
--name hypernerd-bot hypernerd
$ docker start -a hypernerd-bot
$ docker stop hypernerd-bot
$ docker exec -it hypernerd-bot sh
Um eine Markov-Kettenantwort auszulösen, erwähnen Sie einfach den Bot im Chat.
Das Markov-Modell ist eine CSV-Datei, die mithilfe des Markov
CLI-Dienstprogramms aus den Protokollen in der Datenbankdatei des Bots generiert wird:
$ cabal exec Markov train database.db markov.csv
Dieser Befehl erstellt die Datei markov.csv
.
$ cabal exec HyperNerd secret.ini database.db markov.csv
Die Datei markov.csv
wird nicht automatisch aktualisiert. Um die Datei mit den neuen Protokollen zu aktualisieren, müssen Sie das Markov
-CLI-Dienstprogramm erneut ausführen.
Sie können jedem Befehl einen Befehlsalias zuweisen:
!test
test
!addalias foo test
!foo
test
Die Aliase werden nur eine Ebene tief „umgeleitet“, was bedeutet, dass transitive Aliase nicht unterstützt werden:
!addalias bar foo
!bar
*nothing, because !bar is redirected to !foo, but further redirect from !foo to !test does not happen*
Die Motivation, transitive Aliase nicht zu unterstützen, ist folgende:
!addquote
– Fügt ein Angebot zur Angebotsdatenbank hinzu. Nur für Abonnenten und Mods verfügbar.!delquote
– Zitat nach ID löschen. Nur für Tsoding verfügbar.!quote [quote-id]
– Angebot aus der Angebotsdatenbank abfragen. Sie können meine Arbeit unterstützen über