From 6b89f13765a4abd3d85219d029e6eb5e918c9fe7 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Stefan=20K=C3=B6gl?= Date: Sun, 27 Oct 2013 17:15:30 +0100 Subject: [PATCH] Log multiple podcast results for the same URL --- mygpo/db/couchdb/podcast.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/mygpo/db/couchdb/podcast.py b/mygpo/db/couchdb/podcast.py index 46999eb5..a8dba81e 100644 --- a/mygpo/db/couchdb/podcast.py +++ b/mygpo/db/couchdb/podcast.py @@ -4,6 +4,7 @@ from datetime import datetime from collections import Counter from restkit import RequestFailed +from couchdbkit import MultipleResultsFound from django.core.cache import cache @@ -17,6 +18,9 @@ from mygpo.db.couchdb import get_main_database, get_userdata_database, \ from mygpo.db import QueryParameterMissing from mygpo.db.couchdb.utils import multi_request_view, is_couchdb_id +import logging +logger = logging.getLogger(__name__) + def podcast_slugs(base_slug): res = Podcast.view('podcasts/by_slug', @@ -313,14 +317,21 @@ def podcast_for_url(url, create=False): if podcast: return podcast - r = Podcast.view('podcasts/by_url', + _view = 'podcasts/by_url' + r = Podcast.view(_view, key=url, classes=[Podcast, PodcastGroup], include_docs=True ) if r: - podcast_group = r.first() + try: + podcast_group = r.one() + except MultipleResultsFound as ex: + logger.exception('Multiple results found in %s with params %s', + _view, r.params) + podcast_group = r.first() + podcast = podcast_group.get_podcast_by_url(url) if podcast.needs_update: -- 2.11.4.GIT