diff --git a/make_post_sell/views/feeds.py b/make_post_sell/views/feeds.py index 0c310f5..f0a119d 100644 --- a/make_post_sell/views/feeds.py +++ b/make_post_sell/views/feeds.py @@ -14,12 +14,20 @@ from pyramid.view import view_config from ..models.product import Product -def timestamp_to_iso8601(timestamp): - """Convert millisecond timestamp to ISO 8601 format.""" +def timestamp_to_sitemap_date(timestamp): + """Convert millisecond timestamp to YYYY-MM-DD format for sitemaps.""" if timestamp: - dt = datetime.fromtimestamp(timestamp / 1000.0) - return dt.strftime("%Y-%m-%dT%H:%M:%S+00:00") - return datetime.utcnow().strftime("%Y-%m-%dT%H:%M:%S+00:00") + dt = datetime.utcfromtimestamp(timestamp / 1000.0) + return dt.strftime("%Y-%m-%d") + return datetime.utcnow().strftime("%Y-%m-%d") + + +def timestamp_to_atom_datetime(timestamp): + """Convert millisecond timestamp to ISO 8601 format for Atom feeds.""" + if timestamp: + dt = datetime.utcfromtimestamp(timestamp / 1000.0) + return dt.strftime("%Y-%m-%dT%H:%M:%SZ") + return datetime.utcnow().strftime("%Y-%m-%dT%H:%M:%SZ") def timestamp_to_rfc822(timestamp): @@ -58,14 +66,14 @@ def build_sitemap_xml(request, shop, products, content): # Shop home page url = SubElement(urlset, "url") SubElement(url, "loc").text = shop.absolute_url(request) - SubElement(url, "lastmod").text = timestamp_to_iso8601(shop.updated_timestamp) + SubElement(url, "lastmod").text = timestamp_to_sitemap_date(shop.updated_timestamp) SubElement(url, "changefreq").text = "weekly" SubElement(url, "priority").text = "1.0" # Shop about page url = SubElement(urlset, "url") SubElement(url, "loc").text = shop.absolute_about_url(request) - SubElement(url, "lastmod").text = timestamp_to_iso8601(shop.updated_timestamp) + SubElement(url, "lastmod").text = timestamp_to_sitemap_date(shop.updated_timestamp) SubElement(url, "changefreq").text = "monthly" SubElement(url, "priority").text = "0.5" @@ -73,7 +81,7 @@ def build_sitemap_xml(request, shop, products, content): if shop.terms_of_service_raw: url = SubElement(urlset, "url") SubElement(url, "loc").text = shop.absolute_terms_url(request) - SubElement(url, "lastmod").text = timestamp_to_iso8601(shop.updated_timestamp) + SubElement(url, "lastmod").text = timestamp_to_sitemap_date(shop.updated_timestamp) SubElement(url, "changefreq").text = "yearly" SubElement(url, "priority").text = "0.3" @@ -81,7 +89,7 @@ def build_sitemap_xml(request, shop, products, content): if shop.privacy_policy_raw: url = SubElement(urlset, "url") SubElement(url, "loc").text = shop.absolute_privacy_policy_url(request) - SubElement(url, "lastmod").text = timestamp_to_iso8601(shop.updated_timestamp) + SubElement(url, "lastmod").text = timestamp_to_sitemap_date(shop.updated_timestamp) SubElement(url, "changefreq").text = "yearly" SubElement(url, "priority").text = "0.3" @@ -89,7 +97,7 @@ def build_sitemap_xml(request, shop, products, content): for product in products: url = SubElement(urlset, "url") SubElement(url, "loc").text = product.absolute_url(request) - SubElement(url, "lastmod").text = timestamp_to_iso8601(product.updated_timestamp) + SubElement(url, "lastmod").text = timestamp_to_sitemap_date(product.updated_timestamp) SubElement(url, "changefreq").text = "weekly" SubElement(url, "priority").text = "0.8" @@ -97,7 +105,7 @@ def build_sitemap_xml(request, shop, products, content): for item in content: url = SubElement(urlset, "url") SubElement(url, "loc").text = item.absolute_url(request) - SubElement(url, "lastmod").text = timestamp_to_iso8601(item.updated_timestamp) + SubElement(url, "lastmod").text = timestamp_to_sitemap_date(item.updated_timestamp) SubElement(url, "changefreq").text = "weekly" SubElement(url, "priority").text = "0.7" @@ -150,7 +158,7 @@ def build_atom_xml(request, shop, products, content): SubElement(feed, "title").text = shop.name SubElement(feed, "id").text = shop.absolute_url(request) - SubElement(feed, "updated").text = timestamp_to_iso8601(shop.updated_timestamp) + SubElement(feed, "updated").text = timestamp_to_atom_datetime(shop.updated_timestamp) # Self link self_link = SubElement(feed, "link") @@ -177,8 +185,8 @@ def build_atom_xml(request, shop, products, content): entry = SubElement(feed, "entry") SubElement(entry, "title").text = item_obj.title SubElement(entry, "id").text = item_obj.absolute_url(request) - SubElement(entry, "updated").text = timestamp_to_iso8601(item_obj.updated_timestamp) - SubElement(entry, "published").text = timestamp_to_iso8601(item_obj.created_timestamp) + SubElement(entry, "updated").text = timestamp_to_atom_datetime(item_obj.updated_timestamp) + SubElement(entry, "published").text = timestamp_to_atom_datetime(item_obj.created_timestamp) link = SubElement(entry, "link") link.set("href", item_obj.absolute_url(request))