diff --git a/add.html b/add.html index 6e6ee54..094f26c 100644 --- a/add.html +++ b/add.html @@ -548,8 +548,13 @@ try { const res = await fetch(SERVER_WEBHOOK); const raw = await res.json(); - // Handle both {data: [...]} and flat array/object - const list = raw && Array.isArray(raw.data) ? raw.data : Array.isArray(raw) ? raw : [raw].filter(Boolean); + // Unwrap [{data: [...]}] → {data: [...]} + 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; }); sel.innerHTML = ''; // Determine overall select styling based on lowest availability diff --git a/assets/js/script.js b/assets/js/script.js index 55495cc..9610b37 100644 --- a/assets/js/script.js +++ b/assets/js/script.js @@ -649,8 +649,13 @@ async function initServerLocations() { try { const res = await fetch(SERVER_WEBHOOK); const raw = await res.json(); - // Handle both {data: [...]} and flat array/object - const list = raw && Array.isArray(raw.data) ? raw.data : Array.isArray(raw) ? raw : [raw].filter(Boolean); + // Unwrap [{data: [...]}] → {data: [...]} + 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; }); // Clear existing options