]> git.phdru.name Git - phdru.name/phdru.name.git/blob - make-news.py
Separate generators links for news and the blog.
[phdru.name/phdru.name.git] / make-news.py
1 #! /usr/local/bin/python -O
2 # -*- coding: koi8-r -*-
3
4 __version__ = "$Revision$"[11:-2]
5 __revision__ = "$Id$"[5:-2]
6 __date__ = "$Date$"[7:-2]
7 __author__ = "Oleg BroytMann <phd@phd.pp.ru>"
8 __copyright__ = "Copyright (C) 2006 PhiloSoft Design"
9
10
11 import sys, os
12 from news import get_news, write_if_changed
13
14 lang = sys.argv[1]
15 root = sys.argv[2]
16
17 header, news_items = get_news(lang)
18
19 new_text = [header]
20
21 new_text.append("""
22 <p class="head">
23    <ul>
24 """)
25
26 for item in news_items:
27    new_text.append('      <li><a href="%s">%s - %s</a></li>\n' % (item.rel_link, item.date, item.title))
28
29 new_text.append("""\
30    </ul>
31 </p>
32
33 <p class="head">
34 """)
35
36 if lang == "en":
37    new_text.append("""\
38 News are also available in
39 <A HREF="atom_10.xml">Atom 1.0 <img src="Graphics/atom_10.jpg" border=0></A>
40 and <A HREF="rss_20.xml">RSS 2.0 <img src="Graphics/rss_20.jpg" border=0></A>
41 formats.
42 """)
43
44 elif lang == "ru":
45    new_text.append("""\
46 Новостевая лента в форматах
47 <A HREF="atom_10.xml">Atom 1.0 <img src="../Graphics/atom_10.jpg" border=0></A>
48 и <A HREF="rss_20.xml">RSS 2.0 <img src="../Graphics/rss_20.jpg" border=0></A>.
49 """)
50
51 new_text.append("""\
52 </p>
53 #end def
54 $phd_pp_ru.respond(self)
55 """)
56
57 write_if_changed(os.path.join(root, "news.tmpl"), ''.join(new_text))
58
59
60 from atom_10 import atom_10
61 from rss_20 import rss_20
62
63 namespace = {
64    "title": "Oleg Broytmann's Personal Page - News",
65    "baseURL": "http://phd.pp.ru/",
66    "indexFile": "news.html",
67    "description": "",
68    "lang": lang,
69    "author": "Oleg Broytmann",
70    "email": "phd@phd.pp.ru",
71    "generator": os.path.basename(sys.argv[0]),
72    "posts": news_items,
73 }
74
75 if lang == "ru":
76    namespace["title"] = "Oleg Broytmann's Personal Page - Russian News"
77    namespace["baseURL"] = baseURL = "http://phd.pp.ru/Russian/"
78    for item in news_items:
79       item.baseURL = baseURL
80
81 for item in news_items:
82    href_parts = item.rel_link.split('/')
83    if href_parts:
84       if href_parts[0] == '.':
85          category = "Home page"
86       elif href_parts[0] == "..":
87          category = href_parts[1]
88       else:
89          category = href_parts[0]
90       if category: item.categoryList = [category]
91
92 atom_tmpl = str(atom_10(searchList=[namespace]))
93 write_if_changed(os.path.join(root, "atom_10.xml"), atom_tmpl)
94 rss_tmpl = str(rss_20(searchList=[namespace]))
95 write_if_changed(os.path.join(root, "rss_20.xml"), rss_tmpl)