Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
 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)
Ejemplo n.º 3
0
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 []
Ejemplo n.º 4
0
 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
Ejemplo n.º 5
0
    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
Ejemplo n.º 6
0
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
Ejemplo n.º 7
0
    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()
Ejemplo n.º 8
0
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()
Ejemplo n.º 10
0
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:
Ejemplo n.º 11
0
 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
Ejemplo n.º 13
0
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
Ejemplo n.º 14
0
 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 = []