def __init__(self): xbmc.log("__init__") # Get the plugin url in plugin:// notation. self._url = sys.argv[0] # Get the plugin handle as an integer number. self._handle = int(sys.argv[1]) self.cache = simplecache.SimpleCache() self.addon = xbmcaddon.Addon() self.addonRootPath = self.addon.getAddonInfo("path").decode("utf-8") self.dataPath = xbmc.translatePath(xbmcaddon.Addon().getAddonInfo( ("profile"))).decode("utf-8") # settings self.username = self.addon.getSetting("filelist.user") self.passkey = self.addon.getSetting("filelist.passphrase") self.watchDir = self.addon.getSetting("saveTorrentFolder") self.torrentAction = self.addon.getSetting("torrentAction") self.tmdb_api_key = self.addon.getSetting("tmdb_api_key") self.metaDataAvailable = False self.pageSize = 10 if not self.tmdb_api_key: self.tmdb_api_key = base64.urlsafe_b64decode( "NjI4YTFhNDAxZThiZDg1ZDFlZTc2OTA4MWUwZjFmYzE=") if self.tmdb_api_key: from movieinfo import MovieInfoProvider self.movieInfoProvider = MovieInfoProvider(self.tmdb_api_key) self.metaDataAvailable = True self.FLTorrentProvider = flprovider.FLTorrentProvider( self.username, self.passkey) self.categories = categories.Categories(self.addonRootPath)
def __init__(self, username=None, password=None, filter=None, reverse_eps=False, force_english=False, use_memory_cache=True): ContentProvider.__init__(self, name='sosac.ph', base_url=MOVIES_BASE_URL, username=username, password=password, filter=filter) opener = urllib2.build_opener( urllib2.HTTPCookieProcessor(cookielib.LWPCookieJar())) urllib2.install_opener(opener) self.reverse_eps = reverse_eps self.force_english = force_english self.cache = simplecache.SimpleCache() if use_memory_cache: self.cache.enable_mem_cache = use_memory_cache else: xbmcgui.Dialog().notification( 'Memory cache: ', 'Can not switch off memory cache for now, sorry', time=1000, sound=False)
def get_searchhistory(itemtype=None, cache=None): if not itemtype: return [] if not cache: cache = simplecache.SimpleCache() cache_name = 'plugin.video.themoviedb.helper.search.history.{}'.format( itemtype) return cache.get(cache_name) or []
def __init__(self, enable_cache=False, enable_mem_cache=False, global_ignore_cache=False): self.setUserAgent(self.USERAGENT) if enable_cache: self.cache = simplecache.SimpleCache() self.cache.enable_mem_cache = enable_mem_cache self.ignore_cache = global_ignore_cache
def __init__(self): ''' Provides an OTT (Over-The-Top) client, which masquerades as a NOW TV browser. ''' self.cache = simplecache.SimpleCache() self.headers = constants.HTTP_HEADERS # Internal variables for properties. if self.cache.get(constants.CACHE_KEY_OTT_TOKEN): self._token = self.cache.get(constants.CACHE_KEY_OTT_TOKEN) else: self._token = None
def set_searchhistory(query=None, itemtype=None, cache=None, cache_days=120, clearcache=False, maxentries=9, replace=False): if not itemtype: return if not cache: cache = simplecache.SimpleCache() cache_name = 'plugin.video.themoviedb.helper.search.history.{}'.format( itemtype) search_history = [] if not clearcache: search_history = get_searchhistory(itemtype, cache=cache) if replace is False and query: if query in search_history: # Remove query if in history because we want it to be first in list search_history.remove(query) if maxentries and len(search_history) > maxentries: search_history.pop( 0 ) # Remove the oldest query if we hit our max so we don't accumulate months worth of queries search_history.append(query) elif replace is not False: if not isinstance(replace, int) and replace in search_history: replace = search_history.index( replace ) # If not an integer assume we've been given an actual entry to replace if not isinstance(replace, int): return # If we can't find an index dont update cache to prevent unintended modification NOTE: Not sure if want a way to append instead if replacement item not found try: # Use a try block to catch index out of range errors if query: search_history[replace] = query else: search_history.pop(replace) except Exception as exc: kodi_log(exc, 1) return # Dont update cache if modifying the search history failed cache.set(cache_name, search_history, expiration=datetime.timedelta(days=cache_days)) return query
def __init__(self, args): ''' Args: args (list of str): A list of arguments provided by the trampoline. ''' self.addon = xbmcaddon.Addon(id='plugin.video.nowtv') self.logger = logger.get(self.addon.getAddonInfo('id')) self.cache = simplecache.SimpleCache() # Parse arguments. self.uri = str(args[0]) self.handle = int(args[1]) self.parameters = dict(urlparse.parse_qs(args[2][1:])) # Setup all clients. self.sso = nowtv.sso.Client() self.ott = nowtv.ott.Client() self.epg = nowtv.epg.Client()
import datetime import simplecache from resources.lib.addon.plugin import kodi_log, format_name from resources.lib.files.utils import get_pickle_name _cache = simplecache.SimpleCache() _cache_name = 'TMDbHelper_v4.0.2' CACHE_LONG = 14 CACHE_SHORT = 1 CACHE_EXTENDED = 90 def use_simple_cache(cache_days=None): def decorator(func): def wrapper(*args, **kwargs): kwargs['cache_days'] = cache_days or kwargs.get('cache_days', None) kwargs['cache_combine_name'] = True kwargs['cache_name'] = '{}.'.format(func.__name__) kwargs['cache_name'] = '{}.{}'.format(args[0].__class__.__name__, kwargs['cache_name']) return use_cache(func, *args, **kwargs) return wrapper return decorator def get_cache(cache_name): cache_name = get_pickle_name(cache_name or '') return _cache.get('{}.{}'.format(_cache_name, cache_name))
def __init__(self, tmdbKey): self.tmdbKey = tmdbKey self.cache = simplecache.SimpleCache()
ADDON = xbmcaddon.Addon() ADDON_ID = ADDON.getAddonInfo('id') ''' Python 2<->3 compatibility ''' if not PYTHON3: ADDON_PATH = ADDON.getAddonInfo('path').decode('utf-8') else: ADDON_PATH = ADDON.getAddonInfo('path') NOTICE = xbmc.LOGNOTICE WARNING = xbmc.LOGWARNING DEBUG = xbmc.LOGDEBUG DIALOG = xbmcgui.Dialog() CACHE = simplecache.SimpleCache() CACHE_ENABLED = ADDON.getSettingBool('cache_enabled') ######################## def log(txt, loglevel=DEBUG, force=False): if not PYTHON3: if isinstance(txt, str): txt = txt.decode('utf-8') message = u'[ %s ] %s' % (ADDON_ID, txt) if not PYTHON3: xbmc.log(msg=message.encode('utf-8'), level=loglevel) else:
def __init__( self, *args, **kwargs): self.next = None self.isExiting = False self.window_id = None self.cache = simplecache.SimpleCache()
def __init__(self): self.cache = simplecache.SimpleCache() self.ttl = timedelta(hours=1) self.cache.default_timeout = self.ttl return None
selfAddon = xbmcaddon.Addon(addon_id) version = selfAddon.getAddonInfo('version') name = selfAddon.getAddonInfo('name') plugin_name = name + ' - ' + version kodiVersion = xbmc.getInfoLabel('System.BuildVersion') kodiVersion = int(kodiVersion[:kodiVersion.index('.')]) # paths addonfolder = xbmc.translatePath(selfAddon.getAddonInfo('path')) del selfAddon media_path = os.path.join(addonfolder, 'resources', 'media') logopath = os.path.join(media_path, 'logos') defaultlogo = defaultbanner = os.path.join(logopath, 'DefaultV2.png') defaultbackdrop = '' common_cache = simplecache.SimpleCache() _cacheMinutes = settings.cacheExp() _debugLog = settings.debugLog() _xxtea_key = '3543373833383336354337383634363635433738363633383236354337383330363435393543373833393335323435433738363533393543373833383332334635433738363633333344334235433738333836363335' def installAddon(addonName): if xbmc.getCondVisibility('System.HasAddon(%s)' % addonName) == 0: if xbmcgui.Dialog().yesno(name, translate(30019).format(addonName)): xbmc.executebuiltin('InstallAddon(%s)' % (addonName), True) def showNotification(message, notificationType='INFO', duration=5000): icon = xbmcgui.NOTIFICATION_INFO if notificationType == 'ERROR': icon = xbmcgui.NOTIFICATION_ERROR
def __init__(self,name): self.cache = simplecache.SimpleCache() self.name = name self.items = self.cache.get(self.name) if not self.items or DEV_MODE: self.items = []