fix: unwrap [{data:[...]}] wrapper in server webhook response parsing
The new webhook wraps data in an outer array: [{data: [...]}].
The old parsing only handled {data: [...]} directly, so .data was
undefined and the server list ended up empty — causing the location
to fall through to the slugified default.
This commit is contained in:
@@ -548,8 +548,13 @@
|
|||||||
try {
|
try {
|
||||||
const res = await fetch(SERVER_WEBHOOK);
|
const res = await fetch(SERVER_WEBHOOK);
|
||||||
const raw = await res.json();
|
const raw = await res.json();
|
||||||
// Handle both {data: [...]} and flat array/object
|
// Unwrap [{data: [...]}] → {data: [...]}
|
||||||
const list = raw && Array.isArray(raw.data) ? raw.data : Array.isArray(raw) ? raw : [raw].filter(Boolean);
|
let data = raw;
|
||||||
|
if (Array.isArray(raw) && raw.length > 0 && raw[0] && Array.isArray(raw[0].data)) {
|
||||||
|
data = raw[0];
|
||||||
|
}
|
||||||
|
// Handle {data: [...]}, flat array, or single object
|
||||||
|
const list = data && Array.isArray(data.data) ? data.data : Array.isArray(data) ? data : [data].filter(Boolean);
|
||||||
const servers = list.filter(function(s) { return s && s.server; });
|
const servers = list.filter(function(s) { return s && s.server; });
|
||||||
sel.innerHTML = '';
|
sel.innerHTML = '';
|
||||||
// Determine overall select styling based on lowest availability
|
// Determine overall select styling based on lowest availability
|
||||||
|
|||||||
+7
-2
@@ -649,8 +649,13 @@ async function initServerLocations() {
|
|||||||
try {
|
try {
|
||||||
const res = await fetch(SERVER_WEBHOOK);
|
const res = await fetch(SERVER_WEBHOOK);
|
||||||
const raw = await res.json();
|
const raw = await res.json();
|
||||||
// Handle both {data: [...]} and flat array/object
|
// Unwrap [{data: [...]}] → {data: [...]}
|
||||||
const list = raw && Array.isArray(raw.data) ? raw.data : Array.isArray(raw) ? raw : [raw].filter(Boolean);
|
let data = raw;
|
||||||
|
if (Array.isArray(raw) && raw.length > 0 && raw[0] && Array.isArray(raw[0].data)) {
|
||||||
|
data = raw[0];
|
||||||
|
}
|
||||||
|
// Handle {data: [...]}, flat array, or single object
|
||||||
|
const list = data && Array.isArray(data.data) ? data.data : Array.isArray(data) ? data : [data].filter(Boolean);
|
||||||
const servers = list.filter(function (s) { return s && s.server; });
|
const servers = list.filter(function (s) { return s && s.server; });
|
||||||
|
|
||||||
// Clear existing options
|
// Clear existing options
|
||||||
|
|||||||
Reference in New Issue
Block a user