Nico Jensen

Was kostet die Welt?! Achso... hm, dann nehm ich ne kleine Cola!

Twitter Bot und die Hashtag Problematik

Beim Nutzen des Bots, fiel mir auf, dass dieser auch Hashtags benutzt. Ist ja auch klar, denn der Bot erstellt neue Tweets aus Wörtern von alten Tweets. Und da in diesen auch Hashtags verwendet worden sind, nutzt der Bot auch diese.
Das ist aber... bescheiden. Denn so werden unnötig Tweets auf Hashtags erzeugt und das muss nicht sein. Besonders dann, wenn es sich um wichtige Hashtags handeln. Leider hat der von mir verwendete Bot selber keine Einstellungsmöglichkeit um die Nutzung von Hashtags zu untersagen. Also muss man selber ran.

Dafür gibt es zwei möglichkeiten:

  • Methode eins: Man entfernt, über Suchen & Ersetzen, alle in der Archive.csv Datei vorhandene "#" und liest diese dann erneut ein.
  • Methode zwei (die schönere Methode): Man lässt den Bot solange neue Tweets erstellen bis keine '#' mehr vorkommt. Erst dann darf er diesen Twittern.

Natürlich habe ich mit für Methode zwei entschieben. Und so habe ich dies Umgesetzt:
Die Tweets werden in der bots.rb erzeugt. Und dort habe ich auch die ganzen Änderungen hinzugefügt. Zuerst habe ich eine Funktion geschrieben, welche prüft ob in einem Text eine "#" vorkommt. Ganz Simpel:

def checkTweet(tweetText)  
  if not tweetText =~ /#/
    return true
  end
  return false
end  

Damit ist auch schon die halbe Arbeit getan. Nun muss nur noch an den stellen, wo ein Tweet erzeugt wird, eine Schleife drum herum gebaut werden, welche so lange ein neuen Tweet erstellt bis die Funktion ein true zurück gibt.

genTweet = true  
while genTweet do  
  tweetText = model.make_statement
  if checkTweet(tweetText)
    genTweet = false
  end
end

tweet(tweetText)  

Fertig. Simpel oder? Die fertige bots.rb findet Ihr hier.

Ihr könnt natürlich die Funktion erweitern und so dem Bot verbieten bestimmte Zeichen oder Wörter zu benutzen.