X-Git-Url: https://git.phdru.name/?p=phdru.name%2Fphdru.name.git;a=blobdiff_plain;f=reindex_blog.py;h=291e182eee8ddffff655114f347e50b9da54b97a;hp=33a5736dbbc1c022e04a58a65dd9ee9d167ef3e3;hb=HEAD;hpb=eddda9a58e63cc202103cc5266cad173a9e768fd diff --git a/reindex_blog.py b/reindex_blog.py index 33a5736..0b7c2a6 100755 --- a/reindex_blog.py +++ b/reindex_blog.py @@ -2,32 +2,20 @@ # -*- coding: koi8-r -*- __author__ = "Oleg Broytman " -__copyright__ = "Copyright (C) 2006-2014 PhiloSoft Design" +__copyright__ = "Copyright (C) 2006-2024 PhiloSoft Design" import sys, os - -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)] @@ -54,7 +42,7 @@ for dirpath, dirs, files in os.walk(blog_root): lead = template.Lead.decode('utf-8').encode('koi8-r') tags = template.Tag - if isinstance(tags, basestring): + if isinstance(tags, string_type): tags = (tags,) tags = [tag.decode('utf-8').encode('koi8-r') for tag in tags] @@ -86,23 +74,21 @@ 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 import locale locale.setlocale(locale.LC_ALL, "ru_RU.KOI8-R") -from calendar import _localized_day, _localized_month +from calendar import _localized_month locale.setlocale(locale.LC_TIME, 'C') months_names_en = list(_localized_month('%B')) months_abbrs_en = list(_localized_month('%b')) locale.setlocale(locale.LC_TIME, "ru_RU.KOI8-R") -#months_names_ru = list(_localized_month('%B')) +# months_names_ru = list(_localized_month('%B')) months_names_ru = ['', "ÑÎ×ÁÒÑ", "ÆÅ×ÒÁÌÑ", "ÍÁÒÔÁ", "ÁÐÒÅÌÑ", "ÍÁÑ", "ÉÀÎÑ", "ÉÀÌÑ", "Á×ÇÕÓÔÁ", "ÓÅÎÔÑÂÒÑ", "ÏËÔÑÂÒÑ", "ÎÏÑÂÒÑ", "ÄÅËÁÂÒÑ" @@ -114,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] @@ -213,7 +201,7 @@ def write_template(level, year, month, day, titles, tags=None): href.append(file) href = '/'.join(href) if day[0] == '0': day = day[1:] - if save_date <> (year, month, day): + if save_date != (year, month, day): if level == 0: new_text.append('\n

%s %s %s

' % (day, months_names_ru[int(month)], year)) else: @@ -253,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('''

''') @@ -381,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: @@ -446,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("""\ @@ -501,6 +492,8 @@ class AbsURLHTMLParser(_HTMLParser): self.accumulator += '