diff options
author | Zhiming Wang <zmwangx@gmail.com> | 2015-05-13 13:03:59 -0700 |
---|---|---|
committer | Zhiming Wang <zmwangx@gmail.com> | 2015-05-13 13:03:59 -0700 |
commit | 73516a15fe5a0142256ef46e279f9dd9b407e900 (patch) | |
tree | 3537e41ab8dc894cde644b5c380830369d9cb3f7 /pyblog | |
parent | 8877f4d3b687538bec285e359236f839905ab270 (diff) | |
download | my_new_personal_website-73516a15fe5a0142256ef46e279f9dd9b407e900.tar.xz my_new_personal_website-73516a15fe5a0142256ef46e279f9dd9b407e900.zip |
sitemap.xml: correct <lastmod> datetime format
coreutils
date --iso-8601=s
generates output like
2015-05-13T13:04:24-0700
while the correct format (at least the format Python
datetime.datetime.isoformat() prints, and the format Google expects) is
2015-05-13T13:04:24-07:00
Account for this problem. I didn't read the RFC, so not sure.
Diffstat (limited to 'pyblog')
-rwxr-xr-x | pyblog | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -267,7 +267,7 @@ def make_sitemap_url_element(link, updated=None, changefreq=None, priority=None) link : str or xml.etree.ElementTree.Element If using an xml.etree.ElementTree.Element element, then it shall be an atom:link element, e.g., <link href="http://zmwangx.github.io/"/>. - updated : str or xml.etree.ElementTree.Element, optional + updated : datetime or xml.etree.ElementTree.Element, optional If using an xml.etree.ElementTree.Element element, then it shall be an atom:updated element, e.g., <updated>2015-05-05T22:38:42-07:00</updated>. @@ -282,7 +282,8 @@ def make_sitemap_url_element(link, updated=None, changefreq=None, priority=None) urlelem.append(loc) if updated is not None: lastmod = ET.Element("lastmod") - lastmod.text = updated.text if isinstance(updated, ET.Element) else updated + lastmod.text = (updated.text if isinstance(updated, ET.Element) + else updated.isoformat()) urlelem.append(lastmod) if changefreq is not None: changefreq_elem = ET.Element("changefreq") @@ -313,7 +314,7 @@ def generate_sitemap(feed): if soup.article.footer is not None: updated_tag = soup.article.footer.find(attrs={"class": "updated"}) if updated_tag is not None: - updated = updated_tag.text + updated = dateutil.parser.parse(updated_tag.text) sitemap.append(make_sitemap_url_element(link, updated, "monthly", 0.9)) # blog entries @@ -323,6 +324,7 @@ def generate_sitemap(feed): with open(sitemappath, "w", encoding="utf-8") as sitemapfile: sitemapfile.write('<?xml version="1.0" encoding="UTF-8"?>\n%s\n' % ET.tostring(sitemap).decode('utf-8')) + sys.stderr.write("wrote sitemap.xml\n") def generate_index_and_feed(): |