Fix #1023 - Make timestamps in API timezone aware

This commit is contained in:
Jessica Tallon 2014-11-19 10:49:42 +00:00
parent c511fc5e5e
commit 45e687fcf8
2 changed files with 16 additions and 6 deletions

View File

@ -31,6 +31,7 @@ import uuid
import re import re
from datetime import datetime from datetime import datetime
from pytz import UTC
from werkzeug.utils import cached_property from werkzeug.utils import cached_property
from mediagoblin import mg_globals from mediagoblin import mg_globals
@ -447,12 +448,14 @@ class ActivityMixin(object):
return self.content return self.content
def serialize(self, request): def serialize(self, request):
published = UTC.localize(self.published)
updated = UTC.localize(self.updated)
obj = { obj = {
"id": self.id, "id": self.id,
"actor": self.get_actor.serialize(request), "actor": self.get_actor.serialize(request),
"verb": self.verb, "verb": self.verb,
"published": self.published.isoformat(), "published": published.isoformat(),
"updated": self.updated.isoformat(), "updated": updated.isoformat(),
"content": self.content, "content": self.content,
"url": self.get_url(request), "url": self.get_url(request),
"object": self.get_object.serialize(request), "object": self.get_object.serialize(request),

View File

@ -42,6 +42,7 @@ from mediagoblin.tools.files import delete_media_files
from mediagoblin.tools.common import import_component from mediagoblin.tools.common import import_component
import six import six
from pytz import UTC
_log = logging.getLogger(__name__) _log = logging.getLogger(__name__)
@ -212,8 +213,10 @@ class User(Base, UserMixin):
def serialize(self, request): def serialize(self, request):
published = UTC.localize(self.created)
user = { user = {
"id": "acct:{0}@{1}".format(self.username, request.host), "id": "acct:{0}@{1}".format(self.username, request.host),
"oublished": published.isoformat(),
"preferredUsername": self.username, "preferredUsername": self.username,
"displayName": "{0}@{1}".format(self.username, request.host), "displayName": "{0}@{1}".format(self.username, request.host),
"objectType": self.object_type, "objectType": self.object_type,
@ -524,6 +527,8 @@ class MediaEntry(Base, MediaEntryMixin):
def serialize(self, request, show_comments=True): def serialize(self, request, show_comments=True):
""" Unserialize MediaEntry to object """ """ Unserialize MediaEntry to object """
author = self.get_uploader author = self.get_uploader
published = UTC.localize(self.created)
updated = UTC.localize(self.created)
context = { context = {
"id": self.id, "id": self.id,
"author": author.serialize(request), "author": author.serialize(request),
@ -535,8 +540,8 @@ class MediaEntry(Base, MediaEntryMixin):
"fullImage":{ "fullImage":{
"url": request.host_url + self.original_url[1:], "url": request.host_url + self.original_url[1:],
}, },
"published": self.created.isoformat(), "published": published.isoformat(),
"updated": self.created.isoformat(), "updated": updated.isoformat(),
"pump_io": { "pump_io": {
"shared": False, "shared": False,
}, },
@ -1209,11 +1214,13 @@ class Generator(Base):
) )
def serialize(self, request): def serialize(self, request):
published = UTC.localize(self.published)
updated = UTC.localize(self.updated)
return { return {
"id": self.id, "id": self.id,
"displayName": self.name, "displayName": self.name,
"published": self.published.isoformat(), "published": published.isoformat(),
"updated": self.updated.isoformat(), "updated": updated.isoformat(),
"objectType": self.object_type, "objectType": self.object_type,
} }