Esempio n. 1
0
    def reassign_episodes(self, podcast1, podcast2):

        logger.info("Re-assigning episodes of %s into %s", podcast2, podcast1)

        # re-assign episodes to new podcast
        # if necessary, they will be merged later anyway
        for e in episodes_for_podcast_uncached(podcast2):
            self.actions["reassign-episode"] += 1

            for s in all_episode_states(e):
                self.actions["reassign-episode-state"] += 1

                update_episode_state_object(s, podcast1.get_id())

            self._save_episode(e=e, podcast1=podcast1)
Esempio n. 2
0
    def merge_states(self, episode, episode2):

        key = lambda x: x.user
        states1 = sorted(all_episode_states(self.episode1), key=key)
        states2 = sorted(all_episode_states(self.episode2), key=key)

        logger.info("Merging %d episode states of %s into %s", len(states2), episode2, episode)

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

            if state == state2:
                continue

            if state is None:
                self.actions["move-episode-state"] += 1
                update_episode_state_object(state2, self.episode1.podcast, self.episode1._id)

            elif state2 is None:
                continue

            else:
                esm = EpisodeStateMerger(state, state2, self.actions)
                esm.merge()