changeset 2386:15f00693481d

Get rid of page_file_meta
author Radomir Dopieralski <sheep-devel@sheep.art.pl>
date Sat, 11 May 2013 23:39:06 +0200
parents 393bb66c828e
children 759f2d6f2edf
files hatta/page.py hatta/storage.py hatta/wiki.py
diffstat 3 files changed, 10 insertions(+), 21 deletions(-) [+]
line wrap: on
line diff
--- a/hatta/page.py	Sat May 11 23:25:29 2013 +0200
+++ b/hatta/page.py	Sat May 11 23:39:06 2013 +0200
@@ -238,8 +238,8 @@
                 dependencies.add(werkzeug.url_quote(title))
         for title in [self.wiki.menu_page]:
             if title in self.storage:
-                inode, size, mtime = self.storage.page_file_meta(title)
-                etag = '%s/%d-%d' % (werkzeug.url_quote(title), inode, mtime)
+                rev, date, author, comment = self.storage.page_meta(title)
+                etag = '%s/%d-%s' % (werkzeug.url_quote(title), rev, date.isoformat())
                 dependencies.add(etag)
         return dependencies
 
@@ -495,8 +495,8 @@
         dependencies = WikiPage.dependencies(self)
         for title in [self.wiki.icon_page, self.wiki.alias_page]:
             if title in self.storage:
-                inode, size, mtime = self.storage.page_file_meta(title)
-                etag = '%s/%d-%d' % (werkzeug.url_quote(title), inode, mtime)
+                rev, date, author, comment = self.storage.page_meta(title)
+                etag = '%s/%d-%s' % (werkzeug.url_quote(title), rev, date.isoformat())
                 dependencies.add(etag)
         for link in self.index.page_links(self.title):
             if link not in self.storage:
--- a/hatta/storage.py	Sat May 11 23:25:29 2013 +0200
+++ b/hatta/storage.py	Sat May 11 23:39:06 2013 +0200
@@ -274,16 +274,6 @@
             raise error.NotFoundErr()
         return filetip.data()
 
-    def page_file_meta(self, title):
-        """Get page's inode number, size and last modification time."""
-
-        try:
-            (st_mode, st_ino, st_dev, st_nlink, st_uid, st_gid, st_size,
-             st_atime, st_mtime, st_ctime) = os.stat(self._file_path(title))
-        except OSError:
-            return 0, 0, 0
-        return st_ino, st_size, st_mtime
-
     def page_meta(self, title):
         """Get page's revision, date, last editor and his edit comment."""
 
--- a/hatta/wiki.py	Sat May 11 23:25:29 2013 +0200
+++ b/hatta/wiki.py	Sat May 11 23:39:06 2013 +0200
@@ -8,6 +8,7 @@
 import re
 import sys
 import tempfile
+import datetime
 
 import werkzeug
 import werkzeug.routing
@@ -321,12 +322,10 @@
 
         response = WikiResponse(content, mimetype=mime)
         if rev is None:
-            inode, _size, mtime = self.storage.page_file_meta(title)
-            response.set_etag(u'%s/%s/%d-%d' % (etag,
+            rev, date, author, comment = self.storage.page_meta(title)
+            response.set_etag(u'%s/%s/%d-%s' % (etag,
                                                 werkzeug.url_quote(title),
-                                                inode, mtime))
-            if size == -1:
-                size = _size
+                                                rev, date.isoformat()))
         else:
             response.set_etag(u'%s/%s/%s' % (etag, werkzeug.url_quote(title),
                                              rev))
@@ -595,9 +594,9 @@
         cache_dir = os.path.join(self.cache, 'render',
                                   werkzeug.url_quote(title, safe=''))
         cache_file = os.path.join(cache_dir, cache_filename)
-        page_inode, page_size, page_mtime = self.storage.page_file_meta(title)
+        rev, date, author, comment = self.storage.page_meta(title)
         cache_mtime, cache_size = file_time_and_size(cache_file)
-        if page_mtime > cache_mtime:
+        if date > datetime.datetime.fromtimestamp(cache_mtime):
             if not os.path.exists(cache_dir):
                 os.makedirs(cache_dir)
             try: