# HG changeset patch # User Jeff Hammel # Date 1273023965 25200 # Node ID 837cfc05d4d9abd50bdf3545a51dd954298cfb82 # Parent 1c5cbbde4299a30342a7408d9bbac113b65926c3 add times to tags; cant things ever be easy? diff -r 1c5cbbde4299 -r 837cfc05d4d9 taginthemiddle/middleware.py --- a/taginthemiddle/middleware.py Tue May 04 08:37:15 2010 -0700 +++ b/taginthemiddle/middleware.py Tue May 04 18:46:05 2010 -0700 @@ -14,14 +14,6 @@ from pkg_resources import resource_filename from webob import Request, Response, exc -# tags have: -# - a list of resources they're applied to -# for now just assume auth is on and that anyone authenticated may tag - -# e.g. a tags file -# foo = /bar /fleem/baz etc -# cats = /cats /blog/mycat - class Tagger(LXMLMiddleware): # instance defaults diff -r 1c5cbbde4299 -r 837cfc05d4d9 taginthemiddle/model.py --- a/taginthemiddle/model.py Tue May 04 08:37:15 2010 -0700 +++ b/taginthemiddle/model.py Tue May 04 18:46:05 2010 -0700 @@ -1,4 +1,16 @@ +""" + tags have: + - a list of resources they're applied to + - a time they're applied + for now just assume auth is on and that anyone authenticated may tag + e.g. a tags file + +foo = /bar:1273023556 /fleem/baz:1273023556 etc +cats = /cats:1273023556 /blog/mycat:1273023556 +""" + import os +import time class Tags(object): """file (e.g. .ini) based tagging scheme""" @@ -13,6 +25,7 @@ f.close() self.tags = {} self.urls = {} + self.times = {} self.read(path) @@ -26,12 +39,15 @@ urls = urls.strip() self.tags[tag] = set([urls]) for url in urls: + url, time = url.rsplit(':', 1) self.urls.setdefault(url, set()).add(tag) + self.times[(tag, url)] = int(time) def write(self): f = file(self.path, 'w') for tag in sorted(self.tags.keys()): - print >> f, '%s = %s' % (tag, ' '.join(self.tags[tag])) + print >> f, '%s = %s' % (tag, ' '.join(['%s:%s' % (url, self.times(tag, url)) + for url in self.tags[tag]])) f.close() def add(self, tag, url): @@ -39,6 +55,7 @@ return self.tags[tag].add(url) self.urls[url].add(tag) + self.times[(tag, url)] = int(time.time()) self.write() def remove(self, tag, url):