index : logbot | |
Archlinux32 log bot | gitolite user |
summaryrefslogtreecommitdiff |
author | Filip H.F. "FiXato" Slagter <fixato@gmail.com> | 2012-06-11 23:02:28 +0200 |
---|---|---|
committer | Filip H.F. "FiXato" Slagter <fixato@gmail.com> | 2012-06-11 23:05:00 +0200 |
commit | d1051e5304dd13767bb1b00bb6725d383ac17da8 (patch) | |
tree | 2700f8d822bd3fd6b79e1e352925d6f9eab850f0 | |
parent | 82814fa304d4130005ff61563370bd15ce06b791 (diff) |
-rwxr-xr-x | logbot.py | 27 |
@@ -38,6 +38,10 @@ import os import ftplib import sys from time import strftime +try: + from datetime import datetime + from pytz import timezone +except: pass try: from hashlib import md5 @@ -83,6 +87,8 @@ FTP_FOLDER = "" # The amount of messages to wait before uploading to the FTP server FTP_WAIT = 25 +CHANNEL_LOCATIONS_FILE = os.path.expanduser("~/.logbot-channel_locations.conf") +DEFAULT_TIMEZONE = 'UTC' default_format = { "help" : HELP_MESSAGE, @@ -167,6 +173,7 @@ class Logbot(SingleServerIRCBot): self.count = 0 self.nick_pass = nick_pass + self.load_channel_locations() print "Logbot %s" % __version__ print "Connecting to %s:%i..." % (server, port) print "Press Ctrl-C to quit" @@ -265,8 +272,14 @@ class Logbot(SingleServerIRCBot): append_line("%s/index.html" % LOG_FOLDER, '<a href="%s/index.html">%s</a>' % (channel.replace("#", "%23"), channel_title)) # Current log - time = strftime("%H:%M:%S") - date = strftime("%Y-%m-%d") + try: + localtime = datetime.now(timezone(self.channel_locations.get(channel,DEFAULT_TIMEZONE))) + time = localtime.strftime("%H:%M:%S") + date = localtime.strftime("%Y-%m-%d") + except: + time = strftime("%H:%M:%S") + date = strftime("%Y-%m-%d") + log_path = "%s/%s/%s.html" % (LOG_FOLDER, channel, date) # Create the log date index if it doesnt exist @@ -364,6 +377,16 @@ class Logbot(SingleServerIRCBot): def on_topic(self, c, e): self.write_event("topic", e) + # Loads the channel - timezone-location pairs from the CHANNEL_LOCATIONS_FILE + # Each line is expected to have the channelname and (pytz) TimeZone location separated by a space + # Example: + # #excid3 UTC + # #Netherlands Europe/Amsterdam + def load_channel_locations(self): + self.channel_locations = {} + if os.path.exists(CHANNEL_LOCATIONS_FILE): + f = open(CHANNEL_LOCATIONS_FILE, 'r') + self.channel_locations = dict([line.split() for line in f.readlines()]) def connect_ftp(): print "Using FTP %s..." % (FTP_SERVER) |