diff --git a/sitemap/iso8601.py b/sitemap/iso8601.py index a51be3e..aac7262 100755 --- a/sitemap/iso8601.py +++ b/sitemap/iso8601.py @@ -43,7 +43,7 @@ class FixedOffset(tzinfo): """Fixed offset in hours and minutes from UTC """ - def __init__(self, offset_hours, offset_minutes, name): + def set(self, offset_hours, offset_minutes, name): self.__offset = timedelta(hours=offset_hours, minutes=offset_minutes) self.__name = name @@ -76,7 +76,9 @@ def parse_timezone(tzstring, default_timezone=UTC): if prefix == "-": hours = -hours minutes = -minutes - return FixedOffset(hours, minutes, tzstring) + offset = FixedOffset() + offset.set(hours, minutes, tzstring) + return offset def parse_date(datestring, default_timezone=UTC): """Parses ISO 8601 dates into datetime objects diff --git a/sitemap/sitemapindex.py b/sitemap/sitemapindex.py index 644e54d..c00012b 100644 --- a/sitemap/sitemapindex.py +++ b/sitemap/sitemapindex.py @@ -1,4 +1,4 @@ - +import sys from lxml import etree from urllib import urlopen from cStringIO import StringIO @@ -7,6 +7,22 @@ from urlset import * from exceptions import * +def generate_sitemapindex(sitemaps,out=sys.stdout): + sitemapindex = etree.Element("sitemapindex",xmlns="http://www.sitemaps.org/schemas/sitemap/0.9") + for map in sitemaps: + sitemap = etree.Element("sitemap") + loc = etree.Element("loc") + lastmod = etree.Element("lastmod") + loc.text = map['loc'] + sitemap.append(loc) + if map.has_key('lastmod'): + lastmod.text = map['lastmod'].isoformat() + sitemap.append(lastmod) + sitemapindex.append(sitemap) + out.write(etree.tostring(sitemapindex,xml_declaration=True,pretty_print=True,encoding="UTF-8")) + + + class SitemapIndex(object): @staticmethod