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
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
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)
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)
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)
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)
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
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)
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
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))
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
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
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
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
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)
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))
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
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']
def set_default(identifier, proxy): with shelf("proxy."+identifier, _default_ttl) as p: p['proxies'].remove(proxy) p['proxies'].insert(0, proxy)
def set_default(identifier, proxy): with shelf("proxy." + identifier, _default_ttl) as p: p['proxies'].remove(proxy) p['proxies'].insert(0, proxy)
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']
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