import pickle
try:
- blog_file = open(blog_filename, "rb")
+ blog_file = open('../../../../phdru.name/ru/' + blog_filename, "rb")
except IOError:
blog_dict = {}
else:
return False
def _test_post(post, tree):
+ """Test if the list of tags in the post satisfies condition
+
+ Recursively evaluate the tree against the list of tags in the post.
+
+ """
op = tree[0]
if op == 'NAME':
tag = tree[1]
return value1 or value2
elif op == 'NOT':
return not _test_post(post, tree[1])
+ elif op == 'PARENS':
+ return _test_post(post, tree[1])
else:
raise ValueError("Cannot get there")
def find_tags(tree):
+ """Test every blog post against parsed expression
+
+ Return all posts that passed the test.
+
+ """
_posts = []
for (year, month, day), posts in blog_dict.iteritems():
for post in posts:
if _test_post(post, tree):
_posts.append((
- '/'.join((year, month, day, post[0].replace('.tmpl', '.html'))),
+ year, month, day,
+ '/'.join((year, month, day, post[0][:-len("tmpl")] + "html")),
post[1]))
- _posts.sort()
+ _posts.sort(reverse=True)
return _posts