Personal tools

FrackBot

From Frack - Hackerspace Friesland

Jump to: navigation, search
Project: FrackBot
Frackbot at irc.png
Status lopend
Betrokkenen
Afbeelding Anoniem.png Fludizz
Fludizz Rol: deelnemer Deskundig met: Glasvezel lassen, Iptables, Linux, Netwerken, Python, RaspberryPi, Software Beginnend met: OpenVPN Werkt aan: Arduino Spectrum Analyzer, FrackBot, Gereedmaken Makerbot, Spacestats
,
Kennisgebied(en) Python
Afgeleide projecten Mac2user
ProjectoverzichtProject toevoegen

Een IRC-bot voor ons Frack kanaal. Hiermee kunnen zaken als wiki-updates en het openen/sluiten van de space gemeld worden. Gebaseerd op code uit de Python Workshops.

Tijdens de Python workshops is er ook gewerkt aan een IRC client/bot implementatie. Elmer heeft hiervoor de backend en de core plugins geschreven waarmee de basis IRC functionaliteit werkt.

Contents

Algemeen

De bot draait in #frack op irc.eth0.nl vanaf de Space server.

Plugins

Naast de basis plugins voor de irc functionaliteit zijn er een aantal extra plugins geladen:

  • frack_space.py
  • frack_wiki.py
  • frack_door.py
  • frack_users.py
  • frack_alarm.py

frack_space.py

Deze plugin heeft twee functies. Als de monitor gestart word, controleerd deze plugin de spacestate elke minuut of word er geluisterd naar de spacestate. Veranderingen van de status worden op IRC vermeld. Deze plugin kan ook gebruikt worden om de huidige spacestate in het kanaal te melden. De trigger voor de ze plugin is "!space [start|stop|status]":

  • start - Hiermee word de space monitor gestart.
  • stop - Hiermee word de space monitor gestopt.
  • status - Hiermee word de status van de space monitor gecontroleerd en getoond.
  • Zonder parameter word de huidige spacestate, zoals deze op de website staat, gemeld.

frack_wiki.py

Deze plugin heeft als functie dat deze elke 5 minuten de RSS van de wiki uitleest en alle changes die er in de laatste 5 minuten geweest zijn worden netjes geformateerd op het irc kanaal gezet met een TinyURL naar de betreffende wiki page. Deze plugin reageert op de trigger "!wiki [start|stop]":

  • start - Hiermee word de wiki monitor gestart.
  • stop - Hiermee word de wiki monitor gestopt.
  • Zonder parameter word de huidige status van de wiki monitor gecontroleerd en getoond.

frack_door.py

Deze plugin luistert naar het SpaceAnnounce protocol voor announcements van de Deurbel. Zodra de deurbel ingedrukt word meld deze plugin dat op IRC. Deze plugin is ook verantwoordelijk voor het laten overgaan van de space telefoon. Deze plugin reageert op de trigger "!deurbel [start|stop]":

  • start - Hiermee word de deur monitor gestart.
  • stop - Hiermee word de deur monitor gestopt.
  • Zonder parameter word de huidige status van de deur monitor gecontroleerd en getoond.

frack_users.py

Deze plugin leest de mac-adressen uit die op het moment van opvragen actief zijn op het netwerk en vergelijkt deze lijst met een lijst van bekende mac-adressen, zie ook Mac2user voor meer details. Deze plugin heeft geen lopend proces en loopt eenmalig als de trigger gebruikt word. Er word geen historie van mac-adressen opgebouwd in deze plugin. De plugin reageert op de trigger "!wie".

frack_alarm.py

Deze plugin luistert net als frack_door.py naar het SpaceAnnounce protocol, echter luistert deze naar de alarm announcements. Zodra er een announcement met als text 'opened' binnen komt word er een loop gestart die elke minuut op IRC roept dat de nooddeur niet langer op slot zit. Deze plugin reageert op de trigger "!alarm [start|stop]":

  • start - Hiermee word de alarm monitor gestart.
  • stop - Hiermee word de alarm monitor gestopt.
  • Zonder parameter word de huidige status van de alarm monitor getoond.