Skip to content

Instantly share code, notes, and snippets.

@michahell
Forked from blha303/evelogparse.py
Last active August 29, 2015 14:15
Show Gist options
  • Save michahell/acd3bb7b4d29cb05a72b to your computer and use it in GitHub Desktop.
Save michahell/acd3bb7b4d29cb05a72b to your computer and use it in GitHub Desktop.
import os
import time
# Config
NAME = ["Steven Kafshaz"]
LASTMSG = {}
def filesbychannel(dirlist):
out = {}
for a in dirlist:
if a.split("_")[0] in out:
out[a.split("_")[0]].append(a)
else:
out[a.split("_")[0]] = [a]
return out
def open_log(channel):
out = {"id": 0, "name": "", "listener": "", "started": "", "topic": "", "lines": []}
with open(channel[-1], "rb") as f:
a = f.read().decode("utf_16").split("\n")
out["id"] = int(a[6].split()[-1])
out["name"] = a[7].split()[-1]
out["listener"] = a[8].split()[-1]
out["topic"] = " > ".join(a[12].split(" > ")[1:]).strip()
out["lines"] = [parse_line(b.strip()) for b in a[13:]][:-1]
return out
def parse_line(line):
out = {"timestamp": "", "fromusr": "", "text": ""}
try:
ts = " ".join(line.split(" ")[1:3])
out["timestamp"] = int(time.mktime(time.strptime(ts, "%Y.%m.%d %H:%M:%S")))
out["fromusr"] = line.split(" ] ")[1].split(" > ")[0].strip()
out["text"] = line.split(" > ")[1].strip()
return out
except (IndexError,ValueError):
return None
def match(text):
return NAME[0] in text
out = {}
for a in NAME:
out[a] = a in text
return out
"""
def main():
while True:
channels = filesbychannel(os.listdir("."))
for ch in channels:
l = open_log(channels[ch])
LATEST[ch] =
time.sleep(1)
"""
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment