예제 #1
0
def check_for_addon_update():
    """
    Perform checks for addon updates and notify user of any available updates
    :return: None
    :rtype: None
    """
    if not g.get_bool_setting("general.checkAddonUpdates"):
        return

    if "-" in g.VERSION:
        g.set_setting("addon.updateCheckTimeStamp", g.UNICODE(time.time()))
        return

    update_timestamp = g.get_float_setting("addon.updateCheckTimeStamp")

    if time.time() > (update_timestamp + (24 * (60 * 60))):
        repo_xml = requests.get(
            "https://github.com/nixgates/nixgates/raw/master/packages/addons.xml"
        )
        if not repo_xml.status_code == 200:
            g.log(
                "Could not connect to repo XML, status: {}".format(
                    repo_xml.status_code),
                "error",
            )
            return
        try:
            xml = tools.ElementTree.fromstring(repo_xml.text)

            for dir_tag in xml.iterfind(
                    "./addon[@id='repository.nixgates']/extension/dir"):
                minversion = dir_tag.get('minversion')
                maxversion = dir_tag.get('maxversion')
                if ((minversion is None and maxversion is None) or
                    (minversion and maxversion
                     and tools.compare_version_numbers(
                         minversion, g.KODI_FULL_VERSION, include_same=True)
                     and tools.compare_version_numbers(
                         g.KODI_FULL_VERSION, maxversion, include_same=True))
                        or
                    (maxversion is None and minversion
                     and tools.compare_version_numbers(
                         minversion, g.KODI_FULL_VERSION, include_same=True))
                        or
                    (minversion is None and maxversion
                     and tools.compare_version_numbers(
                         g.KODI_FULL_VERSION, maxversion, include_same=True))):
                    repo_version = _get_latest_repo_version(
                        dir_tag.find('info').text)
                    if tools.compare_version_numbers(g.CLEAN_VERSION,
                                                     repo_version):
                        xbmcgui.Dialog().ok(
                            g.ADDON_NAME,
                            g.get_language_string(30199).format(repo_version))
        except tools.ElementTree.ParseError as pe:
            g.log("Could not parse repo XML", "error")
        finally:
            g.set_setting("addon.updateCheckTimeStamp", str(time.time()))
예제 #2
0
    def _still_watching_calc():
        calculation = float(g.PLAYLIST.getposition() + 1) / g.get_float_setting(
            "stillwatching.numepisodes"
            )

        if calculation == 0:
            return False

        return calculation.is_integer()
예제 #3
0
 def _load_settings(self):
     self.client_id = g.get_setting(
         "trakt.clientid",
         "0c9a30819e4af6ffaf3b954cbeae9b54499088513863c03c02911de00ac2de79",
     )
     self.client_secret = g.get_setting(
         "trakt.secret",
         "bf02417f27b514cee6a8d135f2ddc261a15eecfb6ed6289c36239826dcdd1842",
     )
     self.access_token = g.get_setting("trakt.auth")
     self.refresh_token = g.get_setting("trakt.refresh")
     self.token_expires = g.get_float_setting("trakt.expires")
     self.default_limit = g.get_int_setting("item.limit")
     self.username = g.get_setting(self.username_setting_key)
예제 #4
0
def update_provider_packages():
    """
    Perform checks for provider package updates
    :return: None
    :rtype: None
    """
    provider_check_stamp = g.get_float_setting("provider.updateCheckTimeStamp",
                                               0)
    automatic = g.get_bool_setting("providers.autoupdates")
    if time.time() > (provider_check_stamp + (24 * (60 * 60))):
        available_updates = ProviderInstallManager().check_for_updates(
            silent=True, automatic=automatic)
        if not automatic and len(available_updates) > 0:
            g.notification(g.ADDON_NAME, g.get_language_string(30278))
        g.set_setting("provider.updateCheckTimeStamp", str(time.time()))
예제 #5
0
 def __init__(self):
     self.client_id = g.get_setting("rd.client_id")
     if not self.client_id:
         self.client_id = "GPA2MB33HLS3I"
     self.oauth_url = "https://api.real-debrid.com/oauth/v2/"
     self.device_code_url = "device/code?{}"
     self.device_credentials_url = "device/credentials?{}"
     self.token_url = "token"
     self.token = g.get_setting(RD_AUTH_KEY)
     self.session.headers.update(
         {"Authorization": "Bearer {}".format(self.token)})
     self.refresh = g.get_setting(RD_REFRESH_KEY)
     self.expiry = g.get_float_setting(RD_EXPIRY_KEY)
     self.device_code = ""
     self.client_secret = g.get_setting(RD_SECRET_KEY)
     self.oauth_timeout = 0
     self.oauth_time_step = 0
     self.base_url = "https://api.real-debrid.com/rest/1.0/"
     self.cache_check_results = {}
     self.progress_dialog = xbmcgui.DialogProgress()
예제 #6
0
def check_for_addon_update():
    """
    Perform checks for addon updates and notify uesr of any available updates
    :return: None
    :rtype: None
    """
    if not g.get_bool_setting("general.checkAddonUpdates"):
        return

    local_verison = g.VERSION
    if "-" in local_verison:
        g.set_setting("addon.updateCheckTimeStamp", str(time.time()))
        return

    update_timestamp = g.get_float_setting("addon.updateCheckTimeStamp")

    if time.time() > (update_timestamp + (24 * (60 * 60))):
        repo_xml = requests.get(
            "https://raw.githubusercontent.com/nixgates/nixgates/master/packages/addons.xml"
        )
        if not repo_xml.status_code == 200:
            g.log(
                "Could not connect to repo XML, status: {}".format(
                    repo_xml.status_code),
                "error",
            )
            return
        repo_version = re.findall(
            r"<addon id=\"plugin.video.seren\" version=\"(\d*.\d*.\d*)\"",
            repo_xml.text)[0]

        if tools.compare_version_numbers(local_verison, repo_version):
            xbmcgui.Dialog().ok(
                g.ADDON_NAME,
                g.get_language_string(30199).format(repo_version))
        g.set_setting("addon.updateCheckTimeStamp", str(time.time()))
예제 #7
0
 def _load_settings(self):
     self.apiKey = g.get_setting("tvdb.apikey", "43VPI0R8323FB7TI")
     self.jwToken = g.get_setting("tvdb.jw")
     self.tokenExpires = g.get_float_setting("tvdb.expiry")
예제 #8
0
 def _load_settings(self):
     self.client_id = g.get_setting("rd.client_id", RD_AUTH_CLIENT_ID)
     self.token = g.get_setting(RD_AUTH_KEY)
     self.refresh = g.get_setting(RD_REFRESH_KEY)
     self.expiry = g.get_float_setting(RD_EXPIRY_KEY)
     self.client_secret = g.get_setting(RD_SECRET_KEY)