#!/usr/bin/env python2.4
# -*- coding: utf-8 -*-
import sys
import re
from pysqlite2 import dbapi2 as sqlite
ddregex = re.compile('.*
(.*).*', re.UNICODE)
dtregex = re.compile('.*(.*).*', re.UNICODE)
uniregex = re.compile('.*(.*).*', re.UNICODE)
def store(category, value):
query = u"insert into %s values (?)" % category
cursor.execute(query, (value,))
conn.commit()
def parse_simple(line, category):
m = re.match(ddregex, line)
if m:
store(category, m.group(1))
return parse_normal
def parse_city(line):
return parse_simple(line, 'cities')
def parse_region(line):
return parse_simple(line, 'regions')
def parse_faculty(line):
return parse_simple(line, 'faculties')
def parse_level(line):
return parse_simple(line, 'levels')
def parse_languages(line):
return parse_simple(line, 'languages')
def parse_industry(line):
m = re.match(ddregex, line)
if not m:
return parse_normal
industries = m.group(1).split('
')
for i in industries[:-1]:
store('industries', i)
return parse_normal
def parse_university(line):
m = re.match(ddregex, line)
if not m:
return parse_normal
m = re.match(uniregex, m.group(1))
if not m:
return parse_normal
store('universities', m.group(1))
return parse_normal
def parse_normal(line):
m = re.match(dtregex, line)
if not m:
return parse_normal
if m.group(1).startswith('Miejscowo'):
return parse_city
if m.group(1).startswith('Wojew'):
return parse_region
if m.group(1).startswith('Bran'):
return parse_industry
if m.group(1).startswith('Kierunek'):
return parse_faculty
if m.group(1).startswith('Poziom'):
return parse_level
if m.group(1).startswith('Uczelnia'):
return parse_university
if m.group(1).endswith('zyki:'):
return parse_languages
return parse_normal
fun = parse_normal
conn = sqlite.connect('stats.db')
cursor = conn.cursor()
for line in sys.stdin:
fun = fun(line)
conn.close()