From c6969e2089810b4221105ff211fa6f79c4e200ed Mon Sep 17 00:00:00 2001 From: =?utf8?q?Stefan=20K=C3=B6gl?= Date: Sun, 14 Apr 2013 10:22:46 +0200 Subject: [PATCH] store creation time for podcasts, episode, podcast lists --- mygpo/api/advanced/lists.py | 3 +++ mygpo/core/models.py | 2 ++ mygpo/db/couchdb/episode.py | 1 + mygpo/db/couchdb/podcast.py | 3 +++ mygpo/share/models.py | 1 + mygpo/share/views.py | 3 +++ 6 files changed, 13 insertions(+) diff --git a/mygpo/api/advanced/lists.py b/mygpo/api/advanced/lists.py index 8dd2d91b..5a3c6e99 100644 --- a/mygpo/api/advanced/lists.py +++ b/mygpo/api/advanced/lists.py @@ -16,6 +16,7 @@ # from functools import partial +from datetime import datetime from django.http import HttpResponse, HttpResponseBadRequest, \ HttpResponseForbidden @@ -26,6 +27,7 @@ from django.utils.text import slugify from django.views.decorators.cache import never_cache from django.http import Http404 +from mygpo.utils import get_timestamp from mygpo.api.advanced.directory import podcast_data from mygpo.api.httpresponse import JsonResponse from mygpo.share.models import PodcastList @@ -71,6 +73,7 @@ def create(request, username, format): podcast_ids = map(Podcast.get_id, podcasts) plist = PodcastList() + plist.created_timestamp = get_timestamp(datetime.utcnow()) plist.title = title plist.slug = slug plist.user = request.user._id diff --git a/mygpo/core/models.py b/mygpo/core/models.py index 646d508b..81597804 100644 --- a/mygpo/core/models.py +++ b/mygpo/core/models.py @@ -60,6 +60,7 @@ class Episode(Document, SlugMixin, OldIdMixin): listeners = IntegerProperty() content_types = StringListProperty() flattr_url = StringProperty() + created_timestamp = IntegerProperty() @@ -171,6 +172,7 @@ class Podcast(Document, SlugMixin, OldIdMixin): random_key = FloatProperty(default=random) flattr_url = StringProperty() outdated = BooleanProperty(default=False) + created_timestamp = IntegerProperty() diff --git a/mygpo/db/couchdb/episode.py b/mygpo/db/couchdb/episode.py index f03d0a1f..9bcd541e 100644 --- a/mygpo/db/couchdb/episode.py +++ b/mygpo/db/couchdb/episode.py @@ -192,6 +192,7 @@ def episode_for_podcast_id_url(podcast_id, episode_url, create=False): if create: episode = Episode() + episode.created_timestamp = get_timestamp(datetime.utcnow()) episode.podcast = podcast_id episode.urls = [episode_url] episode.save() diff --git a/mygpo/db/couchdb/podcast.py b/mygpo/db/couchdb/podcast.py index 083142ae..af5e94b5 100644 --- a/mygpo/db/couchdb/podcast.py +++ b/mygpo/db/couchdb/podcast.py @@ -1,5 +1,6 @@ from hashlib import sha1 from random import random +from datetime import datetime from restkit import RequestFailed @@ -9,6 +10,7 @@ from mygpo.core.models import Podcast, PodcastGroup, PodcastSubscriberData from mygpo.core.signals import incomplete_obj from mygpo.decorators import repeat_on_conflict from mygpo.cache import cache_result +from mygpo.utils import get_timestamp from mygpo.db.couchdb import get_main_database from mygpo.db import QueryParameterMissing from mygpo.db.couchdb.utils import multi_request_view, is_couchdb_id @@ -283,6 +285,7 @@ def podcast_for_url(url, create=False): if create: podcast = Podcast() + podcast.created_timestamp = get_timestamp(datetime.utcnow()) podcast.urls = [url] podcast.save() incomplete_obj.send_robust(sender=podcast) diff --git a/mygpo/share/models.py b/mygpo/share/models.py index 575267ce..3e3c20de 100644 --- a/mygpo/share/models.py +++ b/mygpo/share/models.py @@ -20,6 +20,7 @@ class PodcastList(Document, RatingMixin): podcasts = StringListProperty() user = StringProperty(required=True) random_key = FloatProperty(default=random) + created_timestamp = IntegerProperty() def get_flattr_thing(self, domain, username): diff --git a/mygpo/share/views.py b/mygpo/share/views.py index 2693ae7c..264fdc56 100644 --- a/mygpo/share/views.py +++ b/mygpo/share/views.py @@ -1,4 +1,5 @@ from functools import wraps +from datetime import datetime from django.core.urlresolvers import reverse from django.http import Http404, HttpResponseRedirect, HttpResponseForbidden @@ -13,6 +14,7 @@ from django.views.decorators.cache import cache_control from django.views.generic.base import View from django.utils.decorators import method_decorator +from mygpo.utils import get_timestamp from mygpo.core.proxy import proxy_object from mygpo.api.simple import format_podcast_list from mygpo.share.models import PodcastList @@ -134,6 +136,7 @@ def create_list(request): if plist is None: plist = PodcastList() + plist.created_timestamp = get_timestamp(datetime.utcnow()) plist.title = title plist.slug = slug plist.user = request.user._id -- 2.11.4.GIT