From c8e24d898ae076ecb835e8409c742d46d4931dcb Mon Sep 17 00:00:00 2001 From: ljf Date: Wed, 23 Sep 2020 00:57:41 +0200 Subject: [PATCH] [enh] Group same domains and subdomains together --- src/yunohost/domain.py | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/yunohost/domain.py b/src/yunohost/domain.py index 195d1e290..179d5728f 100644 --- a/src/yunohost/domain.py +++ b/src/yunohost/domain.py @@ -59,10 +59,22 @@ def domain_list(exclude_subdomains=False): parent_domain = domain.split(".", 1)[1] if parent_domain in result: continue - result_list.append(".".join(reversed(domain.split(".")))) - result_list = sorted(result_list) - for i in range(len(result_list)): - result_list[i] = ".".join(reversed(result_list[i].split("."))) + + result_list.append(domain) + + + def cmp_domain(domain1, domain2): + # Keep the main part of the domain and the extension together + # eg: this.is.an.example.com -> ['example.com', 'an', 'is', 'this'] + domain1 = domain1.split('.') + domain2 = domain2.split('.') + domain1[-1] = domain1[-2] + domain1.pop() + domain2[-1] = domain2[-2] + domain2.pop() + domain1 = list(reversed(domain1)) + domain2 = list(reversed(domain2)) + return cmp(domain1, domain2) + + result_list = sorted(result_list, cmp_domain) return {'domains': result_list}