Beispiel #1
0
    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
Beispiel #2
0
    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)