Compare commits
No commits in common. "6d968d54cc6065b1b78de80845bab217e6b9406a" and "868a401553004d6e350b8be2d6bd62c410bb3b5c" have entirely different histories.
6d968d54cc
...
868a401553
2 changed files with 54 additions and 55 deletions
|
|
@ -31,11 +31,11 @@ EXTENSIONS = {
|
||||||
'video': [
|
'video': [
|
||||||
'3gp',
|
'3gp',
|
||||||
'avi', 'divx', 'dv', 'flv', 'm2t', 'm2ts', 'm2v', 'm4v', 'mkv', 'mov', 'mp4',
|
'avi', 'divx', 'dv', 'flv', 'm2t', 'm2ts', 'm2v', 'm4v', 'mkv', 'mov', 'mp4',
|
||||||
'mpeg', 'mpg', 'mts', 'ogm', 'ogv', 'vob', 'webm', 'wmv', 'asf',
|
'mpeg', 'mpg', 'mts', 'ogm', 'ogv', 'rm', 'rmvb', 'vob', 'webm', 'wmv', 'asf',
|
||||||
'mod', 'tod', # http://en.wikipedia.org/wiki/MOD_and_TOD
|
'mod', 'tod', # http://en.wikipedia.org/wiki/MOD_and_TOD
|
||||||
'mxf', 'ts',
|
'mxf', 'ts',
|
||||||
'dat', # VOD files
|
'dat', # VOD files
|
||||||
'rm', 'rmvb', # Real Media
|
'rm', # Real Media
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
105
ox/web/imdb.py
105
ox/web/imdb.py
|
|
@ -158,6 +158,15 @@ class Imdb(SiteParser):
|
||||||
'type': 'list'
|
'type': 'list'
|
||||||
},
|
},
|
||||||
'country': zebra_list('Country', more=['<a.*?>(.*?)</a>']),
|
'country': zebra_list('Country', more=['<a.*?>(.*?)</a>']),
|
||||||
|
'creator': {
|
||||||
|
'page': '',
|
||||||
|
're': [
|
||||||
|
'<div class="credit_summary_item">.*?<h4.*?>Creator.?:</h4>(.*?)</div>',
|
||||||
|
'<a href="/name/.*?>(.*?)</a>',
|
||||||
|
lambda ll: strip_tags(ll)
|
||||||
|
],
|
||||||
|
'type': 'list'
|
||||||
|
},
|
||||||
'director': reference_section('directors'),
|
'director': reference_section('directors'),
|
||||||
'editor': reference_section('editors'),
|
'editor': reference_section('editors'),
|
||||||
'composer': reference_section('composers'),
|
'composer': reference_section('composers'),
|
||||||
|
|
@ -320,8 +329,6 @@ class Imdb(SiteParser):
|
||||||
}
|
}
|
||||||
|
|
||||||
def read_url(self, url, timeout):
|
def read_url(self, url, timeout):
|
||||||
if self.debug:
|
|
||||||
print(url)
|
|
||||||
if url not in self._cache:
|
if url not in self._cache:
|
||||||
self._cache[url] = read_url(url, timeout=timeout, unicode=True)
|
self._cache[url] = read_url(url, timeout=timeout, unicode=True)
|
||||||
return self._cache[url]
|
return self._cache[url]
|
||||||
|
|
@ -444,6 +451,49 @@ class Imdb(SiteParser):
|
||||||
if 'episodeTitle' in self:
|
if 'episodeTitle' in self:
|
||||||
self['episodeTitle'] = re.sub('Episode \#\d+\.\d+', '', self['episodeTitle'])
|
self['episodeTitle'] = re.sub('Episode \#\d+\.\d+', '', self['episodeTitle'])
|
||||||
|
|
||||||
|
if 'series' in self:
|
||||||
|
series = Imdb(self['series'], timeout=timeout)
|
||||||
|
self['seriesTitle'] = series['title']
|
||||||
|
if 'episodeTitle' in self:
|
||||||
|
self['seriesTitle'] = series['title']
|
||||||
|
if 'season' in self and 'episode' in self:
|
||||||
|
self['title'] = "%s (S%02dE%02d) %s" % (
|
||||||
|
self['seriesTitle'], self['season'], self['episode'], self['episodeTitle'])
|
||||||
|
else:
|
||||||
|
self['title'] = "%s (S01) %s" % (self['seriesTitle'], self['episodeTitle'])
|
||||||
|
self['season'] = 1
|
||||||
|
self['title'] = self['title'].strip()
|
||||||
|
if 'director' in self:
|
||||||
|
self['episodeDirector'] = self['director']
|
||||||
|
|
||||||
|
if 'creator' not in series and 'director' in series:
|
||||||
|
series['creator'] = series['director']
|
||||||
|
if len(series['creator']) > 10:
|
||||||
|
series['creator'] = series['director'][:1]
|
||||||
|
|
||||||
|
for key in ['creator', 'country']:
|
||||||
|
if key in series:
|
||||||
|
self[key] = series[key]
|
||||||
|
|
||||||
|
if 'year' in series:
|
||||||
|
self['seriesYear'] = series['year']
|
||||||
|
if 'year' not in self:
|
||||||
|
self['year'] = series['year']
|
||||||
|
|
||||||
|
if 'year' in self:
|
||||||
|
self['episodeYear'] = self['year']
|
||||||
|
if 'creator' in self:
|
||||||
|
self['seriesDirector'] = self['creator']
|
||||||
|
if 'originalTitle' in self:
|
||||||
|
del self['originalTitle']
|
||||||
|
else:
|
||||||
|
for key in ('seriesTitle', 'episodeTitle', 'season', 'episode'):
|
||||||
|
if key in self:
|
||||||
|
del self[key]
|
||||||
|
if 'creator' in self:
|
||||||
|
if 'director' in self:
|
||||||
|
self['episodeDirector'] = self['director']
|
||||||
|
self['director'] = self['creator']
|
||||||
|
|
||||||
#make lists unique but keep order
|
#make lists unique but keep order
|
||||||
for key in ('director', 'language'):
|
for key in ('director', 'language'):
|
||||||
|
|
@ -531,57 +581,6 @@ class Imdb(SiteParser):
|
||||||
series_credit = [c for c in self['credits'] if c.get('deparment') == deparment]
|
series_credit = [c for c in self['credits'] if c.get('deparment') == deparment]
|
||||||
if series_credit:
|
if series_credit:
|
||||||
self[key] = [c['name'] for c in series_credit]
|
self[key] = [c['name'] for c in series_credit]
|
||||||
creator = []
|
|
||||||
for c in self.get('credits', []):
|
|
||||||
if '(created by)' in c['roles'] and c['name'] not in creator:
|
|
||||||
creator.append(c['name'])
|
|
||||||
if creator:
|
|
||||||
self['creator'] = creator
|
|
||||||
|
|
||||||
if 'series' in self:
|
|
||||||
series = Imdb(self['series'], timeout=timeout)
|
|
||||||
self['seriesTitle'] = series['title']
|
|
||||||
if 'episodeTitle' in self:
|
|
||||||
self['seriesTitle'] = series['title']
|
|
||||||
if 'season' in self and 'episode' in self:
|
|
||||||
self['title'] = "%s (S%02dE%02d) %s" % (
|
|
||||||
self['seriesTitle'], self['season'], self['episode'], self['episodeTitle'])
|
|
||||||
else:
|
|
||||||
self['title'] = "%s (S01) %s" % (self['seriesTitle'], self['episodeTitle'])
|
|
||||||
self['season'] = 1
|
|
||||||
self['title'] = self['title'].strip()
|
|
||||||
if 'director' in self:
|
|
||||||
self['episodeDirector'] = self['director']
|
|
||||||
|
|
||||||
if 'creator' not in series and 'director' in series:
|
|
||||||
series['creator'] = series['director']
|
|
||||||
if len(series['creator']) > 10:
|
|
||||||
series['creator'] = series['director'][:1]
|
|
||||||
|
|
||||||
for key in ['creator', 'country']:
|
|
||||||
if key in series:
|
|
||||||
self[key] = series[key]
|
|
||||||
|
|
||||||
if 'year' in series:
|
|
||||||
self['seriesYear'] = series['year']
|
|
||||||
if 'year' not in self:
|
|
||||||
self['year'] = series['year']
|
|
||||||
|
|
||||||
if 'year' in self:
|
|
||||||
self['episodeYear'] = self['year']
|
|
||||||
if 'creator' in self:
|
|
||||||
self['seriesDirector'] = self['creator']
|
|
||||||
if 'originalTitle' in self:
|
|
||||||
del self['originalTitle']
|
|
||||||
else:
|
|
||||||
for key in ('seriesTitle', 'episodeTitle', 'season', 'episode'):
|
|
||||||
if key in self:
|
|
||||||
del self[key]
|
|
||||||
if 'creator' in self:
|
|
||||||
if 'director' in self:
|
|
||||||
self['episodeDirector'] = self['director']
|
|
||||||
self['director'] = self['creator']
|
|
||||||
|
|
||||||
|
|
||||||
class ImdbCombined(Imdb):
|
class ImdbCombined(Imdb):
|
||||||
def __init__(self, id, timeout=-1):
|
def __init__(self, id, timeout=-1):
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue