4.6 Aufbau Modulationssystem
Der Modulaktionsaufbau ist ein weiterer Kern des Projekts, jede Anwendung, die unter dem Punkt Kommunikationssysteme installiert wurde, bringt ein eigenes Modulationssystem mit. Durch die Modularität können alle Routinen und Funktionen innerhalb einer InspIRCd Umgebung gesteuert und kontrolliert werden, oder auch nach eigenen Vorstellungen entwickelt oder erweitert werden. Ich begrenze daher diesen Dokumentationsbeitrag auf einen Eggdrop, Beschreibungen zu allen anderen Standard-Modulgruppen können über einen Link zum Hersteller eingesehen werden, siehe dazu Punkt 3.4 im Inhaltsverzeichnis. Der Eggdrop Bot ist in der Programmiersprache C geschrieben und verfügt über Schnittstellen für C-Module und TCL-Skripte, mit der die Funktionalität des Bots enorm erweitert werden kann. Die Standardmodulation kann in folgende Fächer eingeteilt werden.
- Statistiken
- Benutzer- und Kanalverwaltung
- Benutzer- und Kanalverfolgung
- Speicherung und Suche von Informationen
- Begrüßung von Kanalmitgliedern
- Dateiserving und -verteilung
- IRC-Dienste (ChanServ, NickServ)
- Filter und Kanalverbote
- Botnetzverwaltung
- Online-Spiele
Der Eggdrop verfügt dazu über ein Botnetz, wodurch mehrere Instanzen miteinander verbunden werden können, um Daten auszutauschen und koordiniert zu handeln. Das Botnetz unterstützt eine "Party Line", auf die über DCC und Terminalanwendungen zugegriffen werden kann. Anwender können innerhalb des Botnetzes auf verschiedenen Kanälen in einem Miniatur-IRC kommunizieren. Module, die selbst programmiert werden, können am Ende einer Konfigurationsdatei eingebunden werden. Viele Module bieten darüber hinaus die Möglichkeit ganze Projekte und Datenbanken einzubinden, oder Foren zu verwalten, was wiederum die Voraussetzung schafft, Anwendungen und Programmiersprachen, z. B. Java, auf einer anderen Entwicklungsebene einzusetzen. Die nachfolgende Tabelle soll aufzeigen, wie das Modulationssystem aufgebaut ist.
| # Basismodule | Alle Module die in dieser Tabelle aufgelistet sind, werden vom Hersteller mit in der Grundinstallation bereitgestellt. |
| alltools.tcl | Basismodul, gehört mit zum Eggdrop Standard und dient zur Streuung der Grundfunktionen. |
| action.fix.tcl | Basismodul, gehört mit zum Eggdrop Standard und dient zur Optimierung des integrierten DCC Chat Kommunikationsprotokolls. |
| dccwhois.tcl | Basismodul, stellt ein Protokoll bereit, mit dem von einem verteilten Datenbanksystem Informationen zu Internet-Domains und IP-Adressen und deren Eigentümern abgefragt werden können. |
| userinfo.tcl | Basismodul, gehört mit zum Eggdrop Standard und unterstützt Funktionen des dccwhois.tcl Modul. |
| loadhelp userinfo.help | Basismodul, gehört mit zum Eggdrop Standard und stellt eine kleine Bedienungsanleitung bzw. Hilfe zur Verfügung. |
| # Hilfsmodule | Alle Module die in dieser Tabelle aufgelistet sind, werden vom Hersteller sowie von Benutzern entwickelt und angeboten. |
| libtclsqlite3.so | Datenbankmodul, zur Unterstützung von SQLite Datenbanken |
| bgexec1.8.tcl | Systemmodul, Starten von Prozess-Pipelines im Hintergrund, die ihre Ausgabe über einen konfigurierbaren Callback abholen. |
| egghttp.tcl | Netzmodul, wird benötigt um Informationen von Webservern abzurufen. |
| expr_parse.tcl | Anwendungsmodul, bietet die Möglichkeit Trigger im Kanal auszulesen und in Funktionen an andere Module zu senden. |
| fsck.tcl | Anwendungsmodul, stellt Modulen Werkzeuge zur Textverarbeitung zur Verfügung. |
| http.tcl | Netzmodul, wird benötigt um Informationen von Webservern abzurufen. |
| inidb.tcl | Datenbankmodul, erstellt einen PostgreSQL-Datenbank-Cluster. |
| sha1.tcl | Sicherheitsmodul, verifiziert Dateien und zeigt an ob diese Fehlerfrei sind. |
| tls.tcl | Netzmodul, stellt ein Verschlüsselungsprotokoll bereit, zur sicheren Datenübertragung im Internet. |
| # Benutzermodule | Alle Module die in dieser Tabelle aufgelistet sind, werden von Benutzern entwickelt und angeboten. Davon werden Werbemodule und Sprachmodule auch von mir selbst programmiert, und andere Module ggf. umgeschrieben und Bugs beseitigt. |
| adbible.tcl | Werbemodul zur Ausschreibung von theologischen Inhalten im Kanal. |
| adradio.tcl | Werbemodul zur Ausschreibung von Radiostationen im Kanal. |
| adsermons.tcl | Werbemodul zur Ausschreibung von theologischen Nachrichten im Kanal. |
| alice.tcl | Sprachmodul, erlaubt den Einsatz einer Künstlichen Intelligenz im Chat. |
| allprotection.tcl | Sicherheitsmodul, schützt den Kanal durch präzise Eingaben. |
| audiokjv.tcl | Werbemodul zur Ausschreibung von theologischen Hörbüchern im Kanal. |
| bmotion.tcl | Sprachmodul, erlaubt den Einsatz einer Künstlichen Intelligenz im Chat. Besteht aus einem Basis Modul und hunderten von Submodulen. |
| botnet.tcl | Netzmodul, wird benötigt um mehrere Bots zu verlinken bzw. gleichzeitig zu steuern. |
| countdown.tcl | Unterhaltungsmodul, startet/stoppt ein Scrabble Puzzle und Mathematik Aufgabenlauf. |
| darksky.tcl | Informationsmodul, stellt Wetterinformationen über eine API Schnittstelle im Kanal zur Verfügung. |
| diatheke.tcl | Informationsmodul, stellt Literatur auf theologischer Basis im Kanal zur Verfügung. |
| dispatch.tcl | Kommunikationsmodul, bietet Unterstützung für den Austausch von Benutzerinformationen. |
| entertainment.tcl | Sprachmodul, erlaubt den Einsatz einer Künstlichen Intelligenz im Chat. |
| geonames.tcl | Informationsmodul, ruft Standortinformationen ab und gibt sie an andere Module weiter (z.B. Wettermodul). |
| identify.tcl | Authentifizierungsmodul, meldet den Bot automatisch bei Server internen Diensten an (siehe Atheme). |
| imdb.tcl | Informationsmodul, liest Titelinformationen einer Filmdatenbank aus und zeigt diese im Kanal an. |
| love.tcl | Unterhaltungsmodul, erlaubt die Ausgabe von ASCII Kunstbildern im Kanal. |
| megahal.tcl | Sprachmodul, erlaubt den Einsatz einer Künstlichen Intelligenz im Chat. |
| message.tcl | Informationsmodul, gibt Textvorgaben unter festgelegten Triggern im Kanal aus. |
| nick.tcl | Informationsmodul, zeigt die aktuelle Teilnehmerliste eines Kanals auf einer Webseite an. |
| notice.tcl | Informationsmodul, Script zur freien Bereitstellung von Informationen, enthält eine Bedienungsanleitung für den Kanal. |
| quran.tcl | Informationsmodul, stellt Literatur auf theologischer Basis im Kanal zur Verfügung. |
| readfile.tcl | Informationsmodul, liest Textdateien direkt vom lokalen Datenträger und gibt sie im Kanal aus. |
| rss-synd.tcl | Informationsmodul, zeigt Änderungen auf News-Seiten an und gibt sie auf Wunsch im Kanal aus (siehe Web-Feeds). |
| say.tcl | Anwendungsmodul, erlaubt es durch den Bot im Kanal zu chatten oder Aktionen auszuführen. |
| seen.tcl | Informationsmodul, speichert den letzten Verbindungsstatus eines Benutzers. |
| superscript.tcl | Kontrollmodul, erlaubt es den Bot direkt vom Kanal aus zu steuern und Kommandos einzugeben. |
| tell.tcl | Kommunikationsmodul, bietet Unterstützung für den Austausch von Benutzerinformationen. |
| translator.tcl | Informationsmodul, übernimmt im Kanal die Übersetzung von Fremdsprachen durch die Yandex API. |
| trivia.tcl | Unterhaltungsmodul, erlaubt es im Kanal ein Trivial zu starten/stoppen. |
| urltitle.tcl | Informationsmodul, liest Titelinformationen einer URL aus und zeigt diese im Kanal an. |
| walkthrough.tcl | Informationsmodul, stellt Literatur auf Theologie Basis im Kanal zur Verfügung. |
| wolframagaz.tcl | Informationsmodul, Wolfram Alpha API, eine semantische Suchmaschine zum Auffinden und Darstellen von Informationen im Kanal. |
| xAutoKnown.tcl | Datenbankmodul, registriert Teilnehmer nach einem Zeitintervall in der Kanaldatenbank. |
| Konfigurationen | Konfigurationen können zusätzlich auf weitere Module, die eingebunden werden sollen, verweisen. |
| adminserv.conf | Verweist auf ein Servicemodul, enthält ChanServ und NickServ Module. |
Bots der nächsten Generation
Der Modulationsaufbau von Python Bots ist in etwa gleich. Aber durch die Programmiersprache Python wird vieles vereinfacht. Als Beispiel: Eggdrop Module, die aus Master- und Slave-Einheiten bestehen, werden bei Limnoria schon bei der Installation mit eingebunden. Zudem können Bots der nächsten Generation effizienter eingesetzt werden und sogar bis zu 90 % mehr Systemressourcen einsparen. Allerdings sind die Konfigurationsmöglichkeiten nicht immer so umfangreich und präzise wie bei älteren Modellen bzw. Programmiersprachen.
Beispiel, Bedienungsanleitung notice.tcl:
Download Modul