def remove_addon_data(addon): dialog = xbmcgui.Dialog() if addon == 'all': # clear ALL addon data if dialog.yesno( CONFIG.ADDONTITLE, '[COLOR {0}]Would you like to remove [COLOR {1}]ALL[/COLOR] addon data stored in your userdata folder?[/COLOR]' .format(CONFIG.COLOR2, CONFIG.COLOR1), yeslabel='[B][COLOR springgreen]Remove Data[/COLOR][/B]', nolabel='[B][COLOR red]Don\'t Remove[/COLOR][/B]'): tools.clean_house(CONFIG.ADDON_DATA) else: logging.log_notify( '[COLOR {0}]Remove Addon Data[/COLOR]'.format(CONFIG.COLOR1), '[COLOR {0}]Cancelled![/COLOR]'.format(CONFIG.COLOR2)) elif addon == 'uninstalled': # clear addon data for uninstalled addons if dialog.yesno( CONFIG.ADDONTITLE, '[COLOR {0}]Would you like to remove [COLOR {1}]ALL[/COLOR] addon data stored in your userdata folder for uninstalled addons?[/COLOR]' .format(CONFIG.COLOR2, CONFIG.COLOR1), yeslabel='[B][COLOR springgreen]Remove Data[/COLOR][/B]', nolabel='[B][COLOR red]Don\'t Remove[/COLOR][/B]'): total = 0 for folder in glob.glob(os.path.join(CONFIG.ADDON_DATA, '*')): foldername = folder.replace(CONFIG.ADDON_DATA, '').replace('\\', '').replace('/', '') if foldername in CONFIG.EXCLUDES: pass elif os.path.exists(os.path.join(CONFIG.ADDONS, foldername)): pass elif os.path.isdir(folder): tools.clean_house(folder) total += 1 logging.log(folder) shutil.rmtree(folder) logging.log_notify( '[COLOR {0}]Clean up Uninstalled[/COLOR]'.format( CONFIG.COLOR1), '[COLOR {0}]{1} Folders(s) Removed[/COLOR]'.format( CONFIG.COLOR2, total)) else: logging.log_notify( '[COLOR {0}]Remove Add-on Data[/COLOR]'.format(CONFIG.COLOR1), '[COLOR {0}]Cancelled![/COLOR]'.format(CONFIG.COLOR2)) elif addon == 'empty': # clear empty folders from addon_data if dialog.yesno( CONFIG.ADDONTITLE, '[COLOR {0}]Would you like to remove [COLOR {1}]ALL[/COLOR] empty addon data folders in your userdata folder?[/COLOR]' .format(CONFIG.COLOR2, CONFIG.COLOR1), yeslabel='[B][COLOR springgreen]Remove Data[/COLOR][/B]', nolabel='[B][COLOR red]Don\'t Remove[/COLOR][/B]'): total = tools.empty_folder(CONFIG.ADDON_DATA) logging.log_notify( '[COLOR {0}]Remove Empty Folders[/COLOR]'.format( CONFIG.COLOR1), '[COLOR {0}]{1} Folders(s) Removed[/COLOR]'.format( CONFIG.COLOR2, total)) else: logging.log_notify( '[COLOR {0}]Remove Empty Folders[/COLOR]'.format( CONFIG.COLOR1), '[COLOR {0}]Cancelled![/COLOR]'.format(CONFIG.COLOR2)) else: # clear addon data for a specific addon addon_data = os.path.join(CONFIG.ADDON_DATA, addon) if addon in CONFIG.EXCLUDES: logging.log_notify( "[COLOR {0}]Protected Plugin[/COLOR]".format(CONFIG.COLOR1), "[COLOR {0}]Not allowed to remove add-on data[/COLOR]".format( CONFIG.COLOR2)) elif os.path.exists(addon_data): if dialog.yesno( CONFIG.ADDONTITLE, '[COLOR {0}]Would you also like to remove the add-on data for:[/COLOR]' .format(CONFIG.COLOR2) + '\n' + '[COLOR {0}]{1}[/COLOR]'.format(CONFIG.COLOR1, addon), yeslabel='[B][COLOR springgreen]Remove Data[/COLOR][/B]', nolabel='[B][COLOR red]Don\'t Remove[/COLOR][/B]'): tools.clean_house(addon_data) try: shutil.rmtree(addon_data) except: logging.log("Error deleting: {0}".format(addon_data)) else: logging.log( 'Add-on data for {0} was not removed'.format(addon)) xbmc.executebuiltin('Container.Refresh()')
def remove_addon_data(addon): dialog = xbmcgui.Dialog() if addon == 'all': # clear ALL addon data if dialog.yesno(CONFIG.ADDONTITLE, '[COLOR {0}]Le gustaria eliminar [COLOR {1}]TODOS[/COLOR] los datos de los addons almacenados en su carpeta de datos de usuario para los addons desinstalados?[/COLOR]'.format(CONFIG.COLOR2, CONFIG.COLOR1), yeslabel='[B][COLOR dodgerblue]Eliminar Datos[/COLOR][/B]', nolabel='[B][COLOR red]No Eliminar[/COLOR][/B]'): tools.clean_house(CONFIG.ADDON_DATA) else: logging.log_notify('[COLOR {0}]Eliminar Datos de Addons[/COLOR]'.format(CONFIG.COLOR1), '[COLOR {0}]Cancelado![/COLOR]'.format(CONFIG.COLOR2)) elif addon == 'uninstalled': # clear addon data for uninstalled addons if dialog.yesno(CONFIG.ADDONTITLE, '[COLOR {0}]Le gustaría eliminar [COLOR {1}]TODOS[/COLOR] los datos de los addons almacenados en su carpeta de datos de usuario para los addons desinstalados?[/COLOR]'.format(CONFIG.COLOR2, CONFIG.COLOR1), yeslabel='[B][COLOR dodgerblue]Eliminar Datos[/COLOR][/B]', nolabel='[B][COLOR red]No Eliminar[/COLOR][/B]'): total = 0 for folder in glob.glob(os.path.join(CONFIG.ADDON_DATA, '*')): foldername = folder.replace(CONFIG.ADDON_DATA, '').replace('\\', '').replace('/', '') if foldername in CONFIG.EXCLUDES: pass elif os.path.exists(os.path.join(CONFIG.ADDONS, foldername)): pass elif os.path.isdir(folder): tools.clean_house(folder) total += 1 logging.log(folder) shutil.rmtree(folder) logging.log_notify('[COLOR {0}]Limpiar Desinstalado[/COLOR]'.format(CONFIG.COLOR1), '[COLOR {0}]{1} Carpetas(s) Eliminada[/COLOR]'.format(CONFIG.COLOR2, total)) else: logging.log_notify('[COLOR {0}]Eliminar Datos de Add-ons[/COLOR]'.format(CONFIG.COLOR1), '[COLOR {0}]Cancelado![/COLOR]'.format(CONFIG.COLOR2)) elif addon == 'empty': # clear empty folders from addon_data if dialog.yesno(CONFIG.ADDONTITLE, '[COLOR {0}]Le gustaria eliminar [COLOR {1}] TODAS [/ COLOR] las carpetas de datos de addons vacias en su carpeta de datos de usuario?[/COLOR]'.format(CONFIG.COLOR2, CONFIG.COLOR1), yeslabel='[B][COLOR dodgerblue]Eliminar Datos[/COLOR][/B]', nolabel='[B][COLOR red]No Eliminar[/COLOR][/B]'): total = tools.empty_folder(CONFIG.ADDON_DATA) logging.log_notify('[COLOR {0}]Eliminar Carpetas Vacias[/COLOR]'.format(CONFIG.COLOR1), '[COLOR {0}]{1} Carpeta(s) Eliminada[/COLOR]'.format(CONFIG.COLOR2, total)) else: logging.log_notify('[COLOR {0}]Eliminar Carpetas Vacias[/COLOR]'.format(CONFIG.COLOR1), '[COLOR {0}]Cancelado![/COLOR]'.format(CONFIG.COLOR2)) else: # clear addon data for a specific addon addon_data = os.path.join(CONFIG.ADDON_DATA, addon) if addon in CONFIG.EXCLUDES: logging.log_notify("[COLOR {0}]Plugin Protegido[/COLOR]".format(CONFIG.COLOR1), "[COLOR {0}]No se permite eliminar datos de los add-ons[/COLOR]".format(CONFIG.COLOR2)) elif os.path.exists(addon_data): if dialog.yesno(CONFIG.ADDONTITLE, '[COLOR {0}]Tambien le gustaria eliminar los datos de los add-ons para:[/COLOR]'.format(CONFIG.COLOR2) + '\n' + '[COLOR {0}]{1}[/COLOR]'.format(CONFIG.COLOR1, addon), yeslabel='[B][COLOR dodgerblue]Quitar datos[/COLOR][/B]', nolabel='[B][COLOR red]No Quitar[/COLOR][/B]'): tools.clean_house(addon_data) try: shutil.rmtree(addon_data) except: logging.log("Error al eliminar: {0}".format(addon_data)) else: logging.log('No se eliminaron los datos {0} Add-ons para'.format(addon)) xbmc.executebuiltin('Container.Refresh()')
def remove_addon_data(addon): dialog = xbmcgui.Dialog() if addon == 'all': # clear ALL addon data if dialog.yesno(CONFIG.ADDONTITLE, '[COLOR {0}]Le gustaria quitar [COLOR {1}]ALL[/COLOR] datos adicionales almacenados en su carpeta de datos de usuario?[/COLOR]'.format(CONFIG.COLOR2, CONFIG.COLOR1), yeslabel='[B][COLOR springgreen]eliminar Data[/COLOR][/B]', nolabel='[B][COLOR red]no eliminar[/COLOR][/B]'): tools.clean_house(CONFIG.ADDON_DATA) else: logging.log_notify('[COLOR {0}]eliminar Addon Data[/COLOR]'.format(CONFIG.COLOR1), '[COLOR {0}]Cancelled![/COLOR]'.format(CONFIG.COLOR2)) elif addon == 'uninstalled': # clear addon data for uninstalled addons if dialog.yesno(CONFIG.ADDONTITLE, '[COLOR {0}]Le gustaria quitar [COLOR {1}]ALL[/COLOR] datos de complementos almacenados en su carpeta de datos de usuario para complementos desinstalados?[/COLOR]'.format(CONFIG.COLOR2, CONFIG.COLOR1), yeslabel='[B][COLOR springgreen]eliminar Data[/COLOR][/B]', nolabel='[B][COLOR red]no eliminar[/COLOR][/B]'): total = 0 for folder in glob.glob(os.path.join(CONFIG.ADDON_DATA, '*')): foldername = folder.replace(CONFIG.ADDON_DATA, '').replace('\\', '').replace('/', '') if foldername in CONFIG.EXCLUDES: pass elif os.path.exists(os.path.join(CONFIG.ADDONS, foldername)): pass elif os.path.isdir(folder): tools.clean_house(folder) total += 1 logging.log(folder) shutil.rmtree(folder) logging.log_notify('[COLOR {0}]Limpiar Desinstalado[/COLOR]'.format(CONFIG.COLOR1), '[COLOR {0}]{1} Folders(s) borradas[/COLOR]'.format(CONFIG.COLOR2, total)) else: logging.log_notify('[COLOR {0}]eliminar Add-on Data[/COLOR]'.format(CONFIG.COLOR1), '[COLOR {0}]Cancelled![/COLOR]'.format(CONFIG.COLOR2)) elif addon == 'empty': # clear empty folders from addon_data if dialog.yesno(CONFIG.ADDONTITLE, '[COLOR {0}]Le gustaria quitar [COLOR {1}]ALL[/COLOR] Carpetas de datos adicionales vacías en su carpeta de datos de usuario?[/COLOR]'.format(CONFIG.COLOR2, CONFIG.COLOR1), yeslabel='[B][COLOR springgreen]eliminar Data[/COLOR][/B]', nolabel='[B][COLOR red]No quitar[/COLOR][/B]'): total = tools.empty_folder(CONFIG.ADDON_DATA) logging.log_notify('[COLOR {0}]Eliminar carpetas vacías[/COLOR]'.format(CONFIG.COLOR1), '[COLOR {0}]{1} Carpetas eliminadas[/COLOR]'.format(CONFIG.COLOR2, total)) else: logging.log_notify('[COLOR {0}]Eliminar carpetas vacías[/COLOR]'.format(CONFIG.COLOR1), '[COLOR {0}]Cancelled![/COLOR]'.format(CONFIG.COLOR2)) else: # clear addon data for a specific addon addon_data = os.path.join(CONFIG.ADDON_DATA, addon) if addon in CONFIG.EXCLUDES: logging.log_notify("[COLOR {0}]Protected Plugin[/COLOR]".format(CONFIG.COLOR1), "[COLOR {0}]No se permite eliminar datos complementarios[/COLOR]".format(CONFIG.COLOR2)) elif os.path.exists(addon_data): if dialog.yesno(CONFIG.ADDONTITLE, '[COLOR {0}]¿También le gustaría eliminar los datos complementarios para:[/COLOR]'.format(CONFIG.COLOR2) + '\n' + '[COLOR {0}]{1}[/COLOR]'.format(CONFIG.COLOR1, addon), yeslabel='[B][COLOR springgreen]eliminar Data[/COLOR][/B]', nolabel='[B][COLOR red]No quitar[/COLOR][/B]'): tools.clean_house(addon_data) try: shutil.rmtree(addon_data) except: logging.log("Error deleting: {0}".format(addon_data)) else: logging.log('Add-on data for {0} was not removed'.format(addon)) xbmc.executebuiltin('Container.Refresh()')
def remove_addon_data(addon): dialog = xbmcgui.Dialog() if addon == 'all': # clear ALL addon data if dialog.yesno(CONFIG.ADDONTITLE, '[COLOR {0}]Você gostaria de remover [COLOR {1}]Todos[/COLOR] dados adicionais armazenados em sua pasta de dados do usuário?[/COLOR]'.format(CONFIG.COLOR2, CONFIG.COLOR1), yeslabel='[B][COLOR springgreen]Remove Data[/COLOR][/B]', nolabel='[B][COLOR red]Não Remove[/COLOR][/B]'): tools.clean_house(CONFIG.ADDON_DATA) else: logging.log_notify('[COLOR {0}]Remove Addon Data[/COLOR]'.format(CONFIG.COLOR1), '[COLOR {0}]Cancelled![/COLOR]'.format(CONFIG.COLOR2)) elif addon == 'uninstalled': # clear addon data for uninstalled addons if dialog.yesno(CONFIG.ADDONTITLE, '[COLOR {0}]Você gostaria de remover [COLOR {1}]Todos[/COLOR] dados adicionais armazenados em sua pasta de dados do usuário para complementos desinstalados?[/COLOR]'.format(CONFIG.COLOR2, CONFIG.COLOR1), yeslabel='[B][COLOR springgreen]Remove Data[/COLOR][/B]', nolabel='[B][COLOR red]Não Remove[/COLOR][/B]'): total = 0 for folder in glob.glob(os.path.join(CONFIG.ADDON_DATA, '*')): foldername = folder.replace(CONFIG.ADDON_DATA, '').replace('\\', '').replace('/', '') if foldername in CONFIG.EXCLUDES: pass elif os.path.exists(os.path.join(CONFIG.ADDONS, foldername)): pass elif os.path.isdir(folder): tools.clean_house(folder) total += 1 logging.log(folder) shutil.rmtree(folder) logging.log_notify('[COLOR {0}]Limpeza desinstalada[/COLOR]'.format(CONFIG.COLOR1), '[COLOR {0}]{1} Pasta(s) Removido[/COLOR]'.format(CONFIG.COLOR2, total)) else: logging.log_notify('[COLOR {0}]Remove Add-on Data[/COLOR]'.format(CONFIG.COLOR1), '[COLOR {0}]Cancelled![/COLOR]'.format(CONFIG.COLOR2)) elif addon == 'empty': # clear empty folders from addon_data if dialog.yesno(CONFIG.ADDONTITLE, '[COLOR {0}]Você gostaria de remover [COLOR {1}]Todos[/COLOR] esvazie as pastas de dados adicionais em sua pasta de dados do usuário?[/COLOR]'.format(CONFIG.COLOR2, CONFIG.COLOR1), yeslabel='[B][COLOR springgreen]Remove Data[/COLOR][/B]', nolabel='[B][COLOR red]Não Remove[/COLOR][/B]'): total = tools.empty_folder(CONFIG.ADDON_DATA) logging.log_notify('[COLOR {0}]Remover pastas vazias[/COLOR]'.format(CONFIG.COLOR1), '[COLOR {0}]{1} Pasta(s) Removidas[/COLOR]'.format(CONFIG.COLOR2, total)) else: logging.log_notify('[COLOR {0}]Remover pastas vazias[/COLOR]'.format(CONFIG.COLOR1), '[COLOR {0}]Cancelled![/COLOR]'.format(CONFIG.COLOR2)) else: # clear addon data for a specific addon addon_data = os.path.join(CONFIG.ADDON_DATA, addon) if addon in CONFIG.EXCLUDES: logging.log_notify("[COLOR {0}]Plugin protegido[/COLOR]".format(CONFIG.COLOR1), "[COLOR {0}]Não tem permissão para remover add-on data[/COLOR]".format(CONFIG.COLOR2)) elif os.path.exists(addon_data): if dialog.yesno(CONFIG.ADDONTITLE, '[COLOR {0}]Você também gostaria de remover o add-on data para:[/COLOR]'.format(CONFIG.COLOR2) + '\n' + '[COLOR {0}]{1}[/COLOR]'.format(CONFIG.COLOR1, addon), yeslabel='[B][COLOR springgreen]Remove Data[/COLOR][/B]', nolabel='[B][COLOR red]Não Remove[/COLOR][/B]'): tools.clean_house(addon_data) try: shutil.rmtree(addon_data) except: logging.log("Error deleting: {0}".format(addon_data)) else: logging.log('Add-on data para {0} não foi removido'.format(addon)) xbmc.executebuiltin('Container.Refresh()')