def episode_settings(user, url, podcast_url): episode = Episode.for_podcast_url(podcast_url, url) if episode is None: raise Http404 episode_state = episode.get_user_state(user) return episode_state, episode_state
def for_ref_urls(cls, user, podcast_url, episode_url): import hashlib cache_key = 'episode-state-%s-%s-%s' % (user._id, hashlib.md5(podcast_url).hexdigest(), hashlib.md5(episode_url).hexdigest()) state = cache.get(cache_key) if state: return state res = cls.view('episode_states/by_ref_urls', key = [user._id, podcast_url, episode_url], limit=1, include_docs=True) if res: state = res.first() state.ref_url = episode_url state.podcast_ref_url = podcast_url cache.set(cache_key, state, 60*60) return state else: episode = Episode.for_podcast_url(podcast_url, episode_url, create=True) return episode.get_user_state(user)