]> git.phdru.name Git - phdru.name/phdru.name.git/blobdiff - reindex_blog.py
First/prev/next/last links in dotfiles and blog tags.
[phdru.name/phdru.name.git] / reindex_blog.py
index 8f23ebd08941cdd884a6f75a77651f22648e4f85..0ba0804d4c1d458628744a4c9d8ba5f6c2781744 100755 (executable)
@@ -1,11 +1,11 @@
-#! /usr/local/bin/python -O
+#! /usr/bin/env python
 # -*- coding: koi8-r -*-
 
 __version__ = "$Revision$"[11:-2]
 __revision__ = "$Id$"[5:-2]
 __date__ = "$Date$"[7:-2]
-__author__ = "Oleg BroytMann <phd@phd.pp.ru>"
-__copyright__ = "Copyright (C) 2006 PhiloSoft Design"
+__author__ = "Oleg Broytman <phd@phd.pp.ru>"
+__copyright__ = "Copyright (C) 2006-2010 PhiloSoft Design"
 
 
 import sys, os
@@ -84,19 +84,22 @@ if blog <> old_blog:
    pickle.dump(blog, blog_file, pickle.HIGHEST_PROTOCOL)
    blog_file.close()
 
-
 # Localized month names
 
 import locale
-locale.setlocale(locale.LC_ALL, '')
+locale.setlocale(locale.LC_ALL, "ru_RU.KOI8-R")
 from calendar import _localized_day, _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, '')
-months_names_ru = [month.lower() for month in _localized_month('%B')]
+locale.setlocale(locale.LC_TIME, "ru_RU.KOI8-R")
+#months_names_ru = list(_localized_month('%B'))
+
+months_names_ru = ['', "января", "февраля", "марта", "апреля", "мая", "июня",
+   "июля", "августа", "сентября", "октября", "ноября", "декабря"
+]
 
 months_names_ru0 = ['', "январь", "февраль", "март", "апрель", "май", "июнь",
    "июль", "август", "сентябрь", "октябрь", "ноябрь", "декабрь"
@@ -124,11 +127,11 @@ def write_template(level, year, month, day, titles, tags=None):
 
    if level == 0:
       new_text.append("""\
-#attr $Title = "Oleg BroytMann's blog"
-#attr $Description = "BroytMann Russian Blog Index Document"
+#attr $Title = "Oleg Broytman's blog"
+#attr $Description = "Broytman Russian Blog Index Document"
 #attr $Copyright = %(cyear)s
-#attr $alternates = (("application/atom+xml", "News [Atom 1.0]", "atom_10.xml"),
-                     ("application/rss+xml",  "News [RSS 2.0]",  "rss_20.xml")
+#attr $alternates = (("News [Atom 1.0]", "application/atom+xml", "atom_10.xml"),
+                     ("News [RSS 2.0]",  "application/rss+xml",  "rss_20.xml")
 )
 ##
 #def body_html
@@ -137,8 +140,8 @@ def write_template(level, year, month, day, titles, tags=None):
 
    elif level == 1:
       new_text.append("""\
-#attr $Title = "Oleg BroytMann's blog: %(year)s"
-#attr $Description = "BroytMann Russian Blog %(year)s Index Document"
+#attr $Title = "Oleg Broytman's blog: %(year)s"
+#attr $Description = "Broytman Russian Blog %(year)s Index Document"
 #attr $Copyright = %(cyear)s
 ##
 #def body_html
@@ -148,8 +151,8 @@ def write_template(level, year, month, day, titles, tags=None):
    elif level == 2:
       imonth = int(month)
       new_text.append("""\
-#attr $Title = "Oleg BroytMann's blog: %(month_abbr_en)s %(year)s"
-#attr $Description = "BroytMann Russian Blog %(month_name_en)s %(year)s Index Document"
+#attr $Title = "Oleg Broytman's blog: %(month_abbr_en)s %(year)s"
+#attr $Description = "Broytman Russian Blog %(month_name_en)s %(year)s Index Document"
 #attr $Copyright = %(cyear)s
 ##
 #def body_html
@@ -164,19 +167,14 @@ def write_template(level, year, month, day, titles, tags=None):
       iday = int(day)
       imonth = int(month)
 
-      new_text.append("""\
-#attr $Next = "%s"
-""" % titles[0][3])
-
-
       if len(titles) == 1:
          new_text.append("""\
 #attr $refresh = "0; URL=%s"
 """ % titles[0][3])
 
       new_text.append("""\
-#attr $Title = "Oleg BroytMann's blog: %(day)d %(month_abbr_en)s %(year)s"
-#attr $Description = "BroytMann Russian Blog %(day)d %(month_name_en)s %(year)s Index Document"
+#attr $Title = "Oleg Broytman's blog: %(day)d %(month_abbr_en)s %(year)s"
+#attr $Description = "Broytman Russian Blog %(day)d %(month_name_en)s %(year)s Index Document"
 #attr $Copyright = %(cyear)s
 ##
 #def body_html
@@ -191,7 +189,7 @@ def write_template(level, year, month, day, titles, tags=None):
    save_titles = titles[:]
    titles.reverse()
 
-   save_day = None
+   save_date = None
    for year, month, day, file, title, lead in titles:
       href = []
       if level == 0:
@@ -203,12 +201,12 @@ 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_day <> day:
+      if save_date <> (year, month, day):
          if level == 0:
             new_text.append('\n<h2>%s %s %s</h2>' % (day, months_names_ru[int(month)], year))
          else:
             new_text.append('\n<h2>%s %s</h2>' % (day, months_names_ru[int(month)]))
-         save_day = day
+         save_date = year, month, day
       if lead:
          lead = lead + ' '
       else:
@@ -246,11 +244,14 @@ def write_template(level, year, month, day, titles, tags=None):
 </p>
 ''')
 
+      max_year = int(sorted(years.keys())[-1])
+      years = range(2005, max_year+1)
+
       new_text.append('''
 <p class="head">По годам:
 ''')
       first_year = True
-      for year in sorted(years.keys()):
+      for year in years:
          if first_year:
             first_year = False
          else:
@@ -322,8 +323,8 @@ new_text = ["""\
 ## THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT.
 #extends phd_pp_ru
 #implements respond
-#attr $Title = "Oleg BroytMann's blog: tags"
-#attr $Description = "BroytMann Russian Blog Tags Index Document"
+#attr $Title = "Oleg Broytman's blog: tags"
+#attr $Description = "Broytman Russian Blog Tags Index Document"
 #attr $Copyright = 2006
 ##
 #def body_html
@@ -333,17 +334,49 @@ new_text = ["""\
 <dl>
 """]
 
-for count, tag, links in all_tags:
+for i, (count, tag, links) in enumerate(all_tags):
    new_text.append("""\
    <dt><a href="%s.html">%s (%d)</a></dt>
 """ % (tag, tag, count))
 
+   first = all_tags[0][1]
+   if i == 0:
+      prev = None
+   else:
+      prev = all_tags[i-1][1]
+   if i >= len(all_tags)-1:
+      next = None
+   else:
+      next = all_tags[i+1][1]
+   last = all_tags[-1][1]
+
    tag_text = ["""\
 ## THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT.
 #extends phd_pp_ru
 #implements respond
-#attr $Title = "Oleg BroytMann's blog: tag %s"
-#attr $Description = "BroytMann Russian Blog Tag %s Index Document"
+#attr $Title = "Oleg Broytman's blog: tag %s"
+#attr $Description = "Broytman Russian Blog Tag %s Index Document"
+""" % (tag, tag)]
+
+   tag_text.append("""\
+#attr $First = "%s"
+""" % first)
+
+   if prev:
+      tag_text.append("""\
+#attr $Prev = "%s"
+""" % prev)
+
+   if next:
+      tag_text.append("""\
+#attr $Next = "%s"
+""" % next)
+
+   tag_text.append("""\
+#attr $Last = "%s"
+""" % last)
+
+   tag_text.append("""\
 #attr $Copyright = 2006
 ##
 #def body_html
@@ -351,7 +384,7 @@ for count, tag, links in all_tags:
 
 <p class="head">
 <ul>
-""" % (tag, tag, tag)]
+""" % tag)
 
    count = 0
    for year, month, day, filename, title, lead in reversed(links):
@@ -411,12 +444,12 @@ for item in tuple(reversed(all_titles_tags))[:10]:
    item.categoryList = tags
 
 namespace = {
-   "title": "Oleg Broytmann's blog",
+   "title": "Oleg Broytman's blog",
    "baseURL": baseURL,
    "indexFile": "",
    "description": "",
    "lang": "ru",
-   "author": "Oleg Broytmann",
+   "author": "Oleg Broytman",
    "email": "phd@phd.pp.ru",
    "generator": os.path.basename(sys.argv[0]),
    "posts": items,