Exemplo n.º 1
0
    def merge_states(self, podcast1, podcast2):
        """Merges the Podcast states that are associated with the two Podcasts.

        This should be done after two podcasts are merged
        """

        key = lambda x: x.user
        states1 = sorted(all_podcast_states(podcast1), key=key)
        states2 = sorted(all_podcast_states(podcast2), key=key)

        logger.info("Merging %d podcast states of %s into %s", len(states2), podcast2, podcast1)

        for state, state2 in utils.iterate_together([states1, states2], key):

            if state == state2:
                continue

            if state is None:
                self.actions["move-podcast-state"] += 1
                update_podcast_state_podcast(state2, podcast1.get_id(), podcast1.url)

            elif state2 is None:
                continue

            else:
                psm = PodcastStateMerger(state, state2, self.actions)
                psm.merge()
Exemplo n.º 2
0
    def add_podcast_recursive(self, podcast, docs):
        self.add_podcast(podcast, docs)

        progress(0, len(docs), podcast, stream=sys.stderr)

        states = all_podcast_states(podcast)
        for state in states:
            self.add_podcast_state(state, docs)
            progress(0, len(docs), state, stream=sys.stderr)

        # Episodes
        for episode in episodes_for_podcast(podcast.get_podcast()):
            self.add_episode(episode, docs)
            progress(0, len(docs), episode, stream=sys.stderr)

            states = all_episode_states(episode)
            for state in states:
                self.add_episode_state(state, docs)
                progress(0, len(docs), state, stream=sys.stderr)