def _cache(self, tag, current): value = None if tag == 'buffermode': values = ['Buffer all internet filesystems', 'Buffer all filesystems', 'Only buffer true internet filesystems', 'No buffer', 'All network filesystems'] items = [] for i in range(len(values)): items.append(xbmcgui.ListItem(label=str(i), label2=values[i])) value = self.dialog.select('Choose a Value', items, preselect=int(current), useDetails=True) elif tag == 'memorysize': free_memory = tools.get_info_label('System.Memory(free)') free_converted = tools.convert_size(int(float(free_memory[:-2])) * 1024 * 1024) recommended = int(float(free_memory[:-2]) / 3) * 1024 * 1024 recommended_converted = tools.convert_size(int(float(free_memory[:-2]) / 3) * 1024 * 1024) value = tools.get_keyboard(default='{0}'.format(recommended), heading='Tamanho da memória em bytes \n(recomendado: {0} = {1})'.format(recommended_converted, recommended)) elif tag == 'readfactor': value = tools.get_keyboard(default='{0}'.format(current), heading='Taxa de preenchimento do cache \n(Números altos causarão uso pesado da largura de banda!)') return value
def clear_packages(over=None): from resources.libs.common import tools if os.path.exists(CONFIG.PACKAGES): try: for root, dirs, files in os.walk(CONFIG.PACKAGES): file_count = 0 file_count += len(files) if file_count > 0: size = tools.convert_size(tools.get_size(CONFIG.PACKAGES)) if over: yes = 1 else: dialog = xbmcgui.Dialog() yes = dialog.yesno("[COLOR {0}]Delete Package Files[/COLOR]".format(CONFIG.COLOR2), "[COLOR {0}]{1}[/COLOR] files found / [COLOR {2}]{3}[/COLOR] in size.".format(CONFIG.COLOR1, str(file_count),CONFIG.COLOR1, size) + '\n' + "Do you want to delete them?", nolabel='[B][COLOR red]Don\'t Clear[/COLOR][/B]', yeslabel='[B][COLOR springgreen]Clear Packages[/COLOR][/B]') if yes: for f in files: os.unlink(os.path.join(root, f)) for d in dirs: shutil.rmtree(os.path.join(root, d)) logging.log_notify(CONFIG.ADDONTITLE, '[COLOR {0}]Clear Packages: Success![/COLOR]'.format(CONFIG.COLOR2)) else: logging.log_notify(CONFIG.ADDONTITLE, '[COLOR {0}]Clear Packages: None Found![/COLOR]'.format(CONFIG.COLOR2)) except Exception as e: logging.log_notify(CONFIG.ADDONTITLE, '[COLOR {0}]Clear Packages: Error![/COLOR]'.format(CONFIG.COLOR2)) logging.log("Clear Packages Error: {0}".format(str(e)), level=xbmc.LOGERROR) else: logging.log_notify(CONFIG.ADDONTITLE, '[COLOR {0}]Clear Packages: None Found![/COLOR]'.format(CONFIG.COLOR2))
def clear_packages(over=None): from resources.libs.common import tools if os.path.exists(CONFIG.PACKAGES): try: for root, dirs, files in os.walk(CONFIG.PACKAGES): file_count = 0 file_count += len(files) if file_count > 0: size = tools.convert_size(tools.get_size(CONFIG.PACKAGES)) if over: yes = 1 else: dialog = xbmcgui.Dialog() yes = dialog.yesno("[COLOR {0}]Eliminar Archivos de Paquete[/COLOR]".format(CONFIG.COLOR2), "[COLOR {0}]{1}[/COLOR] archivos encontrados / [COLOR {2}]{3}[/COLOR] en tamaño.".format(CONFIG.COLOR1, str(file_count),CONFIG.COLOR1, size) + '\n' + "Quieres eliminarlos?", nolabel='[B][COLOR red]No Eliminar[/COLOR][/B]', yeslabel='[B][COLOR dodgerblue]Eliminar Paquetes[/COLOR][/B]') if yes: for f in files: os.unlink(os.path.join(root, f)) for d in dirs: shutil.rmtree(os.path.join(root, d)) logging.log_notify(CONFIG.ADDONTITLE, '[COLOR {0}]Borrar Paquetes: Correcto![/COLOR]'.format(CONFIG.COLOR2)) else: logging.log_notify(CONFIG.ADDONTITLE, '[COLOR {0}]Borrar Paquetes: Ninguno Encontrado![/COLOR]'.format(CONFIG.COLOR2)) except Exception as e: logging.log_notify(CONFIG.ADDONTITLE, '[COLOR {0}]Borrar Paquetes: Error![/COLOR]'.format(CONFIG.COLOR2)) logging.log("Error Borrar Paquetes: {0}".format(str(e)), level=xbmc.LOGERROR) else: logging.log_notify(CONFIG.ADDONTITLE, '[COLOR {0}]Borrar Paquetes: Ninguno Encontrado![/COLOR]'.format(CONFIG.COLOR2))
def old_thumbs(): from resources.libs import db from resources.libs.common import tools dbfile = os.path.join(CONFIG.DATABASE, db.latest_db('Textures')) use = 30 week = tools.get_date(days=-7) ids = [] images = [] size = 0 if os.path.exists(dbfile): try: textdb = database.connect(dbfile, isolation_level=None) textexe = textdb.cursor() except Exception as e: logging.log("DB Connection Error: {0}".format(str(e)), level=xbmc.LOGERROR) return False else: logging.log('{0} not found.'.format(dbfile), level=xbmc.LOGERROR) return False textexe.execute( "SELECT idtexture FROM sizes WHERE usecount < ? AND lastusetime < ?", (use, str(week))) found = textexe.fetchall() for rows in found: idfound = rows[0] ids.append(idfound) textexe.execute("SELECT cachedurl FROM texture WHERE id = ?", (idfound, )) found2 = textexe.fetchall() for rows2 in found2: images.append(rows2[0]) logging.log("{0} total thumbs cleaned up.".format(str(len(images))), level=xbmc.LOGNOTICE) for id in ids: textexe.execute("DELETE FROM sizes WHERE idtexture = ?", (id, )) textexe.execute("DELETE FROM texture WHERE id = ?", (id, )) textexe.execute("VACUUM") textdb.commit() textexe.close() for image in images: path = os.path.join(CONFIG.THUMBNAILS, image) try: imagesize = os.path.getsize(path) os.remove(path) size += imagesize except: pass removed = tools.convert_size(size) if len(images) > 0: logging.log_notify( "[COLOR {0}]{1}[/COLOR]".format(CONFIG.COLOR1, CONFIG.ADDONTITLE), '[COLOR {0}]Clear Thumbs: {1} Files / {2} MB[/COLOR]!'.format( CONFIG.COLOR2, str(len(images)), removed)) else: logging.log_notify( "[COLOR {0}]{1}[/COLOR]".format(CONFIG.COLOR1, CONFIG.ADDONTITLE), '[COLOR {0}]Clear Thumbs: None Found![/COLOR]'.format( CONFIG.COLOR2))
def clear_packages(over=None): from resources.libs.common import tools if os.path.exists(CONFIG.PACKAGES): try: for root, dirs, files in os.walk(CONFIG.PACKAGES): file_count = 0 file_count += len(files) if file_count > 0: size = tools.convert_size(tools.get_size(CONFIG.PACKAGES)) if over: yes = 1 else: dialog = xbmcgui.Dialog() yes = dialog.yesno("[COLOR {0}]Excluir arquivos de pacote[/COLOR]".format(CONFIG.COLOR2), "[COLOR {0}]{1}[/COLOR] arquivos encontrados / [COLOR {2}]{3}[/COLOR] no tamanho.".format(CONFIG.COLOR1, str(file_count),CONFIG.COLOR1, size) + '\n' + "Você quer apagá-los?", nolabel='[B][COLOR red]Não Limpe[/COLOR][/B]', yeslabel='[B][COLOR springgreen]Limpar Packages[/COLOR][/B]') if yes: for f in files: os.unlink(os.path.join(root, f)) for d in dirs: shutil.rmtree(os.path.join(root, d)) logging.log_notify(CONFIG.ADDONTITLE, '[COLOR {0}]Limpar Packages: Success![/COLOR]'.format(CONFIG.COLOR2)) else: logging.log_notify(CONFIG.ADDONTITLE, '[COLOR {0}]Limpar Packages: Nenhum encontrado![/COLOR]'.format(CONFIG.COLOR2)) except Exception as e: logging.log_notify(CONFIG.ADDONTITLE, '[COLOR {0}]Limpar Packages: Erro![/COLOR]'.format(CONFIG.COLOR2)) logging.log("Clear Packages Error: {0}".format(str(e)), level=xbmc.LOGERROR) else: logging.log_notify(CONFIG.ADDONTITLE, '[COLOR {0}]Limpar Packages: Nenhum encontrado![/COLOR]'.format(CONFIG.COLOR2))
def misc_menu(self): from resources.libs.common import logging from resources.libs.common import tools errors = int(logging.error_checking(count=True)) errorsfound = str( errors) + ' Error(s) Found' if errors > 0 else 'None Found' wizlogsize = ': [COLOR red]Not Found[/COLOR]' if not os.path.exists( CONFIG.WIZLOG) else ": [COLOR springgreen]{0}[/COLOR]".format( tools.convert_size(os.path.getsize(CONFIG.WIZLOG))) directory.add_file('Kodi 17 Fix', {'mode': 'kodi17fix'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_dir('Network Tools', {'mode': 'nettools'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('Toggle Unknown Sources', {'mode': 'unknownsources'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('Toggle Debug Logging', {'mode': 'enabledebug'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('Toggle Addon Updates', {'mode': 'toggleupdates'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('Reload Skin', {'mode': 'forceskin'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('Reload Profile', {'mode': 'forceprofile'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('Force Close Kodi', {'mode': 'forceclose'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('Upload Log File', {'mode': 'uploadlog'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file( 'View Errors in Log: [COLOR springgreen][B]{0}[/B][/COLOR]'.format( errorsfound), {'mode': 'viewerrorlog'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) if errors > 0: directory.add_file('View Last Error In Log', {'mode': 'viewerrorlast'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('View Log File', {'mode': 'viewlog'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('View Wizard Log File', {'mode': 'viewwizlog'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file( 'Clear Wizard Log File: [COLOR springgreen][B]{0}[/B][/COLOR]'. format(wizlogsize), {'mode': 'clearwizlog'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3)
def logging_menu(self): errors = int(logging.error_checking(count=True)) errorsfound = str( errors) + ' Error(s) Found' if errors > 0 else 'None Found' wizlogsize = ': [COLOR red]Not Found[/COLOR]' if not os.path.exists( CONFIG.WIZLOG) else ": [COLOR deepskyblue]{0}[/COLOR]".format( tools.convert_size(os.path.getsize(CONFIG.WIZLOG))) directory.add_file('Toggle Debug Logging', {'mode': 'enabledebug'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('Upload Log File', {'mode': 'uploadlog'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file( 'View Errors in Log: [COLOR deepskyblue][B]{0}[/B][/COLOR]'.format( errorsfound), {'mode': 'viewerrorlog'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) if errors > 0: directory.add_file('View Last Error In Log', {'mode': 'viewerrorlast'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('View Log File', {'mode': 'viewlog'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('View Wizard Log File', {'mode': 'viewwizlog'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file( 'Clear Wizard Log File: [COLOR deepskyblue][B]{0}[/B][/COLOR]'. format(wizlogsize), {'mode': 'clearwizlog'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3)
def show_menu(self, url=None): infoLabel = [ 'System.Memory(free)', 'System.Memory(used)', 'System.Memory(total)' ] data = [] x = 0 for info in infoLabel: temp = tools.get_info_label(info) y = 0 while temp == "Busy" and y < 10: temp = tools.get_info_label(info) y += 1 logging.log("{0} sleep {1}".format(info, str(y))) xbmc.sleep(200) data.append(temp) x += 1 # ram_used = tools.convert_size(int(float(data[1][:-2])) * 1024 * 1024) ram_free = tools.convert_size(int(float(data[0][:-2])) * 1024 * 1024) # ram_total = tools.convert_size(int(float(data[2][:-2])) * 1024 * 1024) directory.add_file( '[COLOR {0}]Ram còn trống:[/COLOR] [COLOR {1}]{2}[/COLOR]'.format( CONFIG.COLOR1, CONFIG.COLOR2, ram_free), icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME2) directory.add_dir('Thay đổi thông số file Advancedsettings.xml', { 'mode': 'advanced_settings', 'action': 'show_section', 'tags': 'cache|network' }, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) if os.path.exists(CONFIG.ADVANCED): directory.add_file('Xem file Advancedsettings.xml', { 'mode': 'advanced_settings', 'action': 'view_current' }, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('Xóa file Advancedsettings.xml', { 'mode': 'advanced_settings', 'action': 'remove_current' }, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_separator(icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file( '[COLOR yellow][B]Auto Set:[/B][/COLOR] Thiết lập Memcache theo dung lượng Ram', { 'mode': 'advanced_settings', 'action': 'auto_memcache' }, description= 'Thiết lập thông số Memcache dựa vào dung lượng Ram trống trên thiết bị.', icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3)
def clear_packages_startup(): from resources.libs.common import tools start = datetime.utcnow() - timedelta(minutes=3) file_count = 0 cleanupsize = 0 if os.path.exists(CONFIG.PACKAGES): pack = os.listdir(CONFIG.PACKAGES) pack.sort( key=lambda f: os.path.getmtime(os.path.join(CONFIG.PACKAGES, f))) try: for item in pack: file = os.path.join(CONFIG.PACKAGES, item) lastedit = datetime.utcfromtimestamp(os.path.getmtime(file)) if lastedit <= start: if os.path.isfile(file): file_count += 1 cleanupsize += os.path.getsize(file) os.unlink(file) elif os.path.isdir(file): cleanupsize += tools.get_size(file) cleanfiles, cleanfold = tools.clean_house(file) file_count += cleanfiles + cleanfold try: shutil.rmtree(file) except Exception as e: logging.log("Failed to remove {0}: {1}".format( file, str(e), xbmc.LOGERROR)) if file_count > 0: logging.log_notify( "[COLOR {0}]{1}[/COLOR]".format(CONFIG.COLOR1, CONFIG.ADDONTITLE), '[COLOR {0}]Clear Packages: Success: {1}[/COLOR]'.format( CONFIG.COLOR2, tools.convert_size(cleanupsize))) else: logging.log_notify( "[COLOR {0}]{1}[/COLOR]".format(CONFIG.COLOR1, CONFIG.ADDONTITLE), '[COLOR {0}]Clear Packages: None Found![/COLOR]'.format( CONFIG.COLOR2)) except Exception as e: logging.log_notify( "[COLOR {0}]{1}[/COLOR]".format(CONFIG.COLOR1, CONFIG.ADDONTITLE), '[COLOR {0}]Clear Packages: Error![/COLOR]'.format( CONFIG.COLOR2)) logging.log("Clear Packages Error: {0}".format(str(e)), level=xbmc.LOGERROR) else: logging.log_notify( "[COLOR {0}]{1}[/COLOR]".format(CONFIG.COLOR1, CONFIG.ADDONTITLE), '[COLOR {0}]Clear Packages: None Found![/COLOR]'.format( CONFIG.COLOR2))
def clean_menu(self): from resources.libs import clear from resources.libs.common import tools on = '[B][COLOR springgreen]ON[/COLOR][/B]' off = '[B][COLOR red]OFF[/COLOR][/B]' autoclean = 'true' if CONFIG.AUTOCLEANUP == 'true' else 'false' cache = 'true' if CONFIG.AUTOCACHE == 'true' else 'false' packages = 'true' if CONFIG.AUTOPACKAGES == 'true' else 'false' thumbs = 'true' if CONFIG.AUTOTHUMBS == 'true' else 'false' # includevid = 'true' if CONFIG.INCLUDEVIDEO == 'true' else 'false' # includeall = 'true' if CONFIG.INCLUDEALL == 'true' else 'false' sizepack = tools.get_size(CONFIG.PACKAGES) sizethumb = tools.get_size(CONFIG.THUMBNAILS) archive = tools.get_size(CONFIG.ARCHIVE_CACHE) sizecache = (clear.get_cache_size()) - archive totalsize = sizepack + sizethumb + sizecache directory.add_file( 'Total Clean Up: [COLOR springgreen][B]{0}[/B][/COLOR]'.format(tools.convert_size(totalsize)), {'mode': 'fullclean'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('Clear Cache: [COLOR springgreen][B]{0}[/B][/COLOR]'.format(tools.convert_size(sizecache)), {'mode': 'clearcache'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) if xbmc.getCondVisibility('System.HasAddon(script.module.urlresolver)') or xbmc.getCondVisibility( 'System.HasAddon(script.module.resolveurl)'): directory.add_file('Clear Resolver Function Caches', {'mode': 'clearfunctioncache'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('Clear Packages: [COLOR springgreen][B]{0}[/B][/COLOR]'.format(tools.convert_size(sizepack)), {'mode': 'clearpackages'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file( 'Clear Thumbnails: [COLOR springgreen][B]{0}[/B][/COLOR]'.format(tools.convert_size(sizethumb)), {'mode': 'clearthumb'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) if os.path.exists(CONFIG.ARCHIVE_CACHE): directory.add_file('Clear Archive_Cache: [COLOR springgreen][B]{0}[/B][/COLOR]'.format( tools.convert_size(archive)), {'mode': 'cleararchive'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('Clear Old Thumbnails', {'mode': 'oldThumbs'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('Clear Crash Logs', {'mode': 'clearcrash'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('Purge Databases', {'mode': 'purgedb'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3)
def _cache(self, tag, current): value = None if tag == 'buffermode': values = [ 'Buffer all internet filesystems', 'Buffer all filesystems', 'Only buffer true internet filesystems', 'No buffer', 'All network filesystems' ] items = [] for i in range(len(values)): items.append(xbmcgui.ListItem(label=str(i), label2=values[i])) value = self.dialog.select('Choose a Value', items, preselect=int(current), useDetails=True) elif tag == 'memorysize': free_memory = tools.get_info_label('System.Memory(free)') free_converted = tools.convert_size( int(float(free_memory[:-2])) * 1024 * 1024) recommended = int(float(free_memory[:-2]) / 3) * 1024 * 1024 recommended_converted = tools.convert_size( int(float(free_memory[:-2]) / 3) * 1024 * 1024) value = tools.get_keyboard( default='{0}'.format(recommended), heading= 'Dung lượng Memcache tính theo Bytes\n(Đề xuất: {0} = {1})'. format(recommended_converted, recommended)) elif tag == 'readfactor': value = tools.get_keyboard( default='{0}'.format(current), heading= 'Fill Rate of Cache\n(High numbers will cause heavy bandwidth use!)' ) return value
def old_thumbs(): from resources.libs import db from resources.libs.common import tools dbfile = os.path.join(CONFIG.DATABASE, db.latest_db('Textures')) use = 30 week = tools.get_date(days=-7) ids = [] images = [] size = 0 if os.path.exists(dbfile): try: textdb = database.connect(dbfile, isolation_level=None) textexe = textdb.cursor() except Exception as e: logging.log("DB Connection Error: {0}".format(str(e)), level=xbmc.LOGERROR) return False else: logging.log('{0} not found.'.format(dbfile), level=xbmc.LOGERROR) return False textexe.execute("SELECIONE a textura de id de tamanhos ONDE nós contamos < ? AND lastusetime < ?", (use, str(week))) found = textexe.fetchall() for rows in found: idfound = rows[0] ids.append(idfound) textexe.execute("SELECIONE url em cache DA textura WHERE id = ?", (idfound, )) found2 = textexe.fetchall() for rows2 in found2: images.append(rows2[0]) logging.log("{0} total thumbs limpos.".format(str(len(images)))) for id in ids: textexe.execute("EXCLUIR DE tamanhos ONDE idtexture = ?", (id, )) textexe.execute("EXCLUIR DA textura ONDE id = ?", (id, )) textexe.execute("VACUUM") textdb.commit() textexe.close() for image in images: path = os.path.join(CONFIG.THUMBNAILS, image) try: imagesize = os.path.getsize(path) os.remove(path) size += imagesize except: pass removed = tools.convert_size(size) if len(images) > 0: logging.log_notify(CONFIG.ADDONTITLE, '[COLOR {0}]Limpar Thumbs: {1} Files / {2} MB[/COLOR]!'.format(CONFIG.COLOR2, str(len(images)), removed)) else: logging.log_notify(CONFIG.ADDONTITLE, '[COLOR {0}]Limpar Thumbs: Nenhum encontrado![/COLOR]'.format(CONFIG.COLOR2))
def old_thumbs(): from resources.libs import db from resources.libs.common import tools dbfile = os.path.join(CONFIG.DATABASE, db.latest_db('Textures')) use = 30 week = tools.get_date(days=-7) ids = [] images = [] size = 0 if os.path.exists(dbfile): try: textdb = database.connect(dbfile, isolation_level=None) textexe = textdb.cursor() except Exception as e: logging.log("DB Error de Conexion: {0}".format(str(e)), level=xbmc.LOGERROR) return False else: logging.log('{0} no encontrado.'.format(dbfile), level=xbmc.LOGERROR) return False textexe.execute("SELECCIONE id textura DESDE tamaños DONDE contar el usado < ? Y ultima hora de uso < ?", (use, str(week))) found = textexe.fetchall() for rows in found: idfound = rows[0] ids.append(idfound) textexe.execute("SELECCIONAR cache url DE textura DONDE id = ?", (idfound, )) found2 = textexe.fetchall() for rows2 in found2: images.append(rows2[0]) logging.log("{0} total de pulgares limpios.".format(str(len(images)))) for id in ids: textexe.execute("BORRAR DE tamaños DONDE id textura = ?", (id, )) textexe.execute("BORRAR DE textura DONDE id = ?", (id, )) textexe.execute("VACUUM") textdb.commit() textexe.close() for image in images: path = os.path.join(CONFIG.THUMBNAILS, image) try: imagesize = os.path.getsize(path) os.remove(path) size += imagesize except: pass removed = tools.convert_size(size) if len(images) > 0: logging.log_notify(CONFIG.ADDONTITLE, '[COLOR {0}]Pulgares Borrados: {1} Archivos / {2} MB[/COLOR]!'.format(CONFIG.COLOR2, str(len(images)), removed)) else: logging.log_notify(CONFIG.ADDONTITLE, '[COLOR {0}]Pulgares Borrados: Ninguno Encontrado![/COLOR]'.format(CONFIG.COLOR2))
def logging_menu(self): errors = int(logging.error_checking(count=True)) errorsfound = str(errors) + ' Error(es) Encontrado' if errors > 0 else 'Nada Encontrado' wizlogsize = ': [COLOR red]No Encontrado[/COLOR]' if not os.path.exists( CONFIG.WIZLOG) else ": [COLOR azure]{0}[/COLOR]".format( tools.convert_size(os.path.getsize(CONFIG.WIZLOG))) directory.add_file('Activar Registro de Depuración', {'mode': 'enabledebug'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('Cargar Archivo de Registro', {'mode': 'uploadlog'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('Ver Errores en el Log: [COLOR azure][B]{0}[/B][/COLOR]'.format(errorsfound), {'mode': 'viewerrorlog'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) if errors > 0: directory.add_file('Ver el Ultimo error en el Log', {'mode': 'viewerrorlast'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('Ver Archivo de registro', {'mode': 'viewlog'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('Ver archivo de Registro del Wizard', {'mode': 'viewwizlog'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('Borrar archivo de registro del Wizard: [COLOR azure][B]{0}[/B][/COLOR]'.format(wizlogsize), {'mode': 'clearwizlog'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3)
def logging_menu(self): errors = int(logging.error_checking(count=True)) errorsfound = str( errors) + ' Error(s) Found' if errors > 0 else 'None Found' wizlogsize = ': [COLOR red]Not Found[/COLOR]' if not os.path.exists( CONFIG.WIZLOG) else ": [COLOR springgreen]{0}[/COLOR]".format( tools.convert_size(os.path.getsize(CONFIG.WIZLOG))) directory.add_file('Toggle Registro de depuración', {'mode': 'enabledebug'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('Cargar archivo de registro', {'mode': 'uploadlog'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file( 'Ver errores en el registro: [COLOR springgreen][B]{0}[/B][/COLOR]' .format(errorsfound), {'mode': 'viewerrorlog'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) if errors > 0: directory.add_file('Ver el último error en el registro', {'mode': 'viewerrorlast'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('Ver archivo de registro', {'mode': 'viewlog'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('Ver archivo de registro del asistente', {'mode': 'viewwizlog'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file( 'Borrar archivo de registro del asistente: [COLOR springgreen][B]{0}[/B][/COLOR]' .format(wizlogsize), {'mode': 'clearwizlog'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3)
def clean_menu(self): from resources.libs import clear from resources.libs.common import tools on = '[B][COLOR springgreen]ON[/COLOR][/B]' off = '[B][COLOR red]OFF[/COLOR][/B]' autoclean = 'true' if CONFIG.AUTOCLEANUP == 'true' else 'false' cache = 'true' if CONFIG.AUTOCACHE == 'true' else 'false' packages = 'true' if CONFIG.AUTOPACKAGES == 'true' else 'false' thumbs = 'true' if CONFIG.AUTOTHUMBS == 'true' else 'false' includevid = 'true' if CONFIG.INCLUDEVIDEO == 'true' else 'false' includeall = 'true' if CONFIG.INCLUDEALL == 'true' else 'false' sizepack = tools.get_size(CONFIG.PACKAGES) sizethumb = tools.get_size(CONFIG.THUMBNAILS) archive = tools.get_size(CONFIG.ARCHIVE_CACHE) sizecache = (clear.get_cache_size()) - archive totalsize = sizepack + sizethumb + sizecache directory.add_file( 'Total Clean Up: [COLOR springgreen][B]{0}[/B][/COLOR]'.format(tools.convert_size(totalsize)), {'mode': 'fullclean'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('Clear Cache: [COLOR springgreen][B]{0}[/B][/COLOR]'.format(tools.convert_size(sizecache)), {'mode': 'clearcache'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) if xbmc.getCondVisibility('System.HasAddon(script.module.urlresolver)') or xbmc.getCondVisibility( 'System.HasAddon(script.module.resolveurl)'): directory.add_file('Clear Resolver Function Caches', {'mode': 'clearfunctioncache'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('Clear Packages: [COLOR springgreen][B]{0}[/B][/COLOR]'.format(tools.convert_size(sizepack)), {'mode': 'clearpackages'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file( 'Clear Thumbnails: [COLOR springgreen][B]{0}[/B][/COLOR]'.format(tools.convert_size(sizethumb)), {'mode': 'clearthumb'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) if os.path.exists(CONFIG.ARCHIVE_CACHE): directory.add_file('Clear Archive_Cache: [COLOR springgreen][B]{0}[/B][/COLOR]'.format( tools.convert_size(archive)), {'mode': 'cleararchive'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('Clear Old Thumbnails', {'mode': 'oldThumbs'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('Clear Crash Logs', {'mode': 'clearcrash'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('Purge Databases', {'mode': 'purgedb'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('Fresh Start', {'mode': 'freshstart'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('Auto Clean', fanart=CONFIG.ADDON_FANART, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME1) directory.add_file('Auto Clean Up On Startup: {0}'.format(autoclean.replace('true', on).replace('false', off)), {'mode': 'togglesetting', 'name': 'autoclean'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) if autoclean == 'true': directory.add_file( '--- Auto Clean Frequency: [B][COLOR springgreen]{0}[/COLOR][/B]'.format( CONFIG.CLEANFREQ[CONFIG.AUTOFREQ]), {'mode': 'changefreq'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file( '--- Clear Cache on Startup: {0}'.format(cache.replace('true', on).replace('false', off)), {'mode': 'togglesetting', 'name': 'clearcache'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file( '--- Clear Packages on Startup: {0}'.format(packages.replace('true', on).replace('false', off)), {'mode': 'togglesetting', 'name': 'clearpackages'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file( '--- Clear Old Thumbs on Startup: {0}'.format(thumbs.replace('true', on).replace('false', off)), {'mode': 'togglesetting', 'name': 'clearthumbs'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('Clear Video Cache', fanart=CONFIG.ADDON_FANART, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME1) directory.add_file( 'Include Video Cache in Clear Cache: {0}'.format(includevid.replace('true', on).replace('false', off)), {'mode': 'togglecache', 'name': 'includevideo'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) if includeall == 'true': includegaia = 'true' includeexodusredux = 'true' includethecrew = 'true' includeyoda = 'true' includevenom = 'true' includenumbers = 'true' includescrubs = 'true' includeseren = 'true' else: includeexodusredux = 'true' if CONFIG.INCLUDEEXODUSREDUX == 'true' else 'false' includegaia = 'true' if CONFIG.INCLUDEGAIA == 'true' else 'false' includethecrew = 'true' if CONFIG.INCLUDETHECREW == 'true' else 'false' includeyoda = 'true' if CONFIG.INCLUDEYODA == 'true' else 'false' includevenom = 'true' if CONFIG.INCLUDEVENOM == 'true' else 'false' includenumbers = 'true' if CONFIG.INCLUDENUMBERS == 'true' else 'false' includescrubs = 'true' if CONFIG.INCLUDESCRUBS == 'true' else 'false' includeseren = 'true' if CONFIG.INCLUDESEREN == 'true' else 'false' if includevid == 'true': directory.add_file( '--- Include All Video Addons: {0}'.format(includeall.replace('true', on).replace('false', off)), {'mode': 'togglecache', 'name': 'includeall'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) if xbmc.getCondVisibility('System.HasAddon(plugin.video.exodusredux)'): directory.add_file( '--- Include Exodus Redux: {0}'.format( includeexodusredux.replace('true', on).replace('false', off)), {'mode': 'togglecache', 'name': 'includeexodusredux'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) if xbmc.getCondVisibility('System.HasAddon(plugin.video.gaia)'): directory.add_file( '--- Include Gaia: {0}'.format(includegaia.replace('true', on).replace('false', off)), {'mode': 'togglecache', 'name': 'includegaia'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) if xbmc.getCondVisibility('System.HasAddon(plugin.video.numbersbynumbers)'): directory.add_file( '--- Include NuMb3r5: {0}'.format(includenumbers.replace('true', on).replace('false', off)), {'mode': 'togglecache', 'name': 'includenumbers'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) if xbmc.getCondVisibility('System.HasAddon(plugin.video.scrubsv2)'): directory.add_file( '--- Include Scrubs v2: {0}'.format(includescrubs.replace('true', on).replace('false', off)), {'mode': 'togglecache', 'name': 'includescrubs'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) if xbmc.getCondVisibility('System.HasAddon(plugin.video.seren)'): directory.add_file( '--- Include Seren: {0}'.format(includeseren.replace('true', on).replace('false', off)), {'mode': 'togglecache', 'name': 'includeseren'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) if xbmc.getCondVisibility('System.HasAddon(plugin.video.thecrew)'): directory.add_file( '--- Include THE CREW: {0}'.format(includethecrew.replace('true', on).replace('false', off)), {'mode': 'togglecache', 'name': 'includethecrew'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) if xbmc.getCondVisibility('System.HasAddon(plugin.video.venom)'): directory.add_file( '--- Include Venom: {0}'.format(includevenom.replace('true', on).replace('false', off)), {'mode': 'togglecache', 'name': 'includevenom'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) if xbmc.getCondVisibility('System.HasAddon(plugin.video.yoda)'): directory.add_file( '--- Include Yoda: {0}'.format(includeyoda.replace('true', on).replace('false', off)), {'mode': 'togglecache', 'name': 'includeyoda'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('--- Enable All Video Addons', {'mode': 'togglecache', 'name': 'true'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('--- Disable All Video Addons', {'mode': 'togglecache', 'name': 'false'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3)
def all_with_progress(_in, _out, dp, ignore, title): from resources.libs import whitelist count = 0 errors = 0 error = '' update = 0 size = 0 excludes = [] try: zin = zipfile.ZipFile(_in, 'r', allowZip64=True) except Exception as e: errors += 1 error += '%s\n' % e logging.log('Error Checking Zip: {0}'.format(str(e)), level=xbmc.LOGERROR) return update, errors, error white_list = whitelist.whitelist('read') for item in white_list: try: name, id, fold = item except: pass excludes.append(fold) nFiles = float(len(zin.namelist())) zipsize = tools.convert_size( sum([item.file_size for item in zin.infolist()])) zipit = str(_in).replace('\\', '/').split('/') title = title if title else zipit[-1].replace('.zip', '') for item in zin.infolist(): try: str(item.filename).encode('ascii') except UnicodeDecodeError: logging.log( "[ASCII Check] Illegal character found in file: {0}".format( item.filename)) continue except UnicodeEncodeError: logging.log( "[ASCII Check] Illegal character found in file: {0}".format( item.filename)) continue count += 1 prog = int(count / nFiles * 100) size += item.file_size file = str(item.filename).split('/') skip = False line1 = '{0} [COLOR {1}][B][Errors:{2}][/B][/COLOR]'.format( title, CONFIG.COLOR2, errors) line2 = '[COLOR {0}][B]File:[/B][/COLOR] [COLOR {1}]{2}/{3}[/COLOR] '.format( CONFIG.COLOR2, CONFIG.COLOR1, count, int(nFiles)) line2 += '[COLOR {0}][B]Size:[/B][/COLOR] [COLOR {1}]{2}/{3}[/COLOR]'.format( CONFIG.COLOR2, CONFIG.COLOR1, tools.convert_size(size), zipsize) line3 = '[COLOR {0}]{1}[/COLOR]'.format(CONFIG.COLOR1, item.filename) if item.filename == 'userdata/sources.xml' and CONFIG.KEEPSOURCES == 'true': skip = True elif item.filename == 'userdata/favourites.xml' and CONFIG.KEEPFAVS == 'true': skip = True elif item.filename == 'userdata/profiles.xml' and CONFIG.KEEPPROFILES == 'true': skip = True elif item.filename == 'userdata/guisettings.xml' and CONFIG.KEEPGUISETTINGS == 'true': skip = True elif item.filename == 'userdata/playercorefactory.xml' and CONFIG.KEEPPLAYERCORE == 'true': skip = True elif item.filename == 'userdata/advancedsettings.xml' and CONFIG.KEEPADVANCED == 'true': skip = True elif file[0] == 'addons' and file[1] in excludes: skip = True elif file[0] == 'userdata' and file[1] == 'addon_data' and file[ 2] in excludes: skip = True elif file[-1] in CONFIG.LOGFILES: skip = True elif file[-1] in CONFIG.EXCLUDE_FILES: skip = True elif file[-1].endswith('.csv'): skip = True elif not str( item.filename).find('plugin.program.super.favourites' ) == -1 and CONFIG.KEEPSUPER == 'true': skip = True elif not str(item.filename).find( CONFIG.ADDON_ID) == -1 and ignore is None: skip = True if skip: logging.log("Skipping: {0}".format(item.filename)) else: try: zin.extract(item, _out) except Exception as e: errormsg = "[COLOR {0}]File:[/COLOR] [COLOR {1}]{2}[/COLOR]\n".format( CONFIG.COLOR2, CONFIG.COLOR1, file[-1]) errormsg += "[COLOR {0}]Folder:[/COLOR] [COLOR {1}]{2}[/COLOR]\n".format( CONFIG.COLOR2, CONFIG.COLOR1, item.filename.replace(file[-1], '')) errormsg += "[COLOR {0}]Error:[/COLOR] [COLOR {1}]{2}[/COLOR]\n\n".format( CONFIG.COLOR2, CONFIG.COLOR1, str(e).replace('\\\\', '\\').replace("'{0}'".format(item.filename), '')) errors += 1 error += errormsg logging.log('Error Extracting: {0}({1})'.format( item.filename, str(e)), level=xbmc.LOGERROR) pass dp.update(prog, line1 + '\n' + line2 + '\n' + line3) if dp.iscanceled(): break if dp.iscanceled(): dp.close() logging.log_notify( CONFIG.ADDONTITLE, "[COLOR {0}]Extract Cancelled[/COLOR]".format(CONFIG.COLOR2)) sys.exit() return prog, errors, error
def build_info(self, name): from resources.libs import check from resources.libs.common import logging from resources.libs.common import tools from resources.libs.gui import window response = tools.open_url(CONFIG.BUILDFILE, check=True) if response: if check.check_build(name, 'url'): name, version, url, minor, gui_ignore, kodi, theme, icon, fanart, preview, adult, info, description = check.check_build( name, 'all') adult = 'Yes' if adult.lower() == 'yes' else 'No' info_response = tools.open_url(info) if info_response: try: tname, extracted, zipsize, skin, created, programs, video, music, picture, repos, scripts, binaries = check.check_info( info_response.text) extend = True except: extend = False else: extend = False themes = self.theme_count(name, count=False) msg = "[COLOR {0}]Build Name:[/COLOR] [COLOR {1}]{2}[/COLOR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, name) msg += "[COLOR {0}]Build Version:[/COLOR] [COLOR {1}]{2}[/COLOR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, version) if themes: msg += "[COLOR {0}]Build Theme(s):[/COLOR] [COLOR {1}]{2}[/COLOR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, ', '.join(themes)) msg += "[COLOR {0}]Kodi Version:[/COLOR] [COLOR {1}]{2}[/COLOR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, kodi) msg += "[COLOR {0}]Adult Content:[/COLOR] [COLOR {1}]{2}[/COLOR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, adult) msg += "[COLOR {0}]Description:[/COLOR] [COLOR {1}]{2}[/COLOR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, description) if extend: msg += "[COLOR {0}]Latest Update:[/COLOR] [COLOR {1}]{2}[/COLOR][CR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, created) msg += "[COLOR {0}]Extracted Size:[/COLOR] [COLOR {1}]{2}[/COLOR][CR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, tools.convert_size(int(float(extracted)))) msg += "[COLOR {0}]Zip Size:[/COLOR] [COLOR {1}]{2}[/COLOR][CR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, tools.convert_size(int(float(zipsize)))) msg += "[COLOR {0}]Skin Name:[/COLOR] [COLOR {1}]{2}[/COLOR][CR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, skin) msg += "[COLOR {0}]Programs:[/COLOR] [COLOR {1}]{2}[/COLOR][CR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, programs) msg += "[COLOR {0}]Video:[/COLOR] [COLOR {1}]{2}[/COLOR][CR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, video) msg += "[COLOR {0}]Music:[/COLOR] [COLOR {1}]{2}[/COLOR][CR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, music) msg += "[COLOR {0}]Pictures:[/COLOR] [COLOR {1}]{2}[/COLOR][CR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, picture) msg += "[COLOR {0}]Repositories:[/COLOR] [COLOR {1}]{2}[/COLOR][CR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, repos) msg += "[COLOR {0}]Scripts:[/COLOR] [COLOR {1}]{2}[/COLOR][CR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, scripts) msg += "[COLOR {0}]Binaries:[/COLOR] [COLOR {1}]{2}[/COLOR]".format( CONFIG.COLOR2, CONFIG.COLOR1, binaries) window.show_text_box("Viewing Build Info: {0}".format(name), msg) else: logging.log("Invalid Build Name!") else: logging.log("Build text file not working: {0}".format( CONFIG.BUILDFILE))
def system_info(): from resources.libs.common import logging from resources.libs.common import tools from resources.libs import speedtest infoLabel = ['System.FriendlyName', 'System.BuildVersion', 'System.CpuUsage', 'System.ScreenMode', 'Network.IPAddress', 'Network.MacAddress', 'System.Uptime', 'System.TotalUptime', 'System.FreeSpace', 'System.UsedSpace', 'System.TotalSpace', 'System.Memory(free)', 'System.Memory(used)', 'System.Memory(total)'] data = [] x = 0 for info in infoLabel: temp = tools.get_info_label(info) y = 0 while temp == "Busy" and y < 10: temp = tools.get_info_label(info) y += 1 logging.log("{0} sleep {1}".format(info, str(y))) xbmc.sleep(200) data.append(temp) x += 1 storage_free = data[8] if 'Una' in data[8] else tools.convert_size(int(float(data[8][:-8])) * 1024 * 1024) storage_used = data[9] if 'Una' in data[9] else tools.convert_size(int(float(data[9][:-8])) * 1024 * 1024) storage_total = data[10] if 'Una' in data[10] else tools.convert_size(int(float(data[10][:-8])) * 1024 * 1024) ram_free = tools.convert_size(int(float(data[11][:-2])) * 1024 * 1024) ram_used = tools.convert_size(int(float(data[12][:-2])) * 1024 * 1024) ram_total = tools.convert_size(int(float(data[13][:-2])) * 1024 * 1024) picture = [] music = [] video = [] programs = [] repos = [] scripts = [] skins = [] fold = glob.glob(os.path.join(CONFIG.ADDONS, '*/')) for folder in sorted(fold, key = lambda x: x): foldername = os.path.split(folder[:-1])[1] if foldername == 'packages': continue xml = os.path.join(folder, 'addon.xml') if os.path.exists(xml): prov = re.compile("<provides>(.+?)</provides>").findall(tools.read_from_file(xml)) if len(prov) == 0: if foldername.startswith('skin'): skins.append(foldername) elif foldername.startswith('repo'): repos.append(foldername) else: scripts.append(foldername) elif not (prov[0]).find('executable') == -1: programs.append(foldername) elif not (prov[0]).find('video') == -1: video.append(foldername) elif not (prov[0]).find('audio') == -1: music.append(foldername) elif not (prov[0]).find('image') == -1: picture.append(foldername) directory.add_file('[B]Media Center Info:[/B]', icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME2) directory.add_file('[COLOR {0}]Name:[/COLOR] [COLOR {1}]{2}[/COLOR]'.format(CONFIG.COLOR1, CONFIG.COLOR2, data[0]), icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('[COLOR {0}]Version:[/COLOR] [COLOR {1}]{2}[/COLOR]'.format(CONFIG.COLOR1, CONFIG.COLOR2, data[1]), icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('[COLOR {0}]Platform:[/COLOR] [COLOR {1}]{2}[/COLOR]'.format(CONFIG.COLOR1, CONFIG.COLOR2, tools.platform().title()), icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('[COLOR {0}]CPU Usage:[/COLOR] [COLOR {1}]{2}[/COLOR]'.format(CONFIG.COLOR1, CONFIG.COLOR2, data[2]), icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('[COLOR {0}]Screen Mode:[/COLOR] [COLOR {1}]{2}[/COLOR]'.format(CONFIG.COLOR1, CONFIG.COLOR2, data[3]), icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('[B]Uptime:[/B]', icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME2) directory.add_file('[COLOR {0}]Current Uptime:[/COLOR] [COLOR {1}]{2}[/COLOR]'.format(CONFIG.COLOR1, CONFIG.COLOR2, data[6]), icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME2) directory.add_file('[COLOR {0}]Total Uptime:[/COLOR] [COLOR {1}]{2}[/COLOR]'.format(CONFIG.COLOR1, CONFIG.COLOR2, data[7]), icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME2) directory.add_file('[B]Local Storage:[/B]', icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME2) directory.add_file('[COLOR {0}]Used Storage:[/COLOR] [COLOR {1}]{2}[/COLOR]'.format(CONFIG.COLOR1, CONFIG.COLOR2, storage_used), icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME2) directory.add_file('[COLOR {0}]Free Storage:[/COLOR] [COLOR {1}]{2}[/COLOR]'.format(CONFIG.COLOR1, CONFIG.COLOR2, storage_free), icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME2) directory.add_file('[COLOR {0}]Total Storage:[/COLOR] [COLOR {1}]{2}[/COLOR]'.format(CONFIG.COLOR1, CONFIG.COLOR2, storage_total), icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME2) directory.add_file('[B]Ram Usage:[/B]', icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME2) directory.add_file('[COLOR {0}]Used Memory:[/COLOR] [COLOR {1}]{2}[/COLOR]'.format(CONFIG.COLOR1, CONFIG.COLOR2, ram_free), icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME2) directory.add_file('[COLOR {0}]Free Memory:[/COLOR] [COLOR {1}]{2}[/COLOR]'.format(CONFIG.COLOR1, CONFIG.COLOR2, ram_used), icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME2) directory.add_file('[COLOR {0}]Total Memory:[/COLOR] [COLOR {1}]{2}[/COLOR]'.format(CONFIG.COLOR1, CONFIG.COLOR2, ram_total), icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME2) mac, inter_ip, ip, city, state, country, isp = speedtest.net_info() directory.add_file('[B]Network:[/B]', icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME2) directory.add_file('[COLOR {0}]Mac:[/COLOR] [COLOR {1}]{2}[/COLOR]'.format(CONFIG.COLOR1, CONFIG.COLOR2, mac), icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME2) directory.add_file('[COLOR {0}]Internal IP: [COLOR {1}]{2}[/COLOR]'.format(CONFIG.COLOR1, CONFIG.COLOR2, inter_ip), icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME2) directory.add_file('[COLOR {0}]External IP:[/COLOR] [COLOR {1}]{2}[/COLOR]'.format(CONFIG.COLOR1, CONFIG.COLOR2, ip), icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME2) directory.add_file('[COLOR {0}]City:[/COLOR] [COLOR {1}]{2}[/COLOR]'.format(CONFIG.COLOR1, CONFIG.COLOR2, city), icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME2) directory.add_file('[COLOR {0}]State:[/COLOR] [COLOR {1}]{2}[/COLOR]'.format(CONFIG.COLOR1, CONFIG.COLOR2, state), icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME2) directory.add_file('[COLOR {0}]Country:[/COLOR] [COLOR {1}]{2}[/COLOR]'.format(CONFIG.COLOR1, CONFIG.COLOR2, country), icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME2) directory.add_file('[COLOR {0}]ISP:[/COLOR] [COLOR {1}]{2}[/COLOR]'.format(CONFIG.COLOR1, CONFIG.COLOR2, isp), icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME2) totalcount = len(picture) + len(music) + len(video) + len(programs) + len(scripts) + len(skins) + len(repos) directory.add_file('[B]Addons([COLOR {0}]{1}[/COLOR]):[/B]'.format(CONFIG.COLOR1, totalcount), icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME2) directory.add_file('[COLOR {0}]Video Addons:[/COLOR] [COLOR {1}]{2}[/COLOR]'.format(CONFIG.COLOR1, CONFIG.COLOR2, str(len(video))), icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME2) directory.add_file('[COLOR {0}]Program Addons:[/COLOR] [COLOR {1}]{2}[/COLOR]'.format(CONFIG.COLOR1, CONFIG.COLOR2, str(len(programs))), icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME2) directory.add_file('[COLOR {0}]Music Addons:[/COLOR] [COLOR {1}]{2}[/COLOR]'.format(CONFIG.COLOR1, CONFIG.COLOR2, str(len(music))), icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME2) directory.add_file('[COLOR {0}]Picture Addons:[/COLOR] [COLOR {1}]{2}[/COLOR]'.format(CONFIG.COLOR1, CONFIG.COLOR2, str(len(picture))), icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME2) directory.add_file('[COLOR {0}]Repositories:[/COLOR] [COLOR {1}]{2}[/COLOR]'.format(CONFIG.COLOR1, CONFIG.COLOR2, str(len(repos))), icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME2) directory.add_file('[COLOR {0}]Skins:[/COLOR] [COLOR {1}]{2}[/COLOR]'.format(CONFIG.COLOR1, CONFIG.COLOR2, str(len(skins))), icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME2) directory.add_file('[COLOR {0}]Scripts/Modules:[/COLOR] [COLOR {1}]{2}[/COLOR]'.format(CONFIG.COLOR1, CONFIG.COLOR2, str(len(scripts))), icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME2)
def clean_menu(self): from resources.libs import clear from resources.libs.common import tools on = '[B][COLOR azure]ON[/COLOR][/B]' off = '[B][COLOR red]OFF[/COLOR][/B]' autoclean = 'true' if CONFIG.AUTOCLEANUP == 'true' else 'false' cache = 'true' if CONFIG.AUTOCACHE == 'true' else 'false' packages = 'true' if CONFIG.AUTOPACKAGES == 'true' else 'false' thumbs = 'true' if CONFIG.AUTOTHUMBS == 'true' else 'false' includevid = 'true' if CONFIG.INCLUDEVIDEO == 'true' else 'false' includeall = 'true' if CONFIG.INCLUDEALL == 'true' else 'false' sizepack = tools.get_size(CONFIG.PACKAGES) sizethumb = tools.get_size(CONFIG.THUMBNAILS) archive = tools.get_size(CONFIG.ARCHIVE_CACHE) sizecache = (clear.get_cache_size()) - archive totalsize = sizepack + sizethumb + sizecache directory.add_file( 'Limpieza Total: [COLOR azure][B]{0}[/B][/COLOR]'.format(tools.convert_size(totalsize)), {'mode': 'fullclean'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('Borrar Cache: [COLOR azure][B]{0}[/B][/COLOR]'.format(tools.convert_size(sizecache)), {'mode': 'clearcache'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) if xbmc.getCondVisibility('System.HasAddon(script.module.urlresolver)') or xbmc.getCondVisibility( 'System.HasAddon(script.module.resolveurl)'): directory.add_file('Borrar Cache de Función de Resolución', {'mode': 'clearfunctioncache'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('Borrar Paquetes: [COLOR azure][B]{0}[/B][/COLOR]'.format(tools.convert_size(sizepack)), {'mode': 'clearpackages'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file( 'Borrar Miniaturas: [COLOR azure][B]{0}[/B][/COLOR]'.format(tools.convert_size(sizethumb)), {'mode': 'clearthumb'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) if os.path.exists(CONFIG.ARCHIVE_CACHE): directory.add_file('Limpiar Archivo_Cache: [COLOR azure][B]{0}[/B][/COLOR]'.format( tools.convert_size(archive)), {'mode': 'cleararchive'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('Borrar Miniaturas Antiguas', {'mode': 'oldThumbs'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('Borrar Registros Accidental', {'mode': 'clearcrash'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('Limpiar Bases_Datos', {'mode': 'purgedb'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('Restarurar Configuracion', {'mode': 'freshstart'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('[B]Auto Limpieza[/B]', fanart=CONFIG.ADDON_FANART, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME1) directory.add_file('Auto Limpieza al Iniciar: {0}'.format(autoclean.replace('true', on).replace('false', off)), {'mode': 'togglesetting', 'name': 'autoclean'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) if autoclean == 'true': directory.add_file( '--- Auto Clean Frequency: [B][COLOR azure]{0}[/COLOR][/B]'.format( CONFIG.CLEANFREQ[CONFIG.AUTOFREQ]), {'mode': 'changefreq'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file( '--- Clear Cache on Startup: {0}'.format(cache.replace('true', on).replace('false', off)), {'mode': 'togglesetting', 'name': 'clearcache'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file( '--- Clear Packages on Startup: {0}'.format(packages.replace('true', on).replace('false', off)), {'mode': 'togglesetting', 'name': 'clearpackages'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file( '--- Clear Old Thumbs on Startup: {0}'.format(thumbs.replace('true', on).replace('false', off)), {'mode': 'togglesetting', 'name': 'clearthumbs'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('[B]Borrar Video Cache[/B]', fanart=CONFIG.ADDON_FANART, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME1) directory.add_file( 'Incluir Video Cache en Borrar Cache: {0}'.format(includevid.replace('true', on).replace('false', off)), {'mode': 'togglecache', 'name': 'includevideo'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) if includeall == 'true': includegaia = 'true' includeexodusredux = 'true' includethecrew = 'true' includeyoda = 'true' includevenom = 'true' includenumbers = 'true' includescrubs = 'true' includeseren = 'true' else: includeexodusredux = 'true' if CONFIG.INCLUDEEXODUSREDUX == 'true' else 'false' includegaia = 'true' if CONFIG.INCLUDEGAIA == 'true' else 'false' includethecrew = 'true' if CONFIG.INCLUDETHECREW == 'true' else 'false' includeyoda = 'true' if CONFIG.INCLUDEYODA == 'true' else 'false' includevenom = 'true' if CONFIG.INCLUDEVENOM == 'true' else 'false' includenumbers = 'true' if CONFIG.INCLUDENUMBERS == 'true' else 'false' includescrubs = 'true' if CONFIG.INCLUDESCRUBS == 'true' else 'false' includeseren = 'true' if CONFIG.INCLUDESEREN == 'true' else 'false' if includevid == 'true': directory.add_file( '[COLOR azure]---[/COLOR] Incluir TODOS los Addons de Video: {0}'.format(includeall.replace('true', on).replace('false', off)), {'mode': 'togglecache', 'name': 'includeall'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) if xbmc.getCondVisibility('System.HasAddon(plugin.video.exodusredux)'): directory.add_file( '--- Include Exodus Redux: {0}'.format( includeexodusredux.replace('true', on).replace('false', off)), {'mode': 'togglecache', 'name': 'includeexodusredux'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) if xbmc.getCondVisibility('System.HasAddon(plugin.video.gaia)'): directory.add_file( '--- Include Gaia: {0}'.format(includegaia.replace('true', on).replace('false', off)), {'mode': 'togglecache', 'name': 'includegaia'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) if xbmc.getCondVisibility('System.HasAddon(plugin.video.numbersbynumbers)'): directory.add_file( '--- Include NuMb3r5: {0}'.format(includenumbers.replace('true', on).replace('false', off)), {'mode': 'togglecache', 'name': 'includenumbers'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) if xbmc.getCondVisibility('System.HasAddon(plugin.video.scrubsv2)'): directory.add_file( '--- Include Scrubs v2: {0}'.format(includescrubs.replace('true', on).replace('false', off)), {'mode': 'togglecache', 'name': 'includescrubs'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) if xbmc.getCondVisibility('System.HasAddon(plugin.video.seren)'): directory.add_file( '--- Include Seren: {0}'.format(includeseren.replace('true', on).replace('false', off)), {'mode': 'togglecache', 'name': 'includeseren'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) if xbmc.getCondVisibility('System.HasAddon(plugin.video.thecrew)'): directory.add_file( '--- Include THE CREW: {0}'.format(includethecrew.replace('true', on).replace('false', off)), {'mode': 'togglecache', 'name': 'includethecrew'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) if xbmc.getCondVisibility('System.HasAddon(plugin.video.venom)'): directory.add_file( '--- Include Venom: {0}'.format(includevenom.replace('true', on).replace('false', off)), {'mode': 'togglecache', 'name': 'includevenom'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) if xbmc.getCondVisibility('System.HasAddon(plugin.video.yoda)'): directory.add_file( '--- Include Yoda: {0}'.format(includeyoda.replace('true', on).replace('false', off)), {'mode': 'togglecache', 'name': 'includeyoda'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('[COLOR azure]---[/COLOR] Habilitar TODOS los Addons de Video', {'mode': 'togglecache', 'name': 'true'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3) directory.add_file('[COLOR azure]---[/COLOR] Desactivar TODOS los Addons de Video', {'mode': 'togglecache', 'name': 'false'}, icon=CONFIG.ICONMAINT, themeit=CONFIG.THEME3)
def build_info(self, name): from resources.libs import check from resources.libs.common import logging from resources.libs.common import tools from resources.libs.gui import window response = tools.open_url(CONFIG.BUILDFILE, check=True) if response: if check.check_build(name, 'url'): name, version, url, minor, gui_ignore, kodi, theme, icon, fanart, preview, adult, info, description = check.check_build( name, 'all') adult = 'Yes' if adult.lower() == 'yes' else 'No' info_response = tools.open_url(info) if info_response: try: tname, extracted, zipsize, skin, created, programs, video, music, picture, repos, scripts, binaries = check.check_info( info_response.text) extend = True except: extend = False else: extend = False themes = self.theme_count(name, count=False) msg = "[COLOR {0}]Nombre Build:[/COLOR] [COLOR {1}]{2}[/COLOR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, name) msg += "[COLOR {0}]Version Build:[/COLOR] [COLOR {1}]{2}[/COLOR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, version) if themes: msg += "[COLOR {0}]Build Parche(s):[/COLOR] [COLOR {1}]{2}[/COLOR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, ', '.join(themes)) msg += "[COLOR {0}]Version Kodi:[/COLOR] [COLOR {1}]{2}[/COLOR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, kodi) msg += "[COLOR {0}]Contenido Adulto:[/COLOR] [COLOR {1}]{2}[/COLOR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, adult) msg += "[COLOR {0}]Descripción:[/COLOR] [COLOR {1}]{2}[/COLOR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, description) if extend: msg += "[COLOR {0}]Ultima Actualización:[/COLOR] [COLOR {1}]{2}[/COLOR][CR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, created) msg += "[COLOR {0}]Tamaño Extraido:[/COLOR] [COLOR {1}]{2}[/COLOR][CR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, tools.convert_size(int(float(extracted)))) msg += "[COLOR {0}]Tamaño Zip:[/COLOR] [COLOR {1}]{2}[/COLOR][CR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, tools.convert_size(int(float(zipsize)))) msg += "[COLOR {0}]Nombre Skin:[/COLOR] [COLOR {1}]{2}[/COLOR][CR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, skin) msg += "[COLOR {0}]Programas:[/COLOR] [COLOR {1}]{2}[/COLOR][CR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, programs) msg += "[COLOR {0}]Video:[/COLOR] [COLOR {1}]{2}[/COLOR][CR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, video) msg += "[COLOR {0}]Música:[/COLOR] [COLOR {1}]{2}[/COLOR][CR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, music) msg += "[COLOR {0}]Imágenes:[/COLOR] [COLOR {1}]{2}[/COLOR][CR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, picture) msg += "[COLOR {0}]Repositorios:[/COLOR] [COLOR {1}]{2}[/COLOR][CR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, repos) msg += "[COLOR {0}]Scripts:[/COLOR] [COLOR {1}]{2}[/COLOR][CR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, scripts) msg += "[COLOR {0}]Binarios:[/COLOR] [COLOR {1}]{2}[/COLOR]".format( CONFIG.COLOR2, CONFIG.COLOR1, binaries) window.show_text_box( "[B][COLOR azure]Visualización de Información de la Build:[/COLOR][/B] [COLOR blue]{0}[/COLOR]" .format(name), msg) else: logging.log("Nombre Inválido de la Build!") else: logging.log( "[B][COLOR azure]La Build del archivo de texto no funciona:[/COLOR][/B] [COLOR blue]{0}[/COLOR]" .format(CONFIG.BUILDFILE))
def build_info(self, name): from resources.libs import check from resources.libs.common import logging from resources.libs.common import tools from resources.libs.gui import window if 75 - 75: o0oOOo0O0Ooo.Oo0ooO0oo0oO iiiI11 = tools.open_url(CONFIG.BUILDFILE, check=True) if 54 - 54: II111iiii % OoOoOO00 % I11i % iIii1I11I1II1 + iIii1I11I1II1 * Oo0ooO0oo0oO if iiiI11: if check.check_build(name, 'url'): name, o00, Oo0oO0ooo, O00O0oOO00O00, i1Oo00, i1, oOOoo00O0O, i1111, i11, I1i1I, I11, oOO00oOO, Oo0o0000o0o0 = check.check_build( name, 'all') I11 = 'Yes' if I11.lower() == 'yes' else 'No' if 31 - 31: O0oo0OO0.OoOoOO00 / O0 o000O0o = tools.open_url(oOO00oOO) if 42 - 42: OoOoOO00 if o000O0o: try: II, Ii1I1IIii1II, O0ii1ii1ii, oooooOoo0ooo, I1I1IiI1, III1iII1I1ii, oOOo0, oo00O00oO, iIiIIIi, ooo00OOOooO, O00OOOoOoo0O, O000OOo00oo = check.check_info( o000O0o.text) oo0OOo = True except: oo0OOo = False else: oo0OOo = False if 64 - 64: I11i i1IIiiiii = self.theme_count(name, count=False) if 22 - 22: Oo0Ooo + Ii1I % I1ii11iIi11i iI1 = "[COLOR {0}]Nome da construção:[/COLOR] [COLOR {1}]{2}[/COLOR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, name) iI1 += "[COLOR {0}]Build Version:[/COLOR] [COLOR {1}]{2}[/COLOR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, o00) if i1IIiiiii: iI1 += "[COLOR {0}]Build Tema(s):[/COLOR] [COLOR {1}]{2}[/COLOR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, ', '.join(i1IIiiiii)) iI1 += "[COLOR {0}]Versão Kodi:[/COLOR] [COLOR {1}]{2}[/COLOR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, i1) iI1 += "[COLOR {0}]Conteúdo adulto:[/COLOR] [COLOR {1}]{2}[/COLOR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, I11) iI1 += "[COLOR {0}]Descrição:[/COLOR] [COLOR {1}]{2}[/COLOR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, Oo0o0000o0o0) if 28 - 28: OoO0O00 + Ii1I / OoO0O00.II111iiii if oo0OOo: iI1 += "[COLOR {0}]Última atualização:[/COLOR] [COLOR {1}]{2}[/COLOR][CR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, I1I1IiI1) iI1 += "[COLOR {0}]Tamanho Extraído:[/COLOR] [COLOR {1}]{2}[/COLOR][CR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, tools.convert_size(int(float(Ii1I1IIii1II)))) iI1 += "[COLOR {0}]Tamanho Zip:[/COLOR] [COLOR {1}]{2}[/COLOR][CR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, tools.convert_size(int(float(O0ii1ii1ii)))) iI1 += "[COLOR {0}]Nome da Skin:[/COLOR] [COLOR {1}]{2}[/COLOR][CR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, oooooOoo0ooo) iI1 += "[COLOR {0}]Programa:[/COLOR] [COLOR {1}]{2}[/COLOR][CR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, III1iII1I1ii) iI1 += "[COLOR {0}]Video:[/COLOR] [COLOR {1}]{2}[/COLOR][CR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, oOOo0) iI1 += "[COLOR {0}]Música:[/COLOR] [COLOR {1}]{2}[/COLOR][CR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, oo00O00oO) iI1 += "[COLOR {0}]Fotos:[/COLOR] [COLOR {1}]{2}[/COLOR][CR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, iIiIIIi) iI1 += "[COLOR {0}]Repositórios:[/COLOR] [COLOR {1}]{2}[/COLOR][CR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, ooo00OOOooO) iI1 += "[COLOR {0}]Scripts:[/COLOR] [COLOR {1}]{2}[/COLOR][CR][CR]".format( CONFIG.COLOR2, CONFIG.COLOR1, O00OOOoOoo0O) iI1 += "[COLOR {0}]Binários:[/COLOR] [COLOR {1}]{2}[/COLOR]".format( CONFIG.COLOR2, CONFIG.COLOR1, O000OOo00oo) if 68 - 68: i11iIiiIii % I1ii11iIi11i + i11iIiiIii window.show_text_box( "Visualizando informações de compilação: {0}".format(name), iI1) else: logging.log("Nome de compilação inválido!") else: logging.log( "O arquivo de texto de compilação não está funcionando: {0}". format(CONFIG.BUILDFILE)) if 31 - 31: II111iiii.I1IiiI