Aufgrund von extrem gründlichen Vandalismus musste die Wiki leider für Gäste schreibgeschützt werden :(


Übersicht über verfügbare Funktionen und Variablen (aus Sicht eines Moduls)

bottr-Klasse (veröffentlicht)

bool auth([string $username, [string $password, [string $resource]]])

Authentifiziert sich am Server. Die Parameter dürften selbsterklärend sein. Sind sie nicht gesetzt, wird nach $bottr→username etc. gesucht.

bool connect([string $server, [integer $port]])

Verbindet sich zu einem Server. Die Parameter müssten jedem kalr sein. Sind sie nicht gesetzt, wird nach $bottr→server etc. gesucht.

void enterLoop()

Betritt die Endlosschleife, in der bottr auf eingehende Verbindungen wartet.

string executeSoon(int $timestamp, callback $function, array $param_arr)

Veranlasst, dass die Funktion $function mit den Parametern $param_arr (Syntax siehe PHPs call_user_func_array) aufgerufen wird, sobald Unix-Timestamp $timestamp erreicht wurde. Rückgabewert ist ein einmaliger Hash, der benötigt wird, um diesen Auftrag wieder zurückzuziehen.

bool disconnect()

Trennt die Verbindung zum Server.

void donotexecuteSoon(string $uniqueid)

Zieht den Auftrag von bottr::executeSoon mit dem Hash $uniqueid zurück.

void init([string $modulexml])

Initialisiert bottr. Ist $modulexml gesetzt, wird diese Datei mit bottr::loadModuleConfig geladen.

bool isAdmin(string $jid)

Gibt true zurück, wenn die Jabber-ID $jid Administratorrechte hat und false, wenn nicht. Achtung: muss vom Botbetreiber gepflegt werden. Mehr Informationen: isAdmin

void sendComposing(string $to, [string $type])

Sendet an die JID $to die Information, dass bottr einen der folgenden Chat-Status (definiert durch $type) einnimmt: composing (Standard), paused, active, inactive, gone. Diese sind definiert in der XMPP-Erweiterung XEP-0085.

void sendMessage(string $to, string $body, [bool $enc])

Sendet eine Sofortnachricht mit dem Inhalt $body an $to. Die Funktion escaped alle XML-Entities, wenn $enc true ist (standardmäßig) ist, konvertiert aber nicht selbstständig nach UTF-8!

void sendPresence(string $status, [string $show])

Setzt $status als Statustext und $show als Benutzerstatus. $show kann sein:

  • chat der normale Online-Status (standard)
  • dnd der „Beschäftigt“-Status
  • away der „Abwesend“-Status
  • xa ein „erweiterter Abwesenheitsstatus“, in irgendeinem RFC definiert, nur der Vollständigkeit halber hier aufgelistet.

Die Presence wird in presence.dat gespeichert und beim nächsten Start des Bots bei auth() wieder gesetzt.

void sendSubscribe(string $to)

Abboniert den Status der JID $to, wie es in der Jabber-Terminologie so schön heißt. Eigentlich bei einem Bot sinnlos.

void sendSubscribed(string $to)

Akzeptiert das Status-Abo von der JID $to an uns.

void sendUnsubscribed(string $to)

Lehnt das Status-Abo von der JID $to an uns ab bzw. beendet ein bestehendes Abo.

void sendXML(string $xml, [bool $expect_response])

Sendet ein XMPP-Query direkt an den Server. Ist $expect_response true, hält das PHP-Script an, bis es vom Server eine Antwort bekommt - also bei manchen Befehlen ewig. Bei allen XMPP-Befehlen außer <iq type=get/set> ist empfohlen, den zweiten Parameter auf false zu setzen!

Bug: Den Parameter $expect_response bitte vorerst nicht benutzen: Wenn der Server vor der erwarteten Antwort erst noch etwas anderes sendet (z.B. eine neue Nachricht), wird diese zurückgegeben und wird nicht geparst.

void terminate([$exit])

Trennt die Verbindung und führt ein exit($exit) aus.

cache-Klasse (veröffentlicht)

Cache speichert derzeit alles ganz simpel in einem globalen Array, vielleicht aber später auch mal mit memcached oder in Dateien. Wir sind flexibel!

bool add(string $category, string $name, string $cacheduration, mixed $data)

Speichert $data für $cacheduration Sekunden in $name unter $category.

bool del(string $category, string $name)

Löscht den Wert von $name in $category.

mixed get(string $category, string $name)

Holt den Wert von $name in $category. Wird dieser nicht gefunden, wird false zurück gegeben.

void init()

Initialisiert den Cache

database-Klasse (nicht veröffentlicht)

Initialisiert als $db

array fetch_row([resource $result])

Gibt ein assoziatives Array mit allen Spalten (und ihren Inhalten) der Abfrage $result zurück. Ist $result nicht gesetzt, wird das letzte mit database::query ausgeführte Ergebnis benutzt.

array fetch_rows([resource $result])

Gibt ein zweidimensionales Array mit allen Zeilen und Spalten (assoziativ mit ihren Inhalten) der Abfrage $result zurück. Ist $result nicht gesetzt, wird das letzte mit database::query ausgeführte Ergebnis benutzt.

void free_all_results()

Führt mysql_free_result mit allen Querys durch

void init()

Baut eine Datenbankverbindung auf. Derzeit mit hardcoded Verbindungsdaten.

int num_rows([resource $result])

Gibt die Anzahl der Zeilen im Abfrageergebnis $result zurück. Ist $result nicht gesetzt, wird das letzte mit database::query ausgeführte Ergebnis benutzt.

resource query(string $sql, [bool $do_freeresults])

Kümmert sich um die Datenbankverbindung und führt das MySQL-Query $sql aus. Ist $do_freeresults wahr, wird database::free_all_results() ausgeführt.

user-Klasse (nicht veröffentlicht)

void addUser([string $jid])

Registriert ein Userkonto für $jid. Wenn die $jid weggelassen wird, gilt die, die gerade behandelt wird (praktisch z.b. im message-event).

string cleanjid(string $jid)

Entfernt die Resource aus einer $jid. Beispiel: bottr@nomoketo.de/bot wird zu bottr@nomoketo.de

void delUser([string $jid])

Löscht das Userkonto von $jid. Wenn die $jid weggelassen wird, gilt die, die gerade behandelt wird (praktisch z.b. im message-event).

array getUserData(string $jid)

Gibt ein Array mit den Userdaten von $jid zurück.

setUserData

bool setuserdata([string $jid], string $name, string $value);

Setzt den Wert in der Usertabelle bei $jid von $name auf $value. Ist $jid nicht gesetzt, wird der Inhalt der zuletzt übermittelten Variable namens $parameters['from'] genutzt.

bool setuserdata([string $jid], array $pairs);

Setzt Werte in der Usertabellenzeile von $jid. $pairs ist ein Array, dess Keys das Feld angeben und dessen Values die Werte für die zugehörigen Felder angeben. Ist $jid nicht gesetzt, wird der Inhalt der zuletzt übermittelten Variable namens $parameters['from'] genutzt.

mb-Klasse (nicht veröffentlicht)

Ergänzende Funktionen zum MicroBlogging-Modul

bool account_exists(string $account, [string $jid])

prüft, ob der MicroBlogging-Account namens $account des Users $jid existiert. Ist $jid nicht gesetzt, wird der Inhalt der zuletzt übermittelten Variable namens $parameters['from'] genutzt.

array accountselector(string $selector, [string $jid])

Holt die MicroBlogging-Accounts des Users $jid, die auf den Selektor zutreffen. Zurückgegeben wird ein Array, dessen Index 0 ein Array enthält, in welchem sich eventuell aufgetretene Fehler befinden. Index 1 enthält ein Array mit den gewählten Accounts (z.B. array('bottr@identica')). Ist $jid nicht gesetzt, wird der Inhalt der zuletzt übermittelten Variable namens $parameters['from'] genutzt.

array get_account(string $account, [string $jid])

Liefert ein assoziatives Array mit dem Datensatz des MicroBlogging-Accounts $account von $jid zurück. Ist $jid nicht gesetzt, wird der Inhalt der zuletzt übermittelten Variable namens $parameters['from'] genutzt.

array get_accounts([string $jid])

Das von dieser Funktion zurückgegebene Array enthält alle MicroBlogging-Accounts des Users $jid (z.B. array('bottr@identica')). Ist $jid nicht gesetzt, wird der Inhalt der zuletzt übermittelten Variable namens $parameters['from'] genutzt.

array get_alias(string $alias, [string $jid])

Gibt ein Array mit allen MicroBlogging-Accounts des Users $jid zurück, auf die der Alias $alias zeigt. Ist $jid nicht gesetzt, wird der Inhalt der zuletzt übermittelten Variable namens $parameters['from'] genutzt.

array send_status(string $jid, array $tasks, [bool $sendtouser])

Sendet die Elemente $tasks mit den MicroBlogging-Accounts des Users $jid. Die Elemente von $tasks müssen ebenfalls Arrays sein, deren Index 0 den Account beschreibt und deren Index 1 den Text beschreibt, der gesendet werden soll. Ist $sendtouser true, werden alle Ausgaben direkt gesendet, ist $sendtouser false (Standard), werden die einzelnen Ausgaben als Array zurückgegeben.

string shortUrlsInText(string $text, [string $shortener])

Kürzt alle URLs im Text $text mit dem URL-Shortener $shortener. Unterstützte URL-Shortener:


Eigene Werkzeuge