# -*- coding: UTF-8 -*- # vi:si:et:sw=4:sts=4:ts=4 import os from django.conf import settings from oxlib.cache import getUrlUnicode from oxlib import findRe import oxlib.net import oxweb.criterion from oxdata.lookup.models import IdMapping, getMappingByImdb def getPoster(id, url=None): dirname = os.path.join(settings.DATA_ROOT, 'criterion.com', id) filename = os.path.join(dirname, 'poster.jpg') filename = os.path.normpath(filename) if not os.path.exists(filename): if not url: data = oxweb.criterion.getData(id) url = data['posterUrl'] oxlib.net.saveUrl(url, filename) return filename 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 imdbId != m.imdb_id: m.imdb_id = imdbId m.save() except IdMapping.DoesNotExist: if imdbId: m = getMappingByImdb(imdbId) else: m = IdMapping() m.criterion_id = criterionId m.save() url = data['posterUrl'] getPoster(criterionId, url) def cron(): archivePosters() def init(): archivePosters(True)