From c0b8526ba94fbce963b881ce4c412a04d5270919 Mon Sep 17 00:00:00 2001 From: linuztx Date: Thu, 12 Mar 2026 08:34:31 +0800 Subject: [PATCH] fix(providers): Sort merged plugin providers alphabetically with other pinned last --- helpers/providers.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/helpers/providers.py b/helpers/providers.py index 1aae73eb2..3c04358cf 100644 --- a/helpers/providers.py +++ b/helpers/providers.py @@ -72,13 +72,18 @@ class ProviderManager: # Overwrite matching keys, append new ones merged[p_type].update(providers) - # Convert merged {type: {id: config}} to normalised list format + # Convert merged {type: {id: config}} to normalised list format, + # sorted by name with "other" always last. normalised: Dict[str, List[Dict[str, str]]] = {} for p_type, providers in merged.items(): items: List[Dict[str, str]] = [] for pid, cfg in providers.items(): entry = {"id": pid, **cfg} items.append(entry) + items.sort(key=lambda p: ( + p.get("id") == "other", # False (0) first, True (1) last + (p.get("name") or p.get("id") or "").lower(), + )) normalised[p_type] = items # Save raw