Dokumentation

  1. config.php
  2. ClassDB
  3. ClassTwibboCollector
  4. ClassTwibboWorker

config.php

Enthält die Datenbank-Konfiguration. Hier müssen die eigenen Zugangsdaten eingetragen werden:

define('DB_HOST', 'localhost'); define('DB_NAME', 'database_name'); define('DB_USER', 'database_user'); define('DB_PW', 'user_password');

ClassDB

(static) get_instance()

Argumente
none
Return
Datenbankobjekt
Beschreibung
Die Datenbank folgt dem Singleton-Pattern. Um also eine Instanz der Datenbank-Klasse aufzurufen reicht es aus die get_instance()-Methode aufzurufen. Alles weitere erledigt die Klasse selbst.
Beispiel
$Db = ClassDB:get_instance();

query($querystring)

Argumente
$querystring (String) - die MySQL-Query
Return
boolean
Beschreibung
Datenbank-Funktion zum Absenden von MySQL-Queries.
Beispiel
$Db->query('SELECT * FROM twibbo_task');

get_row()

Argumente
none
Return
assoziatives Array
Beschreibung
Liefert eine Zeile des Ergebnisses einer MySQL-Query zurück.
Beispiel
$Db->query('SELECT * FROM twibbo_task LIMIT 1'); $one_task_row = $Db->get_row();

get_rows()

Argumente
none
Return
assoziatives Array
Beschreibung
Liefert alle Zeilen des Ergebnisses einer MySQL-Query zurück.
Beispiel
$Db->query('SELECT * FROM twibbo_task'); $all_task_rows = $Db->get_rows();

count_rows()

Argumente
none
Return
integer
Beschreibung
Liefert die Anzahl der Zeilen in der Ergebnismenge zurück.
Beispiel
$Db->query('SELECT * FROM twibbo_task'); $amount_of_rows = $Db->count_rows();

get_tables()

Argumente
none
Return
Array
Beschreibung
Liefert ein Array mit den Namen der Tabellen in der Datenbank zurück.
Beispiel
$tables_in_database = $Db->get_tables();

last_insert()

Argumente
none
Return
integer
Beschreibung
Beispiel
$Db->query('INSERT INTO twibbo_task (tweet_id, tweet_text, tweet_author) VALUES (123456789, \'140 characters long tweet\', \'name of the author\')'); $last_inserted_id = $Db->last_insert();

last_affect()

Argumente
none
Return
integer
Beschreibung
Liefert die zuletzt betroffene Zeile zurück.
Beispiel
$Db->query('UPDATE twibbo_task SET tweet_author=\'another name\' WHERE tweet_id=123456789 LIMIT 1'); $last_affected_row = $Db->last_affect();

debug_mode($debug)

Argumente
optional $debug (boolean)
Return
none
Beschreibung
ktiviert/ Deaktiviert den Debug-Mode der Datenbank-Klasse.
Beispiel
$Db->debug_mode(); $Db->query('SELECT * FROM twibbo_task'); $Db->debug_mode(FALSE);

ClassTwibboCollector

getFriends()

Argumente
none
Return
simpleXML
Beschreibung
Liest mittels cURL die Liste der User denen der Bot folgt aus.
Beispiel
$TwibboCollector = new ClassTwibboCollector(); $friends = $TwibboCollector->getFriends();

getTweets($username)

Argumente
$username (string)
Return
simpleXML
Beschreibung
Liest die Tweets eines Users aus, Die Anzahl der ausgelesenen Tweets wird in der twitter.ini festgelegt.
Beispiel
$tweets = $TwibboCollector->getTweets('a twitter username');

saveTweet($tweet_id, $text, $author)

Argumente
$tweet_id (bigint)
$text (string)
$author (string)
Return
boolean
Beschreibung
Schreibt gefundene Tweets zur späteren Bearbeitung in die Datenbank.
Beispiel
$is_tweet_stored = $TwibboCollector->saveTweet(123456789, '140 characters long text', 'the twitter username');

logMode($log)

Argumente
optional $log (boolean)
Return
none
Beschreibung
Aktiviert/ Deaktiviert den Log-Mode.
Beispiel
$TwibboCollector->logMode(); $friends = $TwibboCollector->getFriends(); $TwibboCollector->logMode(FALSE);

ClassTwibboWorker

getTaskList()

Argumente
none
Return
boolean
Beschreibung
Liest die Tweets (Aufgaben) aus der Datenbank-Tabelle und leert die Tabelle anschließend.
Beispiel
$TwibboWorker = new ClassTwibboWorker(); $tasks = $TwibboWorker->getTaskList();

getCompletedTasks()

Argumente
none
Return
assoziatives Array
Beschreibung
Liest bereits erfolgreich bearbeitete Tweets aus der Datenbank.
Beispiel
$completed_tasks = $TwibboWorker->getCompletedTasks();

findTask($task)

Argumente
$task (string)
Return
none
Beschreibung
Durchsucht den übergegebenen Tweet ($task) nach dem Base-Command aus der commands.ini. Wird das Base Command gefunden, wird die Nachricht geloggt, für die Ausgabe vorbereitet und getwittert.
Beispiel
$tasks = $TwibboWorker->getTaskList(); $completed_tasks = $TwibboWorker->getCompletedTasks(); if (is_array($tasks)) { foreach ($tasks AS $task) { if (!in_array($task['tweet_id'], $completed_tasks)) $TwibboWorker->findTask($task); } }

(private) tweet($message)

Argumente
$message (string)
Return
boolean
Beschreibung
Veröffentlicht eine Nachricht auf Twitter.
Beispiel
$message = $this->prepareMessage($task['tweet_text'], $task['tweet_author']); $this->tweet($message);

(private) logTweet($tweet_id)

Argumente
$tweet_id (bigint)
Return
boolean
Beschreibung
Markiert eine Nachricht als bearbeitet in der Datenbank.
Beispiel
$this->logTweet($task['tweet_id']);

(private) prepareMessage($message, $author_name)

Argumente
$message (string)
$author_name (string)
Return
string (tweet)
Beschreibung
Eigentliches Herzstück des Bots, sucht nach Kommandos und bearbeitet die Nachricht nach diesen.
Beispiel
$message = $this->prepareMessage($task['tweet_text'], $task['tweet_author']);

(private) doWeatherCommand($message, $author_name)

Argumente
$message (string)
$author_name (string)
Return
string (tweet)
Beschreibung
Beispiel-Funktion wie das verarbeiten eines Wetter-Requests aussehen kann.
Beispiel
if (strpos($message, '#weather') !== FALSE) return $this->doWeatherCommand($message, $author_name);

logMode($log)

Argumente
$log (boolean)
Return
none
Beschreibung
Schreibt Daten in das Logfile, Schreibrechte und aktivierter Log-Mode vorausgesetzt.
Beispiel
$TwibboWorker = new ClassTwibboWorker(); $TwibboWorker->logMode();