This commit is contained in:
Ben Harris committed 2018-10-09 02:50:10 -04:00
1 parent a8a5de36f2
commit 58753c7234
38 files changed
+4549 -2523

No files matched your search

+60 -56
View File
@@ -7,25 +7,25 @@ import shutil
import re
logfile = "/home/archangelic/irc/log"
#logfile = "/home/jumblesale/Code/irc/log"
# logfile = "/home/jumblesale/Code/irc/log"
outfile = "/home/krowbar/logs/chatStats.json"
userData = {} #hash keyed by "user" that contains a start timestamp, last timestamp, last said string, chat count, letter count, and word count
#also now happy emotes and sad emotes
userData = {} # hash keyed by "user" that contains a start timestamp, last timestamp, last said string, chat count, letter count, and word count
# also now happy emotes and sad emotes
rejectRegexp = "http[s]?://|[0-9]{2}[;:][0-9]{2}"
happyRegexp = ":[-]?[])}]"
sadRegexp = ":[-]?[[({]"
nameFix = {
'archangel': 'archangelic',
'jumblesal': 'jumblesale',
'hardmath1': 'kc',
'hardmath123': 'kc',
'bendorphan': 'endorphant',
'endorphan': 'endorphant',
'synergian': 'synergiance'
}
"archangel": "archangelic",
"jumblesal": "jumblesale",
"hardmath1": "kc",
"hardmath123": "kc",
"bendorphan": "endorphant",
"endorphan": "endorphant",
"synergian": "synergiance",
}
with open(logfile, "r") as log:
lastUser = "";
lastUser = ""
currentStreak = 1
for line in log:
try:
@@ -36,66 +36,70 @@ with open(logfile, "r") as log:
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
continue # There are some bad lines in the log file that we'll ignore if we can't parse
if user in userData:
day = time / 86400 #seconds in a day
if userData[user]['startTime'] == 0:
userData[user]['startTime'] = time
if userData[user]['lastDay'] != day:
userData[user]['daysActive'] += 1
userData[user]['lastDay'] = day
day = time / 86400 # seconds in a day
if userData[user]["startTime"] == 0:
userData[user]["startTime"] = time
if userData[user]["lastDay"] != day:
userData[user]["daysActive"] += 1
userData[user]["lastDay"] = day
if lastUser == user:
currentStreak += 1
if currentStreak > userData[user]['streak']:
userData[user]['streak'] = currentStreak
if currentStreak > userData[user]["streak"]:
userData[user]["streak"] = currentStreak
else:
currentStreak = 1
if userData[user]['lastMention']:
resTime = time - userData[user]['lastMention']
userData[user]['responseTime'] += min(resTime, 7200) #cap the value at 2hrs, things get skewed toward the high end otherwise
userData[user]['lastMention'] = 0
if userData[user]["lastMention"]:
resTime = time - userData[user]["lastMention"]
userData[user]["responseTime"] += min(
resTime, 7200
) # cap the value at 2hrs, things get skewed toward the high end otherwise
userData[user]["lastMention"] = 0
userData[user]['endTime'] = time
#userData[user]['lastSaid'] = message
userData[user]['lineCount'] += 1
userData[user]['wordCount'] += len(message.split())
userData[user]['charCount'] += len(message)
else: #if they are new
userData[user]["endTime"] = time
# userData[user]['lastSaid'] = message
userData[user]["lineCount"] += 1
userData[user]["wordCount"] += len(message.split())
userData[user]["charCount"] += len(message)
else: # if they are new
userData[user] = {}
userData[user]['startTime'] = time
userData[user]['endTime'] = time
#userData[user]['lastSaid'] = message
userData[user]['lineCount'] = 1
userData[user]['wordCount'] = len(message.split())
userData[user]['charCount'] = len(message)
userData[user]['daysActive'] = 1
userData[user]['lastDay'] = time / 86400
userData[user]['streak'] = 1
userData[user]['mentions'] = 0
userData[user]['lastMention'] = 0
userData[user]['responseTime'] = 0
userData[user]['botUse'] = 0
userData[user]['happyEmotes'] = 0
userData[user]['sadEmotes'] = 0
userData[user]["startTime"] = time
userData[user]["endTime"] = time
# userData[user]['lastSaid'] = message
userData[user]["lineCount"] = 1
userData[user]["wordCount"] = len(message.split())
userData[user]["charCount"] = len(message)
userData[user]["daysActive"] = 1
userData[user]["lastDay"] = time / 86400
userData[user]["streak"] = 1
userData[user]["mentions"] = 0
userData[user]["lastMention"] = 0
userData[user]["responseTime"] = 0
userData[user]["botUse"] = 0
userData[user]["happyEmotes"] = 0
userData[user]["sadEmotes"] = 0
lastUser = user;
if message.rstrip() and message[0] == '!':
userData[user]['botUse'] += 1
lastUser = user
if message.rstrip() and message[0] == "!":
userData[user]["botUse"] += 1
if not re.search(rejectRegexp, message):
if re.search(happyRegexp, message):
userData[user]['happyEmotes'] += 1
userData[user]["happyEmotes"] += 1
if re.search(sadRegexp, message):
userData[user]['sadEmotes'] += 1
userData[user]["sadEmotes"] += 1
try:
if message.rstrip() and message.split()[0][-1] == ':': #last character of first word
if (
message.rstrip() and message.split()[0][-1] == ":"
): # last character of first word
name = message.split()[0][0:-1]
if user != name and userData.has_key(name):
userData[name]['mentions'] += 1
if not userData[name]['lastMention']:
userData[name]['lastMention'] = time
userData[name]["mentions"] += 1
if not userData[name]["lastMention"]:
userData[name]["lastMention"] = time
except IndexError:
print '##' + message + '##'
print("##" + message + "##")
continue