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 (@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 Email 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 (@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 (@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 (@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 (@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 (@rasselzombie) 28. Januar 2017
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.
Ich tu es nie wieder. Hab das total unterschätzt. 😂
Du darfst die nienienie anschubsen, die geben dann einfach keine Ruhe mehr :D
Was hab ich getan 😂 Ich lache Tränen über die aktuelle Unterhaltung.