index : logbot | |
Archlinux32 log bot | gitolite user |
summaryrefslogtreecommitdiff |
author | Chris Oliver <excid3@gmail.com> | 2010-10-08 18:37:34 -0500 |
---|---|---|
committer | Chris Oliver <excid3@gmail.com> | 2010-10-08 18:37:34 -0500 |
commit | a951fd8e9f0d221db2c4dee98b6be4047435082c (patch) | |
tree | dd72101b6079f1fb997d56fc2268584fffdaaed8 | |
parent | 9e9df3bd7d898503d4232318591e3711bd8021d0 (diff) |
-rw-r--r-- | conf/example.conf | 6 | ||||
-rw-r--r-- | logbot.py | 31 |
diff --git a/conf/example.conf b/conf/example.conf index af9a99c..4289321 100644 --- a/conf/example.conf +++ b/conf/example.conf @@ -2,7 +2,7 @@ server = irc.freenode.net port = 6667 server_password = password -channels = #keryx +channels = #excid3 nick = Timber nick_password = password @@ -21,8 +21,10 @@ join = -!- <span class="join">%user%</span> [%host%] has joined %channel% kick = -!- <span class="kick">%user%</span> was kicked from %channel% by %kicker% [%reason%] mode = -!- mode/<span class="mode">%channel%</span> [%modes% %person%] by %giver% nick = <span class="nick">%old%</span> is now known as <span class="nick">%new%</span> -part = -!- <span class="part">%user%</span> has parted %channel% +part = -!- <span class="part">%user%</span> [%host%] has parted %channel% pubmsg = <span class="person" style="color:%color%"><%user%></span> %message% pubnotice = <span class="notice">-%user%:%channel%-</span> %message% quit = -!- <span class="quit">%user%</span> has quit [%reason%] topic = <span class="topic">%user%</span> changed topic of <span class="topic">%channel%</span> to: %topic% +action = <span class="person" style="color:%color%">* %user% %action%</span> +help = Check out http://excid3.com
\ No newline at end of file @@ -73,6 +73,9 @@ class LogBot(SingleServerIRCBot): nickname) self.nick_pass = nick_pass self.chans = channels + + print "Logbot %s" % __version__ + print "Connecting to %s:%i" % (server, port) def set_format(self, folder, format, stylesheet): self.folder = folder @@ -89,6 +92,9 @@ class LogBot(SingleServerIRCBot): c.privmsg("nickserv", "identify %s" % self.nick_pass) for channel in self.chans: c.join(channel) + + print "Connected" + print "Press Ctrl-C to quit" def on_pubmsg(self, c, e): user = nm_to_n(e.source()) @@ -100,7 +106,16 @@ class LogBot(SingleServerIRCBot): .replace("%color%", color)) def on_invite(self, c, e): - pass + c.join(e.arguments()[0]) + + def on_action(self, c, e): + user = nm_to_n(e.source()) + action = e.arguments()[0] + channel = e.target() + color = gen_color(user) + self.write(channel, self.format["action"].replace("%user%", user) \ + .replace("%action%", action) \ + .replace("%color%", color)) def on_join(self, c, e): user = nm_to_n(e.source()) @@ -130,12 +145,14 @@ class LogBot(SingleServerIRCBot): def on_part(self, c, e): user = nm_to_n(e.source()) + host = e.source() channel = e.target() self.write(channel, self.format["part"].replace("%user%", user) \ + .replace("%host%", host) \ .replace("%channel%", channel)) def on_privmsg(self, c, e): - pass + c.privmsg(nm_to_n(e.source()), self.format["help"]) def on_topic(self, c, e): user = nm_to_n(e.source()) @@ -168,7 +185,7 @@ class LogBot(SingleServerIRCBot): def write(self, channel, message): time = strftime("%H:%M:%S") - date = strftime("%d-%m-%Y") + date = strftime("%Y-%m-%d") if channel: print "%s> %s %s" % (channel, time, message) channels = [channel] @@ -211,7 +228,7 @@ class LogBot(SingleServerIRCBot): str = "<a href=\"#%s\" name=\"%s\" class=\"time\">[%s]</a> %s" % \ (time, time, time, message) - append_to_index(path, str, True) + append_to_index(path, str, True) def create_html_file(path, title): @@ -258,15 +275,15 @@ def main(conf): # Get the formation information types = ["join", "kick", "mode", "nick", "part", "pubmsg", "pubnotice", - "quit", "topic"] + "quit", "topic", "action"] format = {} for type in types: format[type] = CONFIG.get("format", type) bot = LogBot(server, port, server_pass, channels, owner, nick, nick_pass) bot.set_format(folder, format, stylesheet) - bot.start() - + try: bot.start() + except KeyboardInterrupt: pass if __name__ == "__main__": # Require a config |