@rasselzombie, ein ebooks-Bot

@rasselzombie, ein ebooks-Bot

Diesen Beitrag schrieb ich 7 Jahre und 1 Monat zuvor; die nachfolgenden Ausführungen müssen heute weder genau so nach wie vor funktionieren, noch meiner heutigen Meinung entsprechen. Behalte das beim Lesen (und vor allem: beim Nachmachen!) bitte stets im Hinterkopf.

Geschätzte Lesezeit: 3 Minuten

Update 2019: Ich muss vorwegnehmen, dass der Ex-Twitter-Account @rasselzombie inzwischen nicht mehr existiert. Update 2023: Inzwischen existiert Twitter auch nicht mehr. Daher habe ich alle Links entfernt. Den Artikel lasse ich der Vollständigkeit halber aber trotzdem online.

Mit @rasselzombie habe ich mir einen ebooks-Bot gebaut, der bedeutend poetischer, latent schlechter Laune und politisch deutlich unkorrekter ist als mein eigener Account. Er greift auf mein @sys_adm_ama-Ex-Twitter-Archiv von 2008 bis Januar 2017 zu. Das hatte ich heruntergeladen, archiviert und den Account anschließend grundsätzlich bereinigt. Manchmal muss das einfach sein.

Ich bin voll allein.

Ex-Twitter @rasselzombie (@rasselzombie), 28. Januar 2017

Der @rasselzobie-Bot läuft auf meinem Server. Machmal vergesse ich ihn zu starten, dann ist er ein paar Tage still. Ganz wie ein Großer halt! Beginnen wir die Einrichtung des Bots, indem wir das Ex-Twitter-Archiv unseres bestehenden Accounts anfordern (Ex-Twitter-Webseite → Einstellungen → Account → Dein Archiv anfordern). Ihr werdet von Ex-Twitter eine E-Mail mit einem Download-Link erhalten, und das kann dauern – bei mir mehrere Stunden. In der Zwischenzeit zeige ich euch, wie der Bot unter Debian 8 online gebracht werden kann. Er hat einen eigenen User-Account @rasselzombie sowie ein eigenes $HOME (/home/rasselzombie) auf dem Server, und als solcher installiert er sich, was er braucht.

Sie reanimieren jetzt ein Twix.

Ex-Twitter @rasselzombie (@rasselzombie), 7. Februar 2017

$ gem install --user-install twitter_ebooks
....
Installing ri documentation for whatlanguage-1.0.6
Done installing documentation for addressable, awesome_print, buftok, coderay, domain_name, engtagger, equalizer, faraday, fast-stemmer, gingerice, highscore, htmlentities, http, http-cookie, http-form_data, http_parser.rb, memoizable, method_source, multipart-post, naught, oauth, pry, public_suffix, rufus-scheduler, simple_oauth, thread_safe, twitter, twitter_ebooks, tzinfo, unf, whatlanguage after 29 seconds
31 gems installed

Ich passe anschließend seine .profile an, so dass der PATH um die Ruby-Geschichten erweitert wird:

$ export PATH=$PATH:/home/rasselzombie/.gem/ruby/2.1.0/bin/

Jetzt wird der eigentliche Bot eingerichtet:

$ ebooks new Rasselzombie
New twitter_ebooks app created at Rasselzombie
$ cd Rasselzombie
$ bundle install --path /home/rasselzombie/.bundle
...
Your bundle is complete!
It was installed into /home/rasselzombie/.bundle

Hach, das wird lustig wenn wir beide tot sind.

Ex-Twitter @rasselzombie (@rasselzombie), 5. Februar 2017

Hoffentlich ist nun das Ex-Twitter-Archiv bereit, denn der kleine Bot muss es nun konsumieren: wir packen das Twitter-Archiv aus – ich habe die Datei tweets.csv in sys_adm_ama.csv umbenannt – und legen die CSV-Datei nach /home/rasselzombie/Rasselzombie/corpus/. Anschließend können wir den Bot mit dem Archiv füttern:

$ ebooks consume corpus/sys_adm_ama.csv
Reading CSV corpus from corpus/sys_adm_ama.csv
Removing commented lines and sorting mentions
Tokenizing 11116 statements and 14927 mentions
1000 tokens
2000 tokens
...
46000 tokens
47000 tokens
Ranking keywords
Top keywords: Ich ich und
Corpus consumed to /home/rasselzombie/Rasselzombie/model/sys_adm_ama.model

Bei der Menge Blaulicht gerade wird mir dann warm.

Ex-Twitter @rasselzombie (@rasselzombie), 4. Februar 2017

Was der Bot nun natürlich benötigt: einen eigenen Ex-Twitter-Account. Wie ihr sowas einrichtet wisst ihr ja schon, da muss ich sicher nichts weiter zu sagen ;) Unter apps.twitter.com müsst ihr anschließend eine Ex-Twitter-App erstellen und ihr Read, Write and Access direct messages-Berechtigung zuweisen. Dummerweise geht das inzwischen wohl nur noch, wenn ihr eine gültige Telefonnummer für den Account hinterlegt. Unter dem Reiter Keys and Access Tokens findet ihr dann eure Tokens – gleich werden sie benötigt. Nun verpassen wir unserem Bot noch seine Logik:

$ cd /home/rasselzombie/Rasselzombie
$ mv bots.rb bots.rb-ORIG
$ wget https://raw.githubusercontent.com/mispy/ebooks_example/master/bots.rb

Ein gut sitzender BH ist soeben geplatzt.

Ex-Twitter @rasselzombie (@rasselzombie), 25. Januar 2017

Dieses Script muss noch ein wenig angepasst – mindestens müsst ihr einsetzen

  • euren Usernamen,
  • euer Access Token (als bot.access_token),
  • euer Access Token Secret (als bot.access_token_secret),
  • euer Consumer Key (als self.consumer_key),
  • euer Consumer Secret (als self.consumer_secret) und
  • die Quelle, aus der Tweets generiert werden sollen (bot.original).

Esse deshalb jetzt Kakao aus einem Messbecher, da nichts anderes da ist und ich zu faul zum aufstehen bin :(

Ex-Twitter @rasselzombie (@rasselzombie), 24. Januar 2017

Jetzt kann der kleine Freund das erste Mal gestartet werden. Ich stecke ihn hierzu in aller Regel in einen screen, da kann er sich dann austoben. Wie ihr das macht sei euch überlassen – ihr habt sicher selbst ganz viele Ideen :D

$ screen -DRS bot
$ cd /home/rasselzombie/Rasselzombie
$ ebooks start
@rasselzombie: User information updated
@rasselzombie: Loading model model/sys_adm_ama.model
@rasselzombie: starting tweet stream
@rasselzombie: Online!

Ich bin gerade sehr verlockend.

Ex-Twitter @rasselzombie (@rasselzombie), 28. Januar 2017

@rasselzombie läuft im screen

Auf Ansprache reagiert er sehr prompt, wenn auch nicht unbedingt sinnvoll. Und die Diskussionen, die er sich mit anderen Bots liefert, sind ziemlich lesenswert :D Grundsätzlich ist das aber natürlich einfach nur eine Spielerei – mit der ich mich ins wohlverdiente Wochenende verabschiede.

Alle Bilder dieser Seite: © Marianne Spiller – Alle Rechte vorbehalten
Hintergrundbild: 692x 310px, Bild genauer anschauen – © Marianne Spiller – Alle Rechte vorbehalten

Eure Gedanken zu „@rasselzombie, ein ebooks-Bot“

Ich freue mich über jeden Kommentar, es sei denn, er ist blöd. Deshalb behalte ich mir auch vor, die richtig blöden kurzerhand wieder zu löschen. Die Kommentarfunktion ist über GitHub realisiert, weshalb ihr euch zunächst dort einloggen und „utterances“ bestätigen müsst. Die Kommentare selbst werden im Issue-Tracker und mit dem Label „✨💬✨ comment“ erfasst – jeder Blogartikel ist ein eigenes Issue. Über GitHub könnt ihr eure Kommentare somit jederzeit bearbeiten oder löschen.