# -*- coding: utf-8 -*-
# vi:si:et:sw=4:sts=4:ts=4
import urllib2
from urllib import quote, unquote
import re
import os
import time
import ox
from ox import findRe, stripTags
from ox.normalize import normalizeTitle, normalizeImdbId
from siteparser import SiteParser
import google
class Imdb(SiteParser):
regex = {
'alternative_titles': {
'page': 'releaseinfo',
're': [
'name="akas".*?
(.*?)',
"td>(.*?)\n\n(.*?) | "
],
'type': 'list'
},
'cast': {
'page': 'combined',
're': [
'.*?>(.*?).*? | (.*?) | ',
lambda ll: [stripTags(l) for l in ll]
],
'type': 'list'
},
'cinematographers': {
'page': 'combined',
're': [
lambda data: data.split('Series Crew')[0],
'Cinematography by(.*?)',
'(.*?)'
],
'type': 'list'
},
'connections': {
'page': 'movieconnections',
're': '(.*?)
(.*?)\n\n',
'type': 'list'
},
'countries': {
'page': 'combined',
're': '(.*?)',
'type': 'list'
},
'directors': {
'page': 'combined',
're': [
lambda data: data.split('Series Crew')[0],
'Directed by(.*?)',
'(.*?)'
],
'type': 'list'
},
'editors': {
'page': 'combined',
're': [
lambda data: data.split('Series Crew')[0],
'Film Editing by(.*?)',
'(.*?)'
],
'type': 'list'
},
'episode_title': {
'page': 'combined',
're': '.*?
(.*?)',
'type': 'string'
},
'filming_locations': {
'page': 'locations',
're': '
(.*?)',
'type': 'list'
},
'genres': {
'page': 'combined',
're': '
(.*?)',
'type': 'list'
},
'keywords': {
'page': 'keywords',
're': '
(.*?)',
'type': 'list'
},
'languages': {
'page': 'combined',
're': '
(.*?)',
'type': 'list'
},
'original_title': {
'page': 'combined',
're': '',
'type': 'string'
},
'plot': {
'page': 'plotsummary',
're': '
.*?(.*?)',
'type': 'string'
},
'poster_id': {
'page': 'combined',
're': '/primary-photo/media/rm(.*?)/tt',
'type': 'list'
},
'poster_ids': {
'page': 'posters',
're': '/unknown-thumbnail/media/rm(.*?)/tt',
'type': 'list'
},
'producers': {
'page': 'combined',
're': [
lambda data: data.split('Series Crew')[0],
'Produced by(.*?)',
'(.*?)'
],
'type': 'list'
},
'rating': {
'page': 'combined',
're': '