+"""News"""
+
+__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"
+__docformat__ = "epytext en"
+
+__all__ = ["get_news", "write_if_changed"]
+
+
+class NewsItem(object):
+ def __init__(self, date, title, rel_link):
+ self.date = date
+ self.title = title
+ self.rel_link = rel_link
+
+def get_news(lang):
+ """Get news
+
+ @param lang: langauge
+ @type lang: a string 'en' or 'ru'
+ @return: a tuple of (lnaguge-dependent header, a list of new items)
+
+ """
+ news_tmpl_file = open("news.tmpl-%s" % lang, 'r')
+ header = news_tmpl_file.read()
+ news_tmpl_file.close()
+
+ news_items_file = open("news_%s" % lang, 'r')
+ news_text = news_items_file.read()
+ news_items_file.close()
+
+ news_items = []
+ for line in news_text.split('\n'):
+ if not line: continue
+ date, rel_link, title = line.split(None, 2)
+ news_items.append(NewsItem(date, title, rel_link))
+
+ return header, news_items
+
+
+def write_if_changed(filename, new_text):
+ try:
+ infile = open(filename, 'r')
+ old_text = infile.read()
+ infile.close()
+ except IOError:
+ old_text = None
+
+ if old_text <> new_text:
+ print "Writing", filename
+ outfile = open(filename, 'w')
+ outfile.write(new_text)
+ outfile.close()