# -*- coding: UTF-8 -*- # vi:si:et:sw=4:sts=4:ts=4 from __future__ import print_function import re import ox.cache from ox.cache import read_url from ox.html import strip_tags from ox.text import find_re import imdb def get_id(url): return url.split("/")[-1] def get_url(id): return "http://www.criterion.com/films/%s" % id def get_data(id, timeout=ox.cache.cache_timeout, get_imdb=False): ''' >>> get_data('1333').get('imdbId') u'0060304' >>> get_data('236')['posters'][0] u'http://s3.amazonaws.com/criterion-production/release_images/1586/ThirdManReplace.jpg' >>> get_data('786')['posters'][0] u'http://s3.amazonaws.com/criterion-production/product_images/185/343_box_348x490.jpg' ''' data = { "url": get_url(id) } try: html = read_url(data["url"], timeout=timeout, unicode=True) except: html = ox.cache.read_url(data["url"], timeout=timeout) data["number"] = find_re(html, "
  • Spine #(\d+)") data["title"] = find_re(html, "

    (.*?)

    ") data["title"] = data["title"].split(u' \u2014 The Television Version')[0] data["director"] = strip_tags(find_re(html, "

    (.*?)

    ")) results = find_re(html, '
    (.*?)
    ') results = re.compile("
  • (.*?)
  • ").findall(results) data["country"] = results[0] data["year"] = results[1] data["synopsis"] = strip_tags(find_re(html, "
    .*?

    (.*?)

    ")) result = find_re(html, "
    (.*?)
    ") if 'Blu-Ray' in result or 'Essential Art House DVD' in result: r = re.compile('

    Other Editions

    (.*?)
    ', re.DOTALL).findall(html) if r: result = r[0] result = find_re(result, "(.*?)' % id) result = find_re(result, "src=\"(.*?)\"") if result: data["posters"] = [result.replace("_w100", "")] else: data["posters"] = [] data['posters'] = [re.sub('(\?\d+)$', '', p) for p in data['posters']] result = find_re(html, "