__copyright__ = "Copyright (C) 2014 PhiloSoft Design"
__license__ = "GNU GPL"
-import cgi
+import cgi, sys
from ply.lex import LexError
-from html.response import response
+from html.response import redirect, response
from parser.parser import parser
form = cgi.FieldStorage()
status = "400 Bad request"
title = "Error!"
body = "Bad query syntax!"
+ elif tree[0] == 'NAME': # Single tag - just do redirect
+ tag = tree[1]
+ assert isinstance(tag, str)
+ from tags import tag_exists
+ if tag_exists(tag):
+ redirect("/Russian/blog/tags/%s.html" % tag, status="301 Moved")
+ sys.exit()
+ status = "404 Tag not found"
+ title = "Error!"
+ body = "Tag does not exist!"
response(title, body, status)
--- /dev/null
+blog_filename = "blog_dict.pickle"
+
+try:
+ import cPickle as pickle
+except ImportError:
+ import pickle
+
+try:
+ blog_file = open(blog_filename, "rb")
+except IOError:
+ blog_dict = {}
+else:
+ blog_dict = pickle.load(blog_file)
+ blog_file.close()
+
+
+# blog_dict is a mapping
+# (year, month, day) => [list of (file, title, lead, tags)]
+
+def tag_exists(tag):
+ for posts in blog_dict.itervalues():
+ for _file, _title, _lead, tags in posts:
+ if tag in tags:
+ return True
+ return False