Esempio n. 1
0
def get(id):
    with shelf("com.imdb.{id}".format(id=id), DEFAULT_TTL) as movie:
        if not movie:
            meta = url_get("{base_url}/movie/{id}".format(base_url=BASE_URL,
                                                          id=id),
                           params={
                               "api_key": API_KEY,
                               "append_to_response": "credits",
                               "language": "en",
                               "include_image_language": "en,null"
                           },
                           headers=HEADERS)
            if meta.get('status_code'):
                return dict()
            sys_lang = xbmc.getLanguage(xbmc.ISO_639_1)
            if not sys_lang == 'en':
                sys_meta = url_get("{base_url}/movie/{id}".format(
                    base_url=BASE_URL, id=id),
                                   params={
                                       "api_key": API_KEY,
                                       "append_to_response": "credits",
                                       "language": sys_lang,
                                       "include_image_language": sys_lang
                                   },
                                   headers=HEADERS)
                meta.update(cleanDictList(sys_meta))
            movie = _get_list_item(meta)
        return movie
Esempio n. 2
0
def _shelf_mediainfo(type, item, provider, refresh):
    with shelf("mediainfo.{type}.{md5}".format(type=type, md5=hashlib.md5(simplejson.dumps(item)).hexdigest()), 24 * 3600) as mediainfo:
        if refresh:
            mediainfo.clear()
        if not mediainfo:
            mediainfo.update(cleanDictList(provider.get(item["info"]["code"], item["label"], item["info"]["year"])))
        return mediainfo
Esempio n. 3
0
def get(imdb_id):
    from kodipopcorntime.caching import shelf
    with shelf("com.imdb.%s" % imdb_id) as movie:
        if not movie:
            try:
                import urllib2
                from kodipopcorntime.utils import url_get_json
                import xbmc
                sys_lang = xbmc.getLanguage(xbmc.ISO_639_1)
                data = url_get_json("%s/movie/%s" % (BASE_URL, imdb_id),
                                    params={
                                        "api_key": API_KEY,
                                        "append_to_response": "credits",
                                        "language": "en",
                                        "include_image_language": "en,null"
                                    },
                                    headers=HEADERS,
                                    with_immunicity=False) or {}
                if not sys_lang == 'en':
                    data.update(
                        url_get_json("%s/movie/%s" % (BASE_URL, imdb_id),
                                     params={
                                         "api_key": API_KEY,
                                         "append_to_response": "credits",
                                         "language": sys_lang,
                                         "include_image_language":
                                         "%s" % sys_lang
                                     },
                                     headers=HEADERS,
                                     with_immunicity=False) or {})
                movie.update(data)
            except urllib2.HTTPError:
                pass
        return dict(movie)
Esempio n. 4
0
def _tmdb_config():
    with shelf("meta.imdb.conf", 24 * 3600) as conf:
        if not conf:
            try:
                conf.update(url_get(_base_url, "/3/configuration", params={"api_key": _api_key}))
            except:
                return {}
        return dict(conf)
Esempio n. 5
0
def _tmdb_config():
    with shelf("meta.imdb.conf", 24 * 3600) as conf:
        if not conf:
            try:
                conf.update(url_get(_base_url, "/3/configuration", params={"api_key": _api_key}))
            except:
                return {}
        return dict(conf)
Esempio n. 6
0
def tmdb_config():
    with shelf("com.imdb.conf", DEFAULT_TTL) as conf:
        if not conf:
            try:
                conf.update(url_get("{base_url}/configuration".format(base_url=BASE_URL), params={"api_key": API_KEY}, headers=HEADERS))
            except:
                return dict()
        return dict(conf)
Esempio n. 7
0
def config():
    global _config
    if not _config:
        with shelf("kodipopcorntime.immunicity.pac_config", ttl=CACHE) as pac_config:
            plugin.log.info("Fetching Immunicity PAC file")
            pac_data = urllib2.urlopen(PAC_URL).read()
            pac_config["server"] = re.search(r"var proxyserver = '(.*)'", pac_data).group(1)
            pac_config["domains"] = map(lambda x: x.replace(r"\Z(?ms)", ""), map(fnmatch.translate, re.findall(r"\"(.*?)\",", pac_data)))
            _config = pac_config
    return _config
Esempio n. 8
0
def tmdb_config():
    with shelf("com.imdb.conf", DEFAULT_TTL) as conf:
        if not conf:
            try:
                conf.update(
                    url_get(
                        "{base_url}/configuration".format(base_url=BASE_URL),
                        params={"api_key": API_KEY},
                        headers=HEADERS))
            except:
                return dict()
        return dict(conf)
Esempio n. 9
0
def get(id):
    with shelf("com.imdb.{id}".format(id=id), DEFAULT_TTL) as movie:
        if not movie:
            meta = url_get("{base_url}/movie/{id}".format(base_url=BASE_URL, id=id), params={"api_key": API_KEY, "append_to_response": "credits", "language": "en", "include_image_language": "en,null"}, headers=HEADERS)
            if meta.get('status_code'):
                return dict()
            sys_lang = xbmc.getLanguage(xbmc.ISO_639_1)
            if not sys_lang == 'en':
                sys_meta = url_get("{base_url}/movie/{id}".format(base_url=BASE_URL, id=id), params={"api_key": API_KEY, "append_to_response": "credits", "language": sys_lang, "include_image_language": sys_lang}, headers=HEADERS)
                meta.update(cleanDictList(sys_meta))
            movie = _get_list_item(meta)
        return movie
Esempio n. 10
0
def tmdb_config():
    from kodipopcorntime.caching import shelf
    try:
        with shelf("com.imdb.conf", DEFAULT_TTL) as conf:
            if not conf:
                from kodipopcorntime.utils import url_get_json
                conf.update(url_get_json("%s/configuration" % BASE_URL, params={"api_key": API_KEY}, headers=HEADERS))
                if not conf:
                    raise
            return dict(conf)
    except:
        plugin.notify(plugin.addon.getLocalizedString(30304))
        plugin.log.error('Could not connect to %s/configuration?api_key=%s' %(BASE_URL, API_KEY))
Esempio n. 11
0
def _shelf_mediainfo(type, item, provider, refresh):
    with shelf(
            "mediainfo.{type}.{md5}".format(
                type=type,
                md5=hashlib.md5(simplejson.dumps(item)).hexdigest()),
            24 * 3600) as mediainfo:
        if refresh:
            mediainfo.clear()
        if not mediainfo:
            mediainfo.update(
                cleanDictList(
                    provider.get(item["info"]["code"], item["label"],
                                 item["info"]["year"])))
        return mediainfo
Esempio n. 12
0
def config():
    global _config
    if not _config:
        with shelf("kodipopcorntime.immunicity.pac_config",
                   ttl=CACHE) as pac_config:
            plugin.log.info("Fetching Immunicity PAC file")
            pac_data = urllib2.urlopen(PAC_URL).read()
            pac_config["server"] = re.search(r"var proxyserver = '(.*)'",
                                             pac_data).group(1)
            pac_config["domains"] = map(
                lambda x: x.replace(r"\Z(?ms)", ""),
                map(fnmatch.translate, re.findall(r"\"(.*?)\",", pac_data)))
            _config = pac_config
    return _config
Esempio n. 13
0
def _isSettingsChanged():
    with shelf("addon.settings.old", 5000 * 3600) as settings_old:
        settings = [
            xbmc.getLanguage(xbmc.ISO_639_1),
            __addon__.getSetting('sub_language1'),
            __addon__.getSetting('sub_language2'),
            __addon__.getSetting('sub_language3'),
            __addon__.getSetting('hearing_impaired'),
            __addon__.getSetting('quality')
        ]
        if settings_old: 
            if all(s in settings_old['list'] for s in settings):
                return False
        settings_old.update({'list': settings})
    return True
Esempio n. 14
0
def _isSettingsChanged():
    with shelf("addon.settings.old", 5000 * 3600) as settings_old:
        settings = [
            xbmc.getLanguage(xbmc.ISO_639_1),
            __addon__.getSetting('sub_language1'),
            __addon__.getSetting('sub_language2'),
            __addon__.getSetting('sub_language3'),
            __addon__.getSetting('hearing_impaired'),
            __addon__.getSetting('quality')
        ]
        if settings_old:
            if all(s in settings_old['list'] for s in settings):
                return False
        settings_old.update({'list': settings})
    return True
Esempio n. 15
0
def get(imdb_id):
    from kodipopcorntime.caching import shelf
    with shelf("com.imdb.%s" % imdb_id) as movie:
        if not movie:
            try:
                import urllib2
                from kodipopcorntime.utils import url_get_json
                import xbmc
                sys_lang = xbmc.getLanguage(xbmc.ISO_639_1)
                data = url_get_json("%s/movie/%s" % (BASE_URL, imdb_id), params={"api_key": API_KEY, "append_to_response": "credits", "language": "en", "include_image_language": "en,null"}, headers=HEADERS, with_immunicity=False) or {}
                if not sys_lang == 'en':
                    data.update(url_get_json("%s/movie/%s" % (BASE_URL, imdb_id), params={"api_key": API_KEY, "append_to_response": "credits", "language": sys_lang, "include_image_language": "%s" % sys_lang}, headers=HEADERS, with_immunicity=False) or {})
                movie.update(data)
            except urllib2.HTTPError:
                pass
        return dict(movie)
Esempio n. 16
0
def get(imdb_id):
    from kodipopcorntime.caching import shelf
    try:
        with shelf("com.imdb.%s" % imdb_id, DEFAULT_TTL) as movie:
            if not movie:
                import xbmc
                from kodipopcorntime.utils import url_get_json
                sys_lang = xbmc.getLanguage(xbmc.ISO_639_1)
                movie.update(url_get_json("%s/movie/%s" % (BASE_URL, imdb_id), params={"api_key": API_KEY, "append_to_response": "credits", "language": "en", "include_image_language": "en,null"}, headers=HEADERS))
                if not sys_lang == 'en':
                    movie.update(url_get_json("%s/movie/%s" % (BASE_URL, imdb_id), params={"api_key": API_KEY, "append_to_response": "credits", "language": sys_lang, "include_image_language": "%s" % sys_lang}, headers=HEADERS) or {})
                if not movie:
                    raise
        return dict(movie)
    except:
        plugin.notify(plugin.addon.getLocalizedString(30304))
        plugin.log.error('Could not connect to %s/movie/%s?api_key=%s' %(BASE_URL, imdb_id, API_KEY))
Esempio n. 17
0
def update_proxies(identifier, proxieslist):
    with shelf("proxy.%s" %identifier, 31536000) as proxies:
        if not proxies or not all(x in proxies for x in proxieslist):
            proxies.update(proxieslist)
        return proxies
Esempio n. 18
0
def update_list(identifier, proxies):
    with shelf("proxy."+identifier, _default_ttl) as p:
        if not p or not all(x in p['proxies'] for x in proxies):
            p.update({'proxies':proxies})
        return p['proxies']
Esempio n. 19
0
def set_default(identifier, proxy):
    with shelf("proxy."+identifier, _default_ttl) as p:
        p['proxies'].remove(proxy)
        p['proxies'].insert(0, proxy)
Esempio n. 20
0
def set_default(identifier, proxy):
    with shelf("proxy." + identifier, _default_ttl) as p:
        p['proxies'].remove(proxy)
        p['proxies'].insert(0, proxy)
Esempio n. 21
0
def update_list(identifier, proxies):
    with shelf("proxy." + identifier, _default_ttl) as p:
        if not p or not all(x in p['proxies'] for x in proxies):
            p.update({'proxies': proxies})
        return p['proxies']
Esempio n. 22
0
def set_default_proxy(identifier, default):
    with shelf("proxy.%s" %identifier, 31536000) as proxies:
        if default and default in proxies:
            proxies.remove(default)
            proxies.insert(0, default)
        return