No Description

Helge Jung 349818c3d9 fix issues identified by pylint 10 years ago
modules 349818c3d9 fix issues identified by pylint 10 years ago
willie @ 015f8ae78e c6526821c7 add Python Willie IRC bot as submodule 10 years ago
.gitignore cb8b14b5bd introduce node ACLs and playitsafe() check function 10 years ago
.gitmodules c6526821c7 add Python Willie IRC bot as submodule 10 years ago
Readme.md 3fb0d9ad0d extend ReadMe 10 years ago
bot.cfg.example b9ac999910 ffpb: move fun/entertainment methods into separate module 10 years ago
bot.sh 8edb2085c4 Back to Python 2 10 years ago

Readme.md

FFPB Status-Bot

Der Bot benötigt Python 2 und basiert auf "Willie" welcher unverändert als Git-Submodul eingebunden ist. Hinzugefügt wurden mehrere Plugins (Haupt-Modul: "ffpb") und ein Startup-Skript.

Der Bot geht davon aus, dass er in einem "Maschinenraum"-IRC-Channel arbeitet - kann jedoch zusätzlich Informationen in einem öffentlichen Kanal bereitstellen. Die im Bot konfigurierten Admins haben erweiterte Berechtigungen auch in den ffpb-Plugins, wie z.B. Remote-Execution auf allen Knoten (sofern der SSH-Key des Bots dort hinterlegt ist).

Funktionen

  1. Status-Abruf
    • periodischer Abruf von nodes.json und ALFRED-Daten
    • Anzahl Knoten und Clients: !status
    • Highscore #Knoten und #Clients: !highscore
  2. Knoten-Information
    • allg. Infos (insb. aus ALFRED): !info <peer>
    • MAC und Link zur Statusseite: !link <peer>
  3. Knoten-Aktionen
    • Ping von Peers: !ping <peer>
    • Remote-Execution auf Peers: !exec-on-peer <peer> <command> (hierzu muss der SSH-Key des Bots auf dem Knoten hinterlegt sein)
  4. Monitoring
    • Verwaltung: !monitor add <peer> bzw. !monitor del <peer>
    • periodischer Ping aller Peers, Meldung falls sich eine Änderung ergibt
  5. Messaging
    • bei entsprechender Konfiguration öffnet der Bot einen TCP-Port, die erste Zeile einer eingehenden Verbindung wird in den Channel geschickt
    • Meldungen die mit "PUBLIC: " beginnen werden, sofern vorhanden, in den öffentlichen Kanal gepostet (ohne den Marker)
  6. Willie-Standardfunktionen für owner/admin:
    • Neuladen des FFPB-Moduls: !reload ffpb
    • Nachricht in Channel schreiben: !msg #channel Nachricht

Installation

Dieses Git-Repository wird an beliebiger Stelle geklont (diese Dokumentation geht von /opt/ffpb-statusbot aus):

git clone --recursive https://git.c3pb.de/freifunk-pb/status-bot.git /opt/ffpb-statusbot

Der Bot hat Abhängigkeiten:

apt-get install python-pip python-netaddr python-urllib2
pip install "GitPython>=0.3.2.RC1"

Das Start-Up-Skript erfordert einen der Parameter "start" oder "stop" und eignet sich als Init-Skript:

ln -s /opt/ffpb-statusbot/bot.sh /etc/init.d/ffpb-statusbot
update-rc.d ffpb-statusbot enable

Konfiguration

Die Datei bot.cfg.example enthält eine Beispiel-Konfiguration und muss für die Benutzung nach bot.cfg kopiert und angepasst werden. Die wichtigsten Parameter sind nachfolgend erklärt:

core

Willie-Standardkonfiguration (siehe auch)

Parameter Typ Beschreibung
nick String Nickname des Bots
user String Benutzername gegenüber dem IRC-Server
name String "Real Name" des Bots im IRC
host String Host des IRC-Servers
port Integer Port des IRC-Servers
owner String Nickname des Besitzer des Bots
admins Liste weiterer Bot-Admins (kommasepariert, keine Leerzeichen um das Komma setzen!)
channels Liste IRC-Channel die der Bot betritt

ffpb

Parameter für das ffpb-Zusatzmodul

Parameter Typ Beschreibung
msg_enable Boolean Soll der Messaging-Server aktiviert werden?
msg_port Integer TCP-Port auf dem der Messaging-Server lauscht (Default = 2342)
msg_target String Nutzer/Raum zu dem die Messaging-Zeilen geschickt werden