42070a332f389182f1df6340c9602d98d3e59088
[planet-ucc.git] / CacheHandler.py
1 #
2 # CacheHandler.py
3 #
4 # classes for dealing with object cache
5 #
6 # (c) 2004, Davyd Madeley
7 #
8
9 import dircache, cPickle, sys, os
10
11 class CacheHandler:
12         def __create_name__(self, title, feed):
13                 return "%s_%s.cache" % (title.replace(' ', '_'), feed.replace(' ', '_').replace('http://', '').replace('/', '_'))
14         
15         def storeBlog(self, blog):
16                 name    = self.__create_name__(blog.blogTitle, blog.feedURL)
17                 # write the blog to disk
18                 try:
19                         cPickle.dump(blog, open(os.path.join('cache', name), 'w'))
20                 except:
21 #                       sys.stderr.write('DEBUG: CacheHandler: Item could not be written to cache\n')
22                         pass
23         
24         def getBlog(self, title, feed):
25                 name    = self.__create_name__(title, feed)
26                 # attempt to read the blog from disk
27                 try:
28                         blog    = cPickle.load(open(os.path.join('cache', name)))
29                 except:
30                         blog    = None
31 #                       sys.stderr.write('DEBUG: CacheHandler: Could not read item from cache\n')
32                 return blog
33
34 class CacheObject:
35         "Stores Blog objects"
36         def __init__(self):
37                 self.etag       = None
38                 self.date       = None
39         def __ne__(self, other):
40                 return self.etag != other.etag or self.date != other.date

UCC git Repository :: git.ucc.asn.au