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.
# Basis Module 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.
# Unterstützungsmodule 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 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 (Wettermodul). identify.tcl Authentifizierungsmodul, meldet den Bot automatisch bei Server internen Diensten an (siehe Atheme). imdb.tcl Informationsmodul, liest Titel Informationen 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 Text Dateien 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 Titel Informationen 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 auch viel effizienter eingesetzt werden und sogar bis zu 90 % mehr Systemressourcen eingespart werden. Allerdings sind die Konfigurationsmöglichkeiten nicht immer so umfangreich und präzise wie bei älteren Modellen bzw. Programmiersprachen.
Beispiel, Bedienungsanleitung notice.tcl:
Download Modul