Example #1
0
def first_run():
    if settings[SETTINGS.UUID] == '':
        settings[SETTINGS.UUID] = uuid.uuid4()
        DialogRenderer.ok(get_string(LANG.NEWS_TITLE),
                          get_string(LANG.NEWS_TEXT))
    if settings[SETTINGS.INSTALLATION_DATE] == '':
        set_settings(SETTINGS.INSTALLATION_DATE, get_current_datetime_str())
    if settings[SETTINGS.VERSION] == '':
        set_settings(SETTINGS.VERSION, get_info('version'))

    if settings[SETTINGS.PROVIDER_USERNAME] == '':
        settings[SETTINGS.PROVIDER_TOKEN] = ''

    # fix plain stored password on first run
    if settings[SETTINGS.PROVIDER_USERNAME] and len(
            settings[SETTINGS.PROVIDER_PASSWORD]) != 40:
        salt = provider.get_salt(settings[SETTINGS.PROVIDER_USERNAME])
        if salt is not None:
            settings[SETTINGS.PROVIDER_PASSWORD] = hash_password(
                settings[SETTINGS.PROVIDER_PASSWORD], salt)

    if get_plugin_route(
    ) != ROUTE.CHECK_PROVIDER_CREDENTIALS or not storage.get(
            STORAGE.IS_OLD_KODI_SESSION):
        settings.load_to_cache(SETTINGS.PROVIDER_USERNAME,
                               SETTINGS.PROVIDER_PASSWORD,
                               SETTINGS.PROVIDER_TOKEN)

    if not storage.get(STORAGE.IS_OLD_KODI_SESSION):
        storage[STORAGE.IS_OLD_KODI_SESSION] = True
Example #2
0
 def vip_remains(self):
     if time_limit_expired(SETTINGS.LAST_VIP_CHECK,
                           GENERAL.VIP_CHECK_INTERVAL):
         settings[SETTINGS.LAST_VIP_CHECK] = datetime.now()
         valid_token, user_data = self._check_token_and_return_user_data()
         if valid_token:
             if self._check_vip(user_data):
                 days_to = self._provider.vip_remains(user_data)
                 if days_to <= GENERAL.VIP_REMAINING_DAYS_WARN:
                     DialogRenderer.ok(
                         get_string(LANG.VIP_REMAINS).format(
                             provider=self._provider),
                         STRINGS.PAIR_BOLD.format(get_string(LANG.DAYS),
                                                  str(days_to)))
Example #3
0
def add_to_library():
    logger.debug("add to lib called")
    # DialogRenderer.ok('Info', 'OK')
    # Check settings, whether library paths are set up corretly
    if dbtype == 'movie':
        mf = settings[SETTINGS.MOVIE_LIBRARY_FOLDER]
        if mf != '':
            add_movie(mf)
        # k tomuto else by nemalo prist, kedze sa robi check pred contextMenu
        # else:
        #     notification('Unknown library folder', "Please set up movie library folder in settings")
        #     show_settings()

    # ToDo:
    if (dbtype == 'tvshow' or dbtype == 'episode'):
        DialogRenderer.ok(get_string(30351), get_string(30352))
Example #4
0
def check_version():
    if time_limit_expired(SETTINGS.LAST_VERSION_CHECK,
                          GENERAL.VERSION_CHECK_INTERVAL) or settings[
                              SETTINGS.LAST_VERSION_AVAILABLE] == '':
        settings[SETTINGS.LAST_VERSION_CHECK] = datetime.now()
        tag_name = get_latest_release_tag_name()
        if tag_name:
            settings[SETTINGS.LAST_VERSION_AVAILABLE] = tag_name
            current_version = settings[SETTINGS.VERSION]
            if current_version != tag_name:
                settings[SETTINGS.IS_OUTDATED] = True
                clear_kodi_addon_cache()
                DialogRenderer.ok(
                    get_string(LANG.NEW_VERSION_TITLE),
                    get_string(LANG.NEW_VERSION_TEXT).format(version=tag_name))
            else:
                settings[SETTINGS.IS_OUTDATED] = False
Example #5
0
 def search(self, collection):
     logger.debug('Search dialog opened')
     search_value = DialogRenderer.search()
     xbmcplugin.endOfDirectory(self.handle)
     if search_value:
         self._router.go_to_route(ROUTE.SEARCH_RESULT, collection,
                                  search_value)
     else:
         logger.debug('No value for search. Returning.')
         self._router.replace_route(ROUTE.MEDIA_MENU, collection)
Example #6
0
    def select_stream(self, media_id, streams):
        self.storage[STORAGE.SELECTED_MEDIA_ID] = media_id
        stream = DialogRenderer.choose_video_stream(streams)
        if stream is None:
            # Dialog cancel.
            set_resolved_url(self.handle)
            return

        logger.info('Got movie stream')
        self._on_stream_selected(stream['ident'])
Example #7
0
def set_provider_credentials():
    username = DialogRenderer.keyboard(get_string(LANG.USERNAME))

    if username is None:
        return
    else:
        salt = provider.get_salt(username)
        if salt is None:
            InfoDialog(get_string(LANG.INCORRECT_PROVIDER_CREDENTIALS),
                       sound=True).notify()
            return

    password = DialogRenderer.keyboard(get_string(LANG.PASSWORD), hidden=True)

    if password is None:
        return

    if username:
        settings.set_cache(SETTINGS.PROVIDER_USERNAME, username)
        settings.set_cache(SETTINGS.PROVIDER_TOKEN, '')
    if password:
        hashed = hash_password(password, salt)
        settings.set_cache(SETTINGS.PROVIDER_PASSWORD, hashed)
    logger.debug('Saving credentials to cache')
    def select_stream(self, media_id, streams):
        stream = None

        if len(streams) == 1:
            stream = streams[0]
        elif len(streams) > 1:
            force = self._router.args.has_key('force') and self._router.args['force'][0].lower() == 'true'
            if settings.get_setting_as_bool("auto_select_stream") and not force:
                preferred_quality = int(settings.get_settings(SETTINGS.PREFERRED_QUALITY))
                preferred_language = int(settings.get_settings(SETTINGS.PREFERRED_LANGUAGE))
                stream = self._autoselect_stream(streams, preferred_quality, preferred_language)

        if stream is None:
            stream = DialogRenderer.choose_video_stream(streams)

        if stream is None:
            # Dialog cancel.
            set_resolved_url(self.handle)
            return False

        logger.info('Got movie stream')
        self._on_stream_selected(stream['ident'])
def first_run():
    if settings[SETTINGS.UUID] == '':
        settings[SETTINGS.UUID] = uuid.uuid4()
        DialogRenderer.ok(get_string(LANG.NEWS_TITLE),
                          get_string(LANG.NEWS_TEXT))
Example #10
0
def refresh_provider_token():
    if stream_cinema.ensure_provider_token():
        DialogRenderer.ok(get_string(LANG.INFO),
                          get_string(LANG.TOKEN_REFRESHED))