mirror of
https://github.com/RussellChamp/tilde-projects.git
synced 2026-10-28 00:22:34 +00:00
Modified some bots. Added madlib bot.
This commit is contained in:
1 parent
e9fc646207
commit
1671c4f3cb
19 files changed
+482
-25
No files matched your search
Executable
+55
@@ -0,0 +1,55 @@
|
||||
#!/usr/bin/python
|
||||
import fileinput
|
||||
import json
|
||||
import time
|
||||
import calendar
|
||||
import shutil
|
||||
|
||||
logfile = "/home/archangelic/irc/log"
|
||||
#logfile = "/home/jumblesale/Code/irc/log"
|
||||
outfile = "/home/krowbar/logs/chatStack.json"
|
||||
chatData = { 'hours': [], 'regions': {} } #hash keyed by "region" and then hour that counts chat instances
|
||||
#we only care about recent chats, let's say for the past couple weeks
|
||||
oneHour = 60 * 60
|
||||
oneWeek = 7 * 24 * 60 * 60
|
||||
timeNow = calendar.timegm(time.gmtime())
|
||||
timeCutoff = calendar.timegm(time.gmtime()) - (2 * oneWeek)
|
||||
|
||||
# this will eventually represent each region users are from
|
||||
def getAllRegions():
|
||||
return ['unknown']
|
||||
|
||||
# this will provide a way to look up what region a user is from
|
||||
def getRegion(user):
|
||||
return 'unknown'
|
||||
|
||||
# populate the hours array with time 1 hour away from each other
|
||||
startTime = timeCutoff
|
||||
while startTime < timeNow:
|
||||
chatData['hours'].append(startTime)
|
||||
startTime += oneHour
|
||||
|
||||
# populate the regions array with blank data for each region
|
||||
for region in getAllRegions():
|
||||
chatData['regions'][region] = { 'name': region, 'values': [0] * len(chatData['hours']) }
|
||||
|
||||
with open(logfile, "r") as log:
|
||||
hourIdx = 0 # starting with the oldest time slot, we will count instances of user chatting
|
||||
for line in log:
|
||||
try:
|
||||
time, user, message = line.split("\t", 3)
|
||||
time = int(time)
|
||||
except ValueError:
|
||||
continue #There are some bad lines in the log file that we'll ignore if we can't parse
|
||||
if time > timeCutoff:
|
||||
region = getRegion(user)
|
||||
while time > chatData['hours'][hourIdx] + oneHour: # we are past the current hour idx, move ahead until we find the right idx
|
||||
hourIdx += 1;
|
||||
if hourIdx >= len(chatData['hours']):
|
||||
break; #uh oh! somehow we are parsing a line from the future! we're in pretty bad shape!
|
||||
# hourIdx should now be a good value
|
||||
chatData['regions'][region]['values'][hourIdx] += 1 # increment the user region's count for the current hour
|
||||
|
||||
with open(outfile + ".tmp", "w") as tmpFile:
|
||||
tmpFile.write(json.dumps(chatData))
|
||||
shutil.move(outfile + ".tmp", outfile)
|
||||
Reference in new issue
Block a user