From 73fafc7cb23c5bddc3ee6a1e0671bc78c45fb31e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Stefan=20K=C3=B6gl?= Date: Sat, 18 May 2013 11:49:07 +0200 Subject: [PATCH] fix podcast merging --- mygpo/admin/tasks.py | 11 ++++++++++- mygpo/maintenance/merge.py | 6 +++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/mygpo/admin/tasks.py b/mygpo/admin/tasks.py index c7e9d8cb..2253d5ff 100644 --- a/mygpo/admin/tasks.py +++ b/mygpo/admin/tasks.py @@ -4,16 +4,25 @@ from mygpo.cel import celery from mygpo.maintenance.merge import PodcastMerger from mygpo.db.couchdb.podcast import podcasts_by_id +from celery.utils.log import get_task_logger +logger = get_task_logger(__name__) + @celery.task def merge_podcasts(podcast_ids, num_groups): """ Task to merge some podcasts""" + logger.info('merging podcast ids %s', podcast_ids) + podcasts = podcasts_by_id(podcast_ids) + logger.info('merging podcasts %s', podcasts) + actions = Counter() pm = PodcastMerger(podcasts, actions, num_groups) - pm.merge + pm.merge() + + logger.info('merging result: %s', actions) return actions, podcasts[0] diff --git a/mygpo/maintenance/merge.py b/mygpo/maintenance/merge.py index e5318ce3..ec3b79ab 100644 --- a/mygpo/maintenance/merge.py +++ b/mygpo/maintenance/merge.py @@ -52,6 +52,10 @@ class PodcastMerger(object): """ Merges the episodes according to the groups """ for n, episodes in self.groups: + + if not episodes: + continue + episode = episodes.pop(0) for ep in episodes: @@ -244,7 +248,7 @@ class PodcastStateMerger(object): state.disabled_devices = set_filter(None, state.disabled_devices, state2.disabled_devices) - state.merged_ids = set_filter(state1._id, state.merged_ids, + state.merged_ids = set_filter(state._id, state.merged_ids, [state2._id], state2.merged_ids) state.tags = set_filter(None, state.tags, state2.tags) -- 2.11.4.GIT