summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Oliver <excid3@gmail.com>2010-10-08 18:37:34 -0500
committerChris Oliver <excid3@gmail.com>2010-10-08 18:37:34 -0500
commita951fd8e9f0d221db2c4dee98b6be4047435082c (patch)
treedd72101b6079f1fb997d56fc2268584fffdaaed8
parent9e9df3bd7d898503d4232318591e3711bd8021d0 (diff)
downloadlogbot-a951fd8e9f0d221db2c4dee98b6be4047435082c.tar.xz
Save actions, better date format, various bug fixes
-rw-r--r--conf/example.conf6
-rw-r--r--logbot.py31
2 files changed, 28 insertions, 9 deletions
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%">&lt;%user%&gt;</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
diff --git a/logbot.py b/logbot.py
index d4187dc..ea731b4 100644
--- a/logbot.py
+++ b/logbot.py
@@ -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