From 3e4e41cad914564120499dae4e5316248e9884a7 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Stefan=20K=C3=B6gl?= Date: Fri, 21 Sep 2012 18:37:49 +0200 Subject: [PATCH] move another episode-states related query into module --- mygpo/db/couchdb/episode_state.py | 10 ++++++++++ mygpo/maintenance/management/commands/listening-stats.py | 13 ++----------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/mygpo/db/couchdb/episode_state.py b/mygpo/db/couchdb/episode_state.py index 90c94904..34901904 100644 --- a/mygpo/db/couchdb/episode_state.py +++ b/mygpo/db/couchdb/episode_state.py @@ -42,6 +42,16 @@ def all_episode_states(episode): +def all_podcast_episode_states(podcast): + r = EpisodeUserState.view('episode_states/by_podcast_episode', + startkey = [podcast.get_id(), None, None], + endkey = [podcast.get_id(), {}, {}], + include_docs = True + ) + return list(r) + + + @cache_result(timeout=60*60) def podcast_listener_count(episode): """ returns the number of users that have listened to this podcast """ diff --git a/mygpo/maintenance/management/commands/listening-stats.py b/mygpo/maintenance/management/commands/listening-stats.py index fccad85a..7dcf8b9c 100755 --- a/mygpo/maintenance/management/commands/listening-stats.py +++ b/mygpo/maintenance/management/commands/listening-stats.py @@ -9,6 +9,7 @@ from mygpo.core.models import Podcast, PodcastGroup from mygpo.decorators import repeat_on_conflict from mygpo.maintenance.management.podcastcmd import PodcastCommand from mygpo.db.couchdb.episode import episodes_for_podcast +from mygpo.db.couchdb.episode_state import all_podcast_episode_states class Command(PodcastCommand): @@ -45,7 +46,7 @@ class Command(PodcastCommand): episodes = episodes_for_podcast(podcast) episodes = dict((episode._id, episode.released) for episode in episodes) - for state in self.get_episode_states(podcast): + for state in all_podcast_episode_states(podcast): ep = episodes.get(state.episode, None) dl = self.first_action(state.actions, 'download') @@ -69,16 +70,6 @@ class Command(PodcastCommand): return a - @staticmethod - def get_episode_states(podcast): - r = EpisodeUserState.view('users/episode_states_by_podcast_episode', - startkey = [podcast.get_id(), None, None], - endkey = [podcast.get_id(), {}, {}], - include_docs = True - ) - return r - - def quantiles(data, intervals=100): """ http://en.wikipedia.org/wiki/Quantile -- 2.11.4.GIT