浏览代码

Don't check database twice

Oz N Tiram 8 年之前
父节点
当前提交
d60468d246
共有 1 个文件被更改,包括 9 次插入7 次删除
  1. 9 7
      blogit/blogit.py

+ 9 - 7
blogit/blogit.py

@@ -350,19 +350,21 @@ def find_new_posts_and_pages(db):
             fullpath = os.path.join(root, filename)
             _p = fullpath.split(CONFIG['content_root'])[-1].lstrip('/')
             new_mtime = int(os.path.getmtime(fullpath))
-            e = None
+            e, page = None, None
             post = db.posts.get(Q.filename == _p)
-            page = db.pages.get(Q.filename == _p)
 
             if post:
                 if new_mtime > post['mtime']:
                     db.posts.update({'mtime': new_mtime}, eids=[post.eid])
                     e = Entry(fullpath, eid=post.eid)
-            elif page:
-                if new_mtime > page['mtime']:
-                    db.pages.update({'mtime': new_mtime}, eids=[page.eid])
-                    e = Entry(fullpath, eid=page.eid)
-            else:
+
+            if not post:
+                page = db.pages.get(Q.filename == _p)
+                if page:
+                    if new_mtime > page['mtime']:
+                        db.pages.update({'mtime': new_mtime}, eids=[page.eid])
+                        e = Entry(fullpath, eid=page.eid)
+            if not (post or page):
                 e = Entry(fullpath)
             if e:
                 yield e, e.id