Cygnus ist ein PHP-Framework, das dazu dient, einen Bot für MediaWiki zu schreiben bzw. zu betreiben.

Bots, die dieses Framework bisher verwenden, sind z.B. der Luke081515Bot oder der LarusBot.

Die aktuell unterstütze Version des Frameworks ist die Version 2.0, die Version 2.1 befindet sich derzeit noch in der Entwicklung.

Der Code lässt sich auf GitLab finden.

Cygnus benötigt PHP 5.4 oder höher um zu funktionieren.

Verwendung Bearbeiten

Um den Bot zu verwenden, empfiehlt es sich, den Code in einen Unterordner anzulegen. Wenn du Erfahrungen mit Git hast und deinen eigenen Code auch in ein Repo packen willst, kannst du Cygnus direkt als Submodul einbinden.

Alternativ kannst du es einfach in einen Unterordner packen und es verwenden:

luke081515@argon:~$ ls
luke081515@argon:~$ mkdir myBot
luke081515@argon:~$ cd myBot
luke081515@argon:~/myBot$ git clone https://gitlab.wmflabs.org/Cygnus/Cygnus.git
Cloning into 'Cygnus'...
remote: Counting objects: 1136, done.
remote: Compressing objects: 100% (557/557), done.
remote: Total 1136 (delta 741), reused 949 (delta 572)
Receiving objects: 100% (1136/1136), 285.49 KiB | 0 bytes/s, done.
Resolving deltas: 100% (741/741), done.
luke081515@argon:~/myBot$ cd Cygnus
luke081515@argon:~/myBot/Cygnus$ git checkout release/2.0
Branch release/2.0 set up to track remote branch release/2.0 from origin.
Switched to a new branch 'release/2.0'
luke081515@argon:~/myBot/Cygnus$ cd ..
luke081515@argon:~/myBot$ ls
Cygnus
luke081515@argon:~/myBot$

Nun solltest du die zu verwendenden Zugriffsdaten für deinen Bot einstellen. Hier empfiehlt es sich ein Botpasswort zu verwenden.

luke081515@argon:~/myBot$ cd Cygnus
luke081515@argon:~/myBot/Cygnus$ ls
BotCore.php  Database.php  DBCore.php  DBPassword.example.php  LICENSE  Password.example.php
luke081515@argon:~/myBot/Cygnus$ cp Password.example.php Password.php
luke081515@argon:~/myBot/Cygnus$ nano Password.php
luke081515@argon:~/myBot/Cygnus$ chmod 0600 Password.php
luke081515@argon:~/myBot/Cygnus$

Die Beispieldatei, die hier kopiert wird, verfügt bereits über ausreichend Kommentare, sodass die genaue Einstellung hier nicht erneut erklärt wird.

Nun kannst du dein eigenes Programm anlegen. Hier zu kannst du einfach mein Beispielprogramm nehmen und es erweitern. Du musst lediglich <AccountData> ersetzen, hier musst du den Namen für die Zugangsdaten eingeben, die du in Password.php hinterlegt hast. <Jobname> ist lediglich eine Bezeichnung für dein Programm, die für die Speicherung der Cookies und je nach Cygnus Version auch für den Useragent verwendet wird. Hier solltest du lediglich drauf achten, dass du nicht zwei gleich heißende Programme zum selben Zeitpunkt verwendest. Unter der $this->initcurl.... Zeile kannst du nun beginnen dein eigenes Programm zu schreiben, du kannst auch eigene Funktionen schreiben. Durch die Vererbung kannst du jede vorhandene Funktion aus BotCore.php aufrufen, die nicht private ist, z.B. kannst du mit $result = $this->readPage("Seitentitel"); ganz einfach den Inhalt der Seite Seitentitel in die Variable $result schreiben.

Beispielprogramm Bearbeiten

#!/usr/bin/php
<?php
require './Cygnus/BotCore.php';
/** ExampleProgramm.example.php
* <Beschreibung des Programms einsetzen>
* @Author <Autor>
* @Version 0.1
* @Status Alpha
*/
class ExampleProgramm extends Core {
	public function __construct($Account, $Job, $pUseHTTPS = true) {
		$this->initcurl($Account, $Job, $pUseHTTPS);
	}
}
$Bot = new ExampleProgramm ('<AccountData>', '<Jobname>');
?>
  • Fragen?
  • Bugs/Fehler?
    • Du kannst uns hier ein Ticket anlegen, auch über Feature-Requests freuen wir uns. Bitte gib aber an, welche Version du verwendest.