]> git.phdru.name Git - phdru.name/phdru.name.git/blobdiff - phd.py
Проставить в блоге ссылки на пред./след. посты по времени
[phdru.name/phdru.name.git] / phd.py
diff --git a/phd.py b/phd.py
index 4e13617540eeb09967a2aff01209cc2be9b9ae82..6b67c20c900567eb31d9ceb72bf6001ff5b86586 100644 (file)
--- a/phd.py
+++ b/phd.py
@@ -5,6 +5,7 @@ except ImportError:
     from urllib.parse import quote as url_quote
 from Cheetah.Template import Template
 from Cheetah.compat import PY2
+from blog_db import load_blog
 
 
 url_re = r"(((https?|ftp|gopher|telnet)://|(mailto|file|news|about|ed2k|irc|sip|magnet):)[^' \t<>\"]+|(www|web|w3)[A-Za-z0-9_-]*\.[A-Za-z0-9._-]+\.[^' \t<>\"]+)[A-Za-z0-9/]"
@@ -100,6 +101,34 @@ class phd(Template):
         from markdown import markdown
         return markdown(self.body_mkd(), output_format="html")
 
+
+    def find_near_blog_posts(self):
+        if not self.path.startswith("/Russian/blog/"):
+            return None, None, None, None
+        dirs = self.path.split('/')
+        # blog post is ['', 'Russian', 'blog', year, month, day, filename]
+        if len(dirs) != 7:  # Not a blog post
+            return None, None, None, None
+        ymd = tuple(dirs[3:-1])
+        filename = self._fileBaseName
+
+        prev_key = prev_blog_post = current_key = current_blog_post = \
+                next_key = next_blog_post = None
+        old_blog = load_blog()
+        for key in sorted(old_blog):
+            for blog_post in sorted(old_blog[key]):
+                if current_blog_post:
+                    prev_key, prev_blog_post = current_key, current_blog_post
+                if next_blog_post:
+                    current_key, current_blog_post = next_key, next_blog_post
+                next_key = key
+                next_blog_post = blog_post
+                if current_blog_post and (current_key == ymd) and \
+                        (current_blog_post[0] == filename):  # Found!
+                    return prev_key, prev_blog_post, next_key, next_blog_post
+        return current_key, current_blog_post, None, None
+
+
     def img_thumbnail_800_1024(self, img_name):
         return """\
 <img src="%(img_name)s-thumbnail.jpg" alt="%(img_name)s-thumbnail.jpg" /><br />