From 00b979c5732af6189bb75c940d5dace5dc9e80e4 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Stefan=20K=C3=B6gl?= Date: Sun, 16 Sep 2012 15:34:58 +0200 Subject: [PATCH] add and use FavoritesFeed.get_public_url(domain) --- mygpo/share/views.py | 20 ++++++++++++-------- mygpo/userfeeds/feeds.py | 5 +++++ mygpo/web/views/episode.py | 8 +++++--- 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/mygpo/share/views.py b/mygpo/share/views.py index 1bc2f06d..79c29db0 100644 --- a/mygpo/share/views.py +++ b/mygpo/share/views.py @@ -21,6 +21,7 @@ from mygpo.users.models import User from mygpo.directory.views import search as directory_search from mygpo.decorators import repeat_on_conflict from mygpo.data.feeddownloader import update_podcasts +from mygpo.userfeeds.feeds import FavoritesFeed @@ -206,10 +207,11 @@ class ShareFavorites(View): @method_decorator(cache_control(private=True)) @method_decorator(login_required) def get(self, request): + user = request.user + favfeed = FavoritesFeed(user) site = RequestSite(request) - - feed_url = 'http://%s%s' % (site.domain, reverse('favorites-feed', args=[request.user.username])) + feed_url = site.get_public_url(site.domain) podcast = Podcast.for_url(feed_url) @@ -255,9 +257,9 @@ class FavoritesFeedCreateEntry(View): def post(self, request): user = request.user - #TODO: move into FavoritesFeed class + feed = favfeed(user) site = RequestSite(request) - feed_url = 'http://%s%s' % (site.domain, reverse('favorites-feed', args=[user.username])) + feed_url = feed.get_public_url(site.domain) podcast = Podcast.for_url(feed_url, create=True) @@ -272,13 +274,15 @@ class FavoritesFeedCreateEntry(View): @login_required def overview(request): + user = request.user site = RequestSite(request) - subscriptions_token = request.user.get_token('subscriptions_token') - userpage_token = request.user.get_token('userpage_token') - favfeed_token = request.user.get_token('favorite_feeds_token') + subscriptions_token = user.get_token('subscriptions_token') + userpage_token = user.get_token('userpage_token') + favfeed_token = user.get_token('favorite_feeds_token') - favfeed_url = 'http://%s%s' % (site.domain, reverse('favorites-feed', args=[request.user.username])) + favfeed = FavoritesFeed(user) + favfeed_url = favfeed.get_public_url(site.domain) favfeed_podcast = Podcast.for_url(favfeed_url) return render(request, 'share/overview.html', { diff --git a/mygpo/userfeeds/feeds.py b/mygpo/userfeeds/feeds.py index 4e247322..cfe6836f 100644 --- a/mygpo/userfeeds/feeds.py +++ b/mygpo/userfeeds/feeds.py @@ -1,6 +1,9 @@ +from django.core.urlresolvers import reverse + from mygpo.api import backend + class FavoriteFeed(): def __init__(self, user): @@ -23,3 +26,5 @@ class FavoriteFeed(): else: return '' + def get_public_url(self, domain): + return 'http://%s%s' % (domain, reverse('favorites-feed', args=[self.user.username])) diff --git a/mygpo/web/views/episode.py b/mygpo/web/views/episode.py index 209dabdf..ea258b57 100644 --- a/mygpo/web/views/episode.py +++ b/mygpo/web/views/episode.py @@ -169,11 +169,12 @@ def toggle_favorite(request, episode): @cache_control(private=True) @login_required def list_favorites(request): + user = request.user site = RequestSite(request) - episodes = backend.get_favorites(request.user) + episodes = backend.get_favorites(user) - recently_listened = request.user.get_latest_episodes() + recently_listened = user.get_latest_episodes() podcast_ids = [episode.podcast for episode in episodes + recently_listened] podcasts = get_to_dict(Podcast, podcast_ids, Podcast.get_id) @@ -181,7 +182,8 @@ def list_favorites(request): recently_listened = fetch_episode_data(recently_listened, podcasts=podcasts) episodes = fetch_episode_data(episodes, podcasts=podcasts) - feed_url = 'http://%s/%s' % (site.domain, reverse('favorites-feed', args=[request.user.username])) + favfeed = FavoritesFeed(user) + feed_url = favfeed.get_public_url(site.domain) podcast = Podcast.for_url(feed_url) -- 2.11.4.GIT