From acb65b77af76267f8056a3fb89172d3b82db7820 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20HUBSCHER?= Date: Tue, 16 Aug 2011 11:40:08 +0200 Subject: [PATCH] GMT Time in ATOM feeds --- pelican/utils.py | 9 +++++++++ pelican/writers.py | 4 ++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/pelican/utils.py b/pelican/utils.py index 2fb76670..ed9d0566 100644 --- a/pelican/utils.py +++ b/pelican/utils.py @@ -2,6 +2,8 @@ import re import os import shutil +import time +import calendar from datetime import datetime from codecs import open as _open from itertools import groupby @@ -222,3 +224,10 @@ def files_changed(path, extensions): LAST_MTIME = mtime return True return False + +def local_to_utc(t): + "Convert article time to UTC time for ATOM feeds" + secs = time.mktime(t) + gmtime = list(time.gmtime(secs)) + gmtime[8] = 1 + return datetime.fromtimestamp(time.mktime(gmtime)) diff --git a/pelican/writers.py b/pelican/writers.py index 4685cff9..9d21b976 100644 --- a/pelican/writers.py +++ b/pelican/writers.py @@ -7,7 +7,7 @@ from functools import partial import locale from feedgenerator import Atom1Feed, Rss201rev2Feed -from pelican.utils import get_relative_path +from pelican.utils import get_relative_path, local_to_utc from pelican.paginator import Paginator from pelican.log import * @@ -37,7 +37,7 @@ class Writer(object): description=item.content, categories=item.tags if hasattr(item, 'tags') else None, author_name=getattr(item, 'author', 'John Doe'), - pubdate=item.date) + pubdate=local_to_utc(item.date.timetuple())) def write_feed(self, elements, context, filename=None, feed_type='atom'): """Generate a feed with the list of articles provided