diff --git a/yunohost_app.py b/yunohost_app.py index 1e0e7215..52aaeb47 100644 --- a/yunohost_app.py +++ b/yunohost_app.py @@ -131,21 +131,21 @@ 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 + sorted_app_dict[sorted_keys] = app_dict[sorted_keys] + + i = 0 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' + 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 @@ -156,6 +156,9 @@ def app_list(offset=None, limit=None, filter=None, raw=False): ('Description', app_info['manifest']['description']), ('Installed', installed_txt) ] + i += 1 + else: + break return list_dict