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