fix
This commit is contained in:
parent
8812c99155
commit
727ea66f35
3 changed files with 33 additions and 44 deletions
|
@ -20,18 +20,10 @@ def getMovieIdByImdbId(imdb_id):
|
||||||
'0377059': '0343663',
|
'0377059': '0343663',
|
||||||
'0426560': '0088000',
|
'0426560': '0088000',
|
||||||
}.get(imdb_id, imdb_id)
|
}.get(imdb_id, imdb_id)
|
||||||
try:
|
m, created = MovieId.objects.get_or_create(imdb_id=imdb_id)
|
||||||
m = MovieId.objects.get(imdb_id=imdb_id)
|
if created:
|
||||||
except MovieId.DoesNotExist:
|
m = MovieId.objects.get(imdb_id=imdb_id)
|
||||||
#check if imdb_id actually exists on imdb
|
m.updateFromImdb()
|
||||||
if ox.cache.exists('http://www.imdb.com/title/tt%s/combined'%imdb_id):
|
|
||||||
m = MovieId()
|
|
||||||
m.imdb_id = imdb_id
|
|
||||||
m.save()
|
|
||||||
m.updateFromImdb()
|
|
||||||
else:
|
|
||||||
print imdb_id, "is not a valid id, failed loading movie"
|
|
||||||
return None
|
|
||||||
return m
|
return m
|
||||||
|
|
||||||
class MovieId(models.Model):
|
class MovieId(models.Model):
|
||||||
|
@ -79,11 +71,14 @@ class MovieId(models.Model):
|
||||||
def updateFromImdb(self):
|
def updateFromImdb(self):
|
||||||
if self.imdb_id:
|
if self.imdb_id:
|
||||||
data = ox.web.imdb.ImdbCombined(self.imdb_id)
|
data = ox.web.imdb.ImdbCombined(self.imdb_id)
|
||||||
for key in ('title', 'year', 'series_title', 'episode_title', 'season', 'episode'):
|
for key in ('title', 'year', 'seriesTitle', 'episodeTitle', 'season', 'episode'):
|
||||||
if key in data and data[key]:
|
if key in data and data[key]:
|
||||||
setattr(self, key, data.get(key, ''))
|
setattr(self, {
|
||||||
|
'seriesTitle': 'series_title',
|
||||||
|
'episodeTitle': 'episode_title',
|
||||||
|
}.get(key, key), data.get(key, ''))
|
||||||
|
|
||||||
directors = data.get('directors', [])
|
directors = data.get('director', [])
|
||||||
self.director = u', '.join(directors)
|
self.director = u', '.join(directors)
|
||||||
if not self.wikipedia_id:
|
if not self.wikipedia_id:
|
||||||
self.wikipedia_id = ox.web.wikipedia.getId(ox.web.wikipedia.getUrlByImdb(self.imdb_id))
|
self.wikipedia_id = ox.web.wikipedia.getId(ox.web.wikipedia.getUrlByImdb(self.imdb_id))
|
||||||
|
@ -93,20 +88,20 @@ class MovieId(models.Model):
|
||||||
#its most likely wrong for both in that case
|
#its most likely wrong for both in that case
|
||||||
elif MovieId.objects.filter(wikipedia_id=self.wikipedia_id).count() >= 1:
|
elif MovieId.objects.filter(wikipedia_id=self.wikipedia_id).count() >= 1:
|
||||||
self.wikipedia_id=None
|
self.wikipedia_id=None
|
||||||
if not self.oxdb_id:
|
#if not self.oxdb_id:
|
||||||
self.gen_oxdb_id()
|
# self.gen_oxdb_id()
|
||||||
self.save()
|
self.save()
|
||||||
|
|
||||||
def gen_oxdb_id(self):
|
def gen_oxdb_id(self):
|
||||||
oxid_value = u"\n".join([self.title, self.director, str(self.year)])
|
self.oxdb_id = ox.get_oxid(
|
||||||
oxid = hashlib.sha1(oxid_value.encode('utf-8')).hexdigest()
|
self.title,
|
||||||
if self.episode > -1:
|
self.director,
|
||||||
oxid_value = u"\n".join([self.series_title, "%02d" % self.season])
|
self.year or '',
|
||||||
oxid = hashlib.sha1(oxid_value.encode('utf-8')).hexdigest()[:20]
|
self.season or '',
|
||||||
oxid_value = u"\n".join(["%02d" % self.episode, self.episode_title, self.director, str(self.year)])
|
self.episode or '',
|
||||||
oxid += hashlib.sha1(oxid_value.encode('utf-8')).hexdigest()[:20]
|
self.episode_title or '',
|
||||||
self.oxdb_id = u"0x" + oxid
|
self.episode_director or [],
|
||||||
self.save()
|
self.episode_yeaer or '')
|
||||||
|
|
||||||
def suggested_name(self):
|
def suggested_name(self):
|
||||||
return normalizePath(self.title)
|
return normalizePath(self.title)
|
||||||
|
|
|
@ -58,20 +58,13 @@ class Imdb(models.Model):
|
||||||
info = ox.web.imdb.ImdbCombined(self.imdb)
|
info = ox.web.imdb.ImdbCombined(self.imdb)
|
||||||
if info:
|
if info:
|
||||||
for key in self.keys:
|
for key in self.keys:
|
||||||
ikey = {
|
if key in info:
|
||||||
'director': 'directors',
|
value = info[key]
|
||||||
'episodeTitle': 'episode_title',
|
if key == 'title' and 'seriesTitle' in info:
|
||||||
'episodeYear': 'episode_year',
|
value = info['seriesTitle']
|
||||||
'episodeDirector': 'episode_directors',
|
if isinstance(value, list):
|
||||||
}.get(key, key)
|
value = '\n'.join(value) + '\n'
|
||||||
if ikey in info:
|
setattr(self, key, value)
|
||||||
if ikey in info:
|
|
||||||
value = info[ikey]
|
|
||||||
if ikey == 'title' and 'series_title' in info:
|
|
||||||
value = info['series_title']
|
|
||||||
if isinstance(value, list):
|
|
||||||
value = '\n'.join(value) + '\n'
|
|
||||||
setattr(self, key, value)
|
|
||||||
if self.season < 0:
|
if self.season < 0:
|
||||||
self.season = None
|
self.season = None
|
||||||
if self.episode < 0:
|
if self.episode < 0:
|
||||||
|
|
|
@ -72,11 +72,12 @@ ADMIN_MEDIA_PREFIX = '/admin/media/'
|
||||||
|
|
||||||
# List of callables that know how to import templates from various sources.
|
# List of callables that know how to import templates from various sources.
|
||||||
TEMPLATE_LOADERS = (
|
TEMPLATE_LOADERS = (
|
||||||
'django.template.loaders.filesystem.load_template_source',
|
'django.template.loaders.filesystem.Loader',
|
||||||
'django.template.loaders.app_directories.load_template_source',
|
'django.template.loaders.app_directories.Loader',
|
||||||
'django.template.loaders.eggs.load_template_source',
|
'django.template.loaders.eggs.Loader',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
MIDDLEWARE_CLASSES = (
|
MIDDLEWARE_CLASSES = (
|
||||||
'django.middleware.common.CommonMiddleware',
|
'django.middleware.common.CommonMiddleware',
|
||||||
'django.contrib.sessions.middleware.SessionMiddleware',
|
'django.contrib.sessions.middleware.SessionMiddleware',
|
||||||
|
|
Loading…
Reference in a new issue