Hashtag Monitor Unicorn Shield

Hashtag Monitor Unicorn Shield Titelbild

Unicorn Shield Projekt: Hashtag Monitor

Twitter ist ein großartiger Dienst um Kurze nachrichten zu teilen und zu lesen. Dort kannst du zum Beispiel auch uns @codingworld folgen aber du kannst auch einfach dein eigenen Programm damit integrieren dank der recht offenen Twitter API. In diesem Projekt benutzen wir die API und werden damit bestimmte Wörter beobachten die in die Welt verschickt werden. Du kannst nämlich einfach in einem Tweet verschiedenen Wörter mit einem # markieren und daraus dann einen Hashtag machen. Hashtags erlauben es einfacher zu bestimmten Themen oder Veranstaltungen zu suchen. In diesem Projekt wollen wir die benutzung und die häufgikeit von einem bestimmten Hashtag darstellen. Das heißt immer wenn ein bestimmte Hashstag benutzt wird, wird das Coding Unicorn Shield aufleuchten. In unserem Beispiel haben wir folgenden Hashtag beobachtet #WednesdayWisdom aber natürlich ist es auch möglich nach jedem anderen Hashtag zu suchen. Für Informationen gibt es auch ein englishes Tutorial von der Raspberry Pi Stiftung.

What you need

Du brauchst:

  1. Einen laufenden Raspberry Pi mit einer Internet Verbnidung
  2. Dein Coding Unicorn Shield
  3. Twitter Account and APP Zugansdaten (Klick hier für ein Tutotiral dazul)

Benötigte Bibliotheken

Damit dieses Projekt funktioniert müssen wir zuerst noch eine Bibliothek installieren die uns dabei hilft die Twitter API auf dem Raspberry Pi anzusprechen.

sudo pip install twython

In unserem Fall brauchen wir noch eine weitere Bibliothek

sudo pip install requests requests_oauthlib

Das Programm

hashtag-watcher.py

import unicornshield as unicorn
from twython import TwythonStreamer
import time

searchTerm = '#WednesdayWisdom'

# Insert your Information here
APP_KEY = '...'
APP_SECRET = '...'
OAUTH_TOKEN = '...-...'
OAUTH_TOKEN_SECRET = '...'

# Setup callbacks from Twython Streamer
class BlinkyStreamer(TwythonStreamer):
  def on_success(self, data):
    if 'text' in data:
      print data['text'].encode('utf-8')
      print
      unicorn.setAll(155,0,155)
      unicorn.show()
      time.sleep(1)
      unicorn.clear()

# Create streamer
try:
  stream = BlinkyStreamer(APP_KEY, APP_SECRET, OAUTH_TOKEN, OAUTH_TOKEN_SECRET)
  stream.statuses.filter(track=searchTerm)
except KeyboardInterrupt:
  unicorn.clear()

sudo python hastag-watcher.py

Bevor du das Programm ausführst musst du erst noch deine API Zugsanddaten in Zeile 8 bis 11 einfügen. Bitte veröffentliche niemals deine Zugangsdaten weil sonst alle einfach einen Zugriff auf deinen Account hätten.

Schritt für Schritt

In den ersten drei Zeilen importieren wir alle abgenötigten Bibliotheken. . Wir brauchen die unicornshield Bibliothek um die Pixel auf dem Unicorn Shield anzusprechen. Die twython Bibliothek ist unsere Lieblings Bibliothek wenn es darum geht mit der Twitter API zu kommunizieren. Sie erledigt sehr viel Arbeit und ermöglicht viele coole Dinge in unserem Programm

In Zeile 5 definieren wir die Variable searchTerm und füllen diese dann mit einem String welcher den Hashtag enthälft nach dem wir suchen. Hier kannst du natürlich den Hashtag deiner Wahl reinschreiben.

In Zeile 7 bis 11 erstellen wir Variablen für die API zugansgsdaten. Dort musst du natürlich deine Zugsanddaten reinschreiben.

Der nächste Schritt wird etwas komplizierter, deswegen hier erstmal eine kurze Zusammenfassung. Wir erstelen zuerst eine neue Klasse welche auf dem TwythonStreamer basiert und teil der Twython Bibliothek ist. In diesem Fall ermöglicht die Klasse viele schon eingebaute funktionen zu benutzen. Wir müssen nicht sehr über den TwythonStreamer wissen und können uns auf die on_success() Funktion konzentrieren. Diese Funktion wird nur dann aufgerufen wenn der Inhalt von der Variable searchTerm gefunden wird. Das heißt das die eingerückten Zeilen von Zeile 17 bis 22 nur dann ausgeführt werden wenn die suche erfolgreich war. Wenn das der Fall ist wird zuerst in Zeile 17 und 18 der Tweet im Terminal ausgegeben. Diese beiden Zeilen brauchst du nicht wenn du nur dein Einhorn zum blinken bringen möchtest, aber es hilft beim testen und du kannst dir dann auch die besagten Tweets im Terminal ansehen. In Zeile 19 bis 22 wird dann das Einhorn zum Blinken gebracht. Dafür benutzen wir die .setAll()` Funktion mit der wir alle Pixel auf dem Unicorn Shield gleichzeitig eine Farbe geben können. Wir haben uns in diesem Beispiel für die Farbe Lila entschieden. In Zeile 22 werden dann die Pixel wieder ausgeschaltet. In Zeile 21 kannst du die Blinke Zeit festlegen. Wenn du nicht so viele Hashtags findest, kannst du die Zeit des blinkens natürlich auch anspassen.

Jetzt haben wir die Klasse erstellt aber noch nicht implementiert. Das Passiert von Zeile 25 bis 29. Zuerst wird die Variable stream erstellt und mit der Klasse Klasse BlinkyStreamer gefüllt. Dieser Klasse müssen wir die Zugangsdaten für die API als Parameter übergeben. Du kannst vermutlich schon die Verbindung zu der Klasse sehen die wir in Zeile 14 erstellt haben. Mit der Funktion Zeile 27 stellen wir sicher das die Funktion welche in Zeile 15 erstellt auch nach dem richtigen Searchterm such. Das ganze ist von einem try – block umgeben und du kannst das Programm jederzeit wieder mit Ctrl + C beenden.

Zusammenfassung

Mit diesem Programm kannst du einfach die globale benutzung von Social Media visualieren. Wir können das für unsere eigenen Hashtags benutzen oder für bestimmte Hashtags von Veranstaltungen. Das heißt auch das jeder der einen Twitter Account hat, das Unicorn Shield zum leuchten bringen kann.

Noch Fragen oder Feedback?

Bevor du eine Frage stellen kannst musst du dich zuerst Anmelden oder Regestrieren!