From 67e9071c3f036b2914fbfb559e47c38bd479fb35 Mon Sep 17 00:00:00 2001 From: j <0x006A@0x2620.org> Date: Mon, 13 Jul 2009 10:29:42 +0200 Subject: [PATCH] getMappingByImdb --- criterion/cache.py | 15 +++++++-------- lookup/models.py | 9 +++++++++ 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/criterion/cache.py b/criterion/cache.py index 91c670c..cf8d8fb 100644 --- a/criterion/cache.py +++ b/criterion/cache.py @@ -8,7 +8,7 @@ from oxlib import findRe import oxlib.net import oxweb.criterion -from oxdata.lookup.models import IdMapping +from oxdata.lookup.models import IdMapping, getMappingByImdb def getPoster(id, url=None): @@ -29,17 +29,16 @@ def getPoster(id, url=None): def archivePosters(init=False): for criterionId in oxweb.criterion.getIds(): + data = oxweb.criterion.getData(criterionId) + imdbId = data['imdbId'] try: m = IdMapping.objects.get(criterion_id=criterionId) + if imdbId and imdb != m.imdb_id: + m.imdb_id = imdbId + m.save() except IdMapping.DoesNotExist: - data = oxweb.criterion.getData(criterionId) - imdbId = data['imdbId'] if imdbId: - try: - m = IdMapping.objects.get(imdb_id=imdbId) - except IdMapping.DoesNotExist: - m = IdMapping() - m.imdb_id = imdbId + m = getMappingByImdb(imdbId) else: m = IdMapping() m.criterion_id = criterionId diff --git a/lookup/models.py b/lookup/models.py index 6c30297..81df239 100644 --- a/lookup/models.py +++ b/lookup/models.py @@ -9,6 +9,15 @@ import simplejson import oxweb.wikipedia +def getMappingByImdb(imdb_id): + try: + m = IdMapping.objects.get(imdb_id=imdb_id) + except IdMapping.DoesNotExist: + m = IdMapping() + m.imdb_id = imdb_id + m.save() + return m + class IdMapping(models.Model): created = models.DateTimeField(auto_now_add=True) modified = models.DateTimeField(auto_now=True)