All pastes #52533 Raw Edit

Someone

public python v1 · immutable
#52533 ·published 2006-05-01 08:06 UTC
rendered paste body
#!/usr/bin/env python## h3x, an IRC bot written in Python# logger.pyimport osimport stringimport timedays = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']months = ['Jan' , 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']def evalTime(position):    if time.localtime()[position] < 10:        return '0%s' % time.localtime()[position]    else:        return time.localtime()[position]        def addLog(raw):    loctime = '[%s:%s]' % (evalTime(3), evalTime(4))    ext = '%s%s%s' % (time.localtime()[0], evalTime(1), evalTime(2))        praw = string.split(raw)    logname = 'logs/nabla.log.%s' % (ext)        nick = raw.split(":",1)[1].split("!",1)[0]    try:        ident = raw.split("!",1)[1].split()[0]    except IndexError:        pass        if praw[1] == 'PRIVMSG' and praw[2].startswith('#') and not raw.split(' ',3)[3].split(':',1)[1].startswith('ACTION'):        line = '%s <%s> %s' % (loctime, nick, raw.split(' ',3)[3].split(':',1)[1])    elif praw[1] == 'NICK':        line = '%s Nick change: %s -> %s' % (loctime, nick, raw.split(' ',2)[2].split(':',1)[1])        elif praw[1] == 'QUIT':        line = '%s %s (%s) left irc: %s' % (loctime, nick, ident, raw.split(' ',2)[2].split(':',1)[1])    elif praw[1] == 'JOIN':        line = '%s %s (%s) joined %s.\n' % (loctime, nick, ident, raw.split(' ',2)[2].split(':',1)[1].strip())    elif praw[1] == 'KICK':        line = '%s %s kicked from %s by %s :%s' % (loctime, praw[3], praw[2], nick, raw.split(' ',4)[4].split(':',1)[1])    elif praw[1] == 'MODE':        line = '%s %s: mode change \'%s %s\' by %s!%s\n' % (loctime, praw[2], praw[3], praw[4], nick, ident)                elif praw[1] == 'PART':        line = '%s %s (%s) left %s.\n' % (loctime, nick, ident, praw[2])    elif praw[1] == 'TOPIC':        line = '%s Topic changed on %s by %s!%s: %s' % (loctime, praw[2], nick, ident, raw.split(' ',3)[3].split(':',1)[1])    elif praw[1] == 'PRIVMSG' and praw[2].startswith('#') and raw.split(' ',3)[3].split(':',1)[1].startswith('ACTION'):        line = '%s Action: %s%s' % (loctime, nick, raw.split('ACTION',1)[1])    else:        line = None    writeLog(logname, line)    def writeLog(logname, line):    if not os.path.isfile(logname) and line is not None:        Today = '%s %s %s %s' % (days[time.localtime()[6]], months[time.localtime()[1]],                                 time.localtime()[2], time.localtime()[0])        first_line = '[00:00] --- %s' % Today        logfile = open(logname, 'w')        logfile.write(first_line+'\n')        logfile.write(line)        logfile.close()    elif line is not None:        from dynrw import Write        Write(logname, line)