@rasselzombie, ein ebooks-Bot

Ich muss vorwegnehmen, dass der Twitter-Account
@rasselzombie
inzwischen nicht mehr existiert; 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-Twitterarchiv 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.
—
@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 Twitter-Archiv unseres bestehenden Accounts anfordern (Twitter-Webseite → Einstellungen → Account → Dein Archiv anfordern). Ihr werdet von 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.
— _
@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.
— rasselzombie (@rasselzombie)
5. Februar 2017
Hoffentlich ist nun das 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.
—
@rasselzombie 4. Februar 2017
Was der Bot nun natürlich benötigt: einen eigenen 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 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.
— _
@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 :(
—
@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.
—
@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.