def force_check_updates(auto=False, over=False):
    import time

    if not over:
        logging.log_notify(
            CONFIG.ADDONTITLE,
            '[COLOR {0}]Force Checking for Updates[/COLOR]'.format(
                CONFIG.COLOR2))

    dbfile = latest_db('Addons')
    dbfile = os.path.join(CONFIG.DATABASE, dbfile)
    sqldb = database.connect(dbfile)
    sqlexe = sqldb.cursor()

    # force rollback all installed repos
    sqlexe.execute("UPDATE repo SET version = ?, checksum = ?, lastcheck = ?",
                   (
                       '',
                       '',
                       '',
                   ))
    sqldb.commit()

    # trigger kodi to check them for updates
    xbmc.executebuiltin('UpdateAddonRepos')

    # wait until they have finished updating
    with tools.busy_dialog():
        installed_repos = sqlexe.execute('SELECT addonID FROM repo')

        start_time = time.time()
        checked_time = 0
        for repo in installed_repos.fetchall():
            repo = repo[0]
            while checked_time < start_time:
                logging.log(
                    'Making sure {0} was checked successfully.'.format(repo),
                    level=xbmc.LOGDEBUG)
                lastcheck = sqlexe.execute(
                    'SELECT lastcheck FROM repo WHERE addonID = ?', (repo, ))

                if lastcheck:
                    checked_time = lastcheck.fetchone()[0]
                    if checked_time:
                        checked_time = time.mktime(
                            time.strptime(checked_time, '%Y-%m-%d %H:%M:%S'))

                xbmc.sleep(1000)
            checked_time = 0
            logging.log('{0} successfully force checked.'.format(repo),
                        level=xbmc.LOGDEBUG)

    sqlexe.close()

    if auto:
        xbmc.executebuiltin('UpdateLocalAddons')
Esempio n. 2
0
def force_check_updates(auto=False, over=False):
    import time

    if not over:
        logging.log_notify(
            CONFIG.ADDONTITLE,
            '[COLOR {0}]Forzar la Comprobacion de Actualizaciones[/COLOR]'.
            format(CONFIG.COLOR2))

    dbfile = latest_db('Addons')
    dbfile = os.path.join(CONFIG.DATABASE, dbfile)
    sqldb = database.connect(dbfile)
    sqlexe = sqldb.cursor()

    # force rollback all installed repos
    sqlexe.execute("UPDATE repo SET version = ?, checksum = ?, lastcheck = ?",
                   (
                       '',
                       '',
                       '',
                   ))
    sqldb.commit()

    # trigger kodi to check them for updates
    xbmc.executebuiltin('UpdateAddonRepos')

    # wait until they have finished updating
    with tools.busy_dialog():
        installed_repos = sqlexe.execute('SELECT addonID FROM repo')

        start_time = time.time()
        checked_time = 0
        for repo in installed_repos.fetchall():
            repo = repo[0]
            logging.log('Comprobacion forzada {0}...'.format(repo),
                        level=xbmc.LOGDEBUG)
            while checked_time < start_time:
                if time.time() >= start_time + 20:
                    logging.log(
                        '{0} se agoto el tiempo durante la verificacion forzada del repo.'
                        .format(repo),
                        level=xbmc.LOGDEBUG)
                    break

                lastcheck = sqlexe.execute(
                    'SELECT lastcheck FROM repo WHERE addonID = ?', (repo, ))

                if lastcheck:
                    checked_time = lastcheck.fetchone()[0]
                    checked_time = time.mktime(
                        time.strptime(
                            checked_time,
                            '%Y-%m-%d %H:%M:%S')) if checked_time else 0

                xbmc.sleep(1000)
            checked_time = 0
            logging.log('{0} fuerza comprobada con exito.'.format(repo),
                        level=xbmc.LOGDEBUG)
            logging.log_notify(
                '[COLOR {0}]{1}[/COLOR]'.format(CONFIG.COLOR1,
                                                CONFIG.ADDONTITLE),
                "[COLOR {0}]{1} fuerza comprobada con exito.[/COLOR]".format(
                    CONFIG.COLOR2, repo))

    sqlexe.close()

    if auto:
        xbmc.executebuiltin('UpdateLocalAddons')