#!/usr/bin/env python # -*- coding: utf-8 -*- # WWW-sovellukset TJTA270 Vt4 Taso 5 # http://appro.mit.jyu.fi/sovellukset/vt/vt4/ # (C) Esa-Matti Suuronen ''' Created on Feb 8, 2010 @author: epeli ''' import os.path import os import datetime from run import PIC_DB class PicDBException(Exception): pass class PicDB(object): pics = {} def __init__(self, filename=PIC_DB): this_dir = os.path.dirname(__file__) self.filepath = os.path.join(this_dir, filename) self._read_file() def _read_file(self): dbfile = open(self.filepath, "r") for line in dbfile: line = line.strip() if line.startswith("#") or not line: continue name, pic, time = line.strip().split("|")[:3] self.pics[name] = (pic, time) def add_pic(self, name, filename): filename = os.path.basename(filename) if self.has_pic(name): raise PicDBException("%s already exists! Please choose different name" % name) # Taa ei ole fiksua, mutta tehtavan vaatimukset sanovat, etta nain # pitaa. Normaalisti kannattaisi laittaa timestamp ja siita # muotoilla sopivat time = datetime.datetime.now().isoformat() self.pics[name] = (filename, time) f = open(self.filepath, "a") f.write("%s|%s|%s\n" % ( name, filename, time )) def has_pic(self, name): return self.pics.has_key(name)