#!/usr/bin/env python

import time
import fileinput
from datetime import timedelta
from hashlib import sha256

from geoip import geolite2
from clfparser import CLFParser
import httpagentparser

day = -1
for line in fileinput.input():
    hit = CLFParser.logDict(line)
    geo = geolite2.lookup(hit.get("h", "0.0.0.0"))
    when = hit.get("time") + timedelta(seconds=-time.timezone)
    if day != when.day:
        print
        day = when.day
    tz = (geo and geo.timezone != "None") and geo.timezone or ""
    print when.strftime("%Y-%m-%d %H:%M"), " ", hit.get("r").split(" ")[1].strip("/").ljust(12), hit.get("h").ljust(16), (geo and geo.country or "??"), " ", tz.ljust(20), sha256(hit.get("Useragent", "")).hexdigest()[:8], httpagentparser.simple_detect(hit.get("Useragent", "")) #, hit.get("Useragent", "")

