An IRC bot for keeping a channel topic updated with hackerspace open/closed state.
Python
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
conf
debian
src
LICENSE
README.md

README.md

#sesamebot# A reasonably simple IRC bot that is intended to keep an IRC channel topic updated with the open/closed state of a hackerspace.

##Features##

  • Reads a JSON document from a URL and expects to parse a Hackerspace Status API document. (https://hackerspaces.nl/spaceapi/)
  • Maintains custom open/closed text at the beginning of the topic
  • Handles NickServ authentication on connect
  • Handles disconnection/reconnection and reauthentication
  • Uses ChanServ to set topics and LIST to read them, so it doesn't have to occupy the IRC channel or need ops
  • Well-behaved daemon
  • Privilege dropping
  • Logging via syslog
  • Signal handling
  • Simple config file
  • pidfile
  • Debian/Ubuntu package

##Usage##

###From source###

To run the bot from source for evaluating it or debugging it, do this:

$ python src/sesamebot.py -c conf/sesamebot.conf

###From deb package###

# /etc/init.d/sesamebot (start|stop|status)

##Configuration for Freenode##

  • Register a nick for the bot to use

  • Edit the default configuration, reproduced below

  • Give the bot nick permission to change the topic (+t) for your channel

     /msg chanserv flags #yourchannel yourbot +t
    

##Configuration##

Example configuration:

[main]
drop_privs =   true
user =         nobody
group =        nogroup

[irc]
server =             irc.freenode.net
port =               6667
nickname =           yourbot
name =               A bot for telling you when a hackerspace opens/closes.
nickserv_password =  yourpassword
channel =            #yourchannel
join_channel =       false
reconnect_interval = 60

[status]
url =             http://hackerspace.example.com/statusdocument.json
timeout =         5
check_interval =  60
error_grace_period = 120

[statustext]
# This controls the text that is inserted at the start of the topic.
open   = "hackerspace is OPEN | "
closed = "hackerspace is CLOSED | "
error  = "hackerspace is (error, check sesamebot syslog) | "

[ircnetwork]
# Values correct for Freenode as of February 2012.
chanserv_nick =      ChanServ
nickserv_nick =      NickServ
nickserv_addr =      NickServ!NickServ@services.
nickserv_challenge = This nickname is registered.
nickserv_success   = You are now identified for

##TODO##

  • Cleaning up topic before shutting down
  • Putting open/closed time in the topic

--