oxdata/oxdata/lookup/cache.py

60 lines
2.0 KiB
Python

# -*- coding: UTF-8 -*-
# vi:si:et:sw=4:sts=4:ts=4
import ox.web.criterion
import ox.web.imdb
import ox.web.impawards
import models
from poster.models import PosterCache
import modules
def addPoster(m, url, site, site_id):
if PosterCache.objects.all().filter(url=url).count() == 0:
p = PosterCache(url=url, site=site, site_id=site_id, movie_id=m)
p.save()
def get_ids():
for id in ox.web.impawards.get_ids():
if id in (
'2005/night',
'2007/hands_of_the_dragon',
'2008/nosferatu_project',
'2009/murph',
'1962/well_bury_you',
'1974/matter_of_winning',
'2006/last_time_i_trust_you_with_anything',
):
continue
if models.MovieId.objects.all().filter(impawards_id=id).count() == 0:
data = ox.web.impawards.get_data(id)
if data and 'imdbId' in data:
m = models.get_movie_id(data['imdbId'])
if m:
if not m.impawards_id:
print 'impawards', ox.web.impawards.get_url(id)
m.impawards_id = id
m.save()
for poster in data['posters']:
addPoster(m, poster, 'impawards.com', m.imdb_id)
else:
print 'missing impawards', ox.web.impawards.get_url(id)
for id in ox.web.criterion.get_ids():
if id in ('626', '835'):
continue
if models.MovieId.objects.all().filter(criterion_id=id).count() == 0:
print 'criterion', id
data = ox.web.criterion.get_data(id, get_imdb=True)
if data and 'imdbId' in data:
m = models.get_movie_id(data['imdbId'])
if not m.criterion_id:
m.criterion_id = id
m.save()
addPoster(m, poster, 'criterion.com', m.criterion_id)
else:
print data['title'], "no imdbId"
modules.get_ids.run()