# $Id: traffic.py,v 1.5 2009/12/26 11:46:28 slobin Exp $

import os, re, time, urllib2

def translate(chunk, src, dst):
    try:
        return chunk.decode(src).encode(dst)
    except UnicodeError:
        return chunk

def write_log_file(*args):
    print >> logfile, time.ctime(), " ".join(args)

pattern = re.compile(r"\<div id\=\"?traffic\"?.*?\>\<h2\>(.*?)\<\/h2\><\!\-\-(.*?)\-\-\>.*?\<\/div\>")

os.chdir(os.path.expanduser("~/public_html/traffic"))
logfile = open(time.strftime("%Y-%m.txt"), "a")

try:
    link = urllib2.urlopen("http://www.yandex.ru/")
    page = link.read()
except Exception, err:
    write_log_file("ERR:", str(err))
else:
    charset = link.info().getparam("charset")
    match = pattern.search(page)
    if match:
        value, timestamp = match.groups()
        words = re.split(r"\<.*?\>", value)
        value = " ".join(filter(bool, words))
        value = translate(value, charset, "cp1251")
        timestamp = translate(timestamp, charset, "cp1251")
        write_log_file(value, timestamp)
    else:
        write_log_file("ERR", "ERR")
