X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;ds=sidebyside;f=reindex_blog.py;h=291e182eee8ddffff655114f347e50b9da54b97a;hb=HEAD;hp=ac22002b324adc704dd42119dd5f4f4383dc2880;hpb=8c0064206e738803c2251b06033d10f7cf922648;p=phdru.name%2Fphdru.name.git diff --git a/reindex_blog.py b/reindex_blog.py index ac22002..0b7c2a6 100755 --- a/reindex_blog.py +++ b/reindex_blog.py @@ -2,33 +2,20 @@ # -*- coding: koi8-r -*- __author__ = "Oleg Broytman " -__copyright__ = "Copyright (C) 2006-2017 PhiloSoft Design" +__copyright__ = "Copyright (C) 2006-2024 PhiloSoft Design" import sys, os -from Cheetah.compat import string_type - -blog_data_root = sys.argv[1] -blog_root = sys.argv[2] -blog_filename = os.path.join(blog_data_root, "blog_dict.pickle") - try: - import cPickle as pickle + from urllib.parse import quote except ImportError: - import pickle + from urllib import quote from Cheetah.Template import Template +from Cheetah.compat import string_type +from blog_db import blog_root, load_blog, save_blog -# Load old blog - -try: - blog_file = open(blog_filename, "rb") -except IOError: - old_blog = {} -else: - old_blog = pickle.load(blog_file) - blog_file.close() - +old_blog = load_blog() # blog is a dictionary mapping # (year, month, day) => [list of (file, title, lead, tags)] @@ -87,10 +74,8 @@ for dirpath, dirs, files in os.walk(blog_root): bodies[key] = body # Need to save the blog? -if blog <> old_blog: - blog_file = open(blog_filename, "wb") - pickle.dump(blog, blog_file, pickle.HIGHEST_PROTOCOL) - blog_file.close() +if blog != old_blog: + save_blog(blog) # Localized month names @@ -115,6 +100,8 @@ months_names_ru0 = ['', " from news import write_if_changed +def encode_tag(tag): + return quote(tag.replace(' ', '_')) def write_template(level, year, month, day, titles, tags=None): path = [blog_root] @@ -254,7 +241,8 @@ def write_template(level, year, month, day, titles, tags=None): first_tag = False else: new_text.append(' - ') - new_text.append("""%s (%d)""" % (tag, tag, count)) + new_text.append("""%s (%d)""" % ( + encode_tag(tag), tag, count)) new_text.append('''

''') @@ -382,7 +370,7 @@ linux for i, (count, tag, links) in enumerate(all_tags): new_text.append("""\
%s (%d)
-""" % (tag, tag, count)) +""" % (encode_tag(tag), tag, count)) first = all_tags[0][1] if i == 0: @@ -447,7 +435,9 @@ for i, (count, tag, links) in enumerate(all_tags): #end def $phd_site.respond(self) """) - write_if_changed(os.path.join(blog_root, "tags", tag+".tmpl"), ''.join(tag_text)) + write_if_changed(os.path.join(blog_root, "tags", + tag.replace(' ', '_') + ".tmpl"), + ''.join(tag_text)) new_text.append("""\ @@ -502,6 +492,8 @@ class AbsURLHTMLParser(_HTMLParser): self.accumulator += '