fix(providers): Sort merged plugin providers alphabetically with other pinned last
linuztx committed
Mar 12, 2026 at 08:34 UTC
c0b8526ba94fbce963b881ce4c412a04d5270919
1 file changed
+6
-1
helpers/providers.py
+6
-1
@@ -72,13 +72,18 @@ class ProviderManager:
72
# Overwrite matching keys, append new ones
73
merged[p_type].update(providers)
74
75
- # Convert merged {type: {id: config}} to normalised list format
75
+ # Convert merged {type: {id: config}} to normalised list format,
76
+ # sorted by name with "other" always last.
77
normalised: Dict[str, List[Dict[str, str]]] = {}
78
for p_type, providers in merged.items():
79
items: List[Dict[str, str]] = []
80
for pid, cfg in providers.items():
81
entry = {"id": pid, **cfg}
82
items.append(entry)
83
+ items.sort(key=lambda p: (
84
+ p.get("id") == "other", # False (0) first, True (1) last
85
+ (p.get("name") or p.get("id") or "").lower(),
86
+ ))
87
normalised[p_type] = items
88
89
# Save raw