diff options
Diffstat (limited to 'atoidejouer/db/story.py')
-rw-r--r-- | atoidejouer/db/story.py | 43 |
1 files changed, 31 insertions, 12 deletions
diff --git a/atoidejouer/db/story.py b/atoidejouer/db/story.py index a0392c7..d386563 100644 --- a/atoidejouer/db/story.py +++ b/atoidejouer/db/story.py @@ -13,34 +13,49 @@ from atoidejouer.tools import storage class Key(object): - def __init__(self, id=None, name=None, type=None, media=None, **kargs): + def __init__(self, id=None, name=None, mime_type=None, timestamp=None, **kargs): """ """ - self.id, self.name, self.type, self.media = id, name, type, media + self.id, self.name, self.mime_type, self.timestamp = id, name, mime_type, timestamp # ensure value if select row returns None value - for arg in ['time', 'layer', 'x', 'y', 'duration', 'loop']: + for arg in ['time', 'layer', 'x', 'y', 'duration', 'loop', 'path']: setattr(self, arg, kargs[arg] if arg in kargs and kargs[arg] else 0) + def get_path(self): + if self.path == 0: + _ds_obj = None + for _ds_obj in storage.journal_query({ + 'mime_type': self.mime_type, + 'timestamp': self.timestamp, + 'title': self.name + }): + break + self.path = _ds_obj.file_path if _ds_obj else 0 + return self.path + + def set_path(self, path): + self.path = path + def __repr__(self): - return "%s|name=%s|type=%s|media=%s|time=%s|layer=%s|"\ + return "%s|name=%s|mime_type=%s|timestamp=%s|time=%s|layer=%s|"\ "x=%s|y=%s|dur=%s|loop=%s"\ - % (self.id, self.name, self.type, self.media, + % (self.id, self.name, self.mime_type, self.timestamp, self.time, self.layer, self.x, self.y, self.duration, self.loop) def __cmp__(self, other): return cmp( - (self.name, self.type, self.media, self.time, self.layer), - (other.name, other.type, self.media, other.time, other.layer) + (self.name, self.mime_type, self.timestamp, self.time, self.layer), + (other.name, other.mime_type, self.timestamp, other.time, other.layer) ) def create(self): return "create table story("\ "id integer primary key autoincrement not null,"\ "name text,"\ - "type text,"\ - "media text,"\ + "mime_type text,"\ + "timestamp text,"\ "time integer,"\ "layer integer,"\ "x integer,"\ @@ -52,7 +67,7 @@ class Key(object): def insert(self): columns = list() values = list() - for c in ['name', 'type', 'media', 'time', 'layer']: + for c in ['name', 'mime_type', 'timestamp', 'time', 'layer']: v = getattr(self, c) if v and v != -1: columns.append(c) @@ -62,9 +77,9 @@ class Key(object): ",".join(values) ) - def _params(self, crit, joiner=" "): + def _params(self, crit, joiner=" and "): values = list() - for c in ['name', 'type', 'time', 'layer', 'media']: + for c in ['name', 'mime_type', 'time', 'layer', 'timestamp']: v = getattr(self, c) if v and v != -1: v = v if v in ['time', 'layer'] else "'%s'" % v @@ -150,6 +165,10 @@ class DB(object): yield obj cur.close() + def one(self, obj): + for one in self.get(obj): + return one + def get_layout_max(self): return 10 |