diff --git a/yunohost_app.py b/yunohost_app.py index 1e0e7215..690f5bb9 100644 --- a/yunohost_app.py +++ b/yunohost_app.py @@ -131,31 +131,34 @@ def app_list(offset=None, limit=None, filter=None, raw=False): app_dict.update(json.loads(str(json_list.read()))) if len(app_dict) > (0 + offset) and limit > 0: - i = 0 + offset sorted_app_dict = {} - for sorted_keys in sorted(app_dict.keys())[i:]: - if i <= limit: - sorted_app_dict[sorted_keys] = app_dict[sorted_keys] - i += 1 - for app_id, app_info in sorted_app_dict.items(): - if (filter and ((filter in app_id) or (filter in app_info['manifest']['name']))) or not filter: - instance_number = len(_installed_instance_number(app_id)) - if instance_number > 1: - installed_txt = 'Yes ('+ str(instance_number) +' times)' - elif instance_number == 1: - installed_txt = 'Yes' - else: - installed_txt = 'No' + for sorted_keys in sorted(app_dict.keys())[offset:]: + sorted_app_dict[sorted_keys] = app_dict[sorted_keys] - if raw: - list_dict[app_id] = app_info - else: - list_dict[app_id] = [ - ('Name', app_info['manifest']['name']), - ('Version', app_info['manifest']['version']), - ('Description', app_info['manifest']['description']), - ('Installed', installed_txt) - ] + i = 0 + for app_id, app_info in sorted_app_dict.items(): + if i < limit: + if (filter and ((filter in app_id) or (filter in app_info['manifest']['name']))) or not filter: + instance_number = len(_installed_instance_number(app_id)) + if instance_number > 1: + installed_txt = 'Yes ('+ str(instance_number) +' times)' + elif instance_number == 1: + installed_txt = 'Yes' + else: + installed_txt = 'No' + + if raw: + list_dict[app_id] = app_info + else: + list_dict[app_id] = [ + ('Name', app_info['manifest']['name']), + ('Version', app_info['manifest']['version']), + ('Description', app_info['manifest']['description']), + ('Installed', installed_txt) + ] + i += 1 + else: + break return list_dict