#!/usr/bin/python import fileinput import time import calendar import re import operator MAX_NODES = 5 logfile = "/home/jumblesale/Code/irc/log" timeCutoff = calendar.timegm(time.gmtime()) - (3 * 7 * 24 * 60 * 60) # 3 weeks nameFix = { "jumblesal": "jumblesale", "hardmath1": "kc", "hardmath123": "kc", "bendorphan": "endorphant", "endorphan": "endorphant", "synergian": "synergiance", } def whoSaid(word): word = word.lower() userData = ( {} ) # hash keyed by "user" that contains a hash of mentioned other users with count # Get a list of all user names by checking the logs for people who have said things with open(logfile, "r") as log: for line in log: try: time, user, message = line.split("\t", 3) time = int(time) if nameFix.has_key(user): user = nameFix[user] else: user = user.lower() except ValueError: continue # There are some bad lines in the log file that we'll ignore if we can't parse if time > timeCutoff and message[0] is not "!" and word in message.lower(): if user in userData: userData[user] += 1 else: userData[user] = 1 userData = sorted(userData.items(), key=operator.itemgetter(1), reverse=True) return {"timecutoff": timeCutoff, "data": userData}