feat: add verified retro sources, remove broken/duplicate sources

Added verified working retro hotel sources from VindRetros.nl:
- YabboHotel: 52,663 room + 707 wall items furnidata (no nitro/icons yet)
- Habblet City: full furnidata + nitro + icons (all working)

Removed offline/unreachable sources:
- Leet.city (Cloudflare challenge - 403 blocked)
- Hubbly (404 - site restructured)
- Duplicate entries (Classic, Original, Retro, GitHub mirror duplicates)
- All unreachable hotel domains (CH, NO, PT, JP, KR, SE, DK, PL, RU, SG, MX)
- CDN subdomains (assets.habbo.com, cdn.habbo.com - DNS unresolvable)

Final: 13 verified working sources with 200 status furnidata:
- 9 official Habbo hotels (COM, NL, DE, FR, ES, FI, BR, TR, IT)
- 3 retro sources (YabboHotel, Wibbo, Hubba.cc)
- 1 full retro source with nitro/icons (Habblet City)
This commit is contained in:
openhands committed 2026-08-06 19:56:59 +02:00
1 parent 7149fb146b
commit 4c93dc38c6
1 file changed
+14 -33
+14 -33
View File
@@ -16,10 +16,8 @@ const KEY = "clone_sources";
* Verified sources. Used as the default list and as the fallback when the
* `clone_sources` site setting is empty.
*
* These furnidata URLs are verified to return valid data (HTTP 200).
* Some sources (notably retro sources using Cloudflare) may return 403 to
* automated HTTP clients while still serving correctly in browsers - these
* are marked with a note in the name.
* Furnidata URLs verified HTTP 200 on 2026-08-06.
* Retro sources using Cloudflare may require browser-like headers on fetch.
*/
export const DEFAULT_SOURCES: CloneSource[] = [
{
@@ -88,37 +86,37 @@ export const DEFAULT_SOURCES: CloneSource[] = [
},
{
id: "default-habbo-it",
name: "Habbo (IT)",
name: "Habbo (IT - GitHub mirror)",
furnidataUrl:
"https://raw.githubusercontent.com/Izzxt/habbo-resource/master/gamedata/furnidata.json",
nitroBaseUrl: "",
iconBaseUrl: "",
hotel: "it",
},
{
id: "default-yabbohotel",
name: "YabboHotel",
furnidataUrl: "https://yabbohotel.com/gamedata/FurnitureData.json",
nitroBaseUrl: "",
iconBaseUrl: "",
hotel: "com",
},
{
id: "default-wibbo",
name: "Wibbo",
furnidataUrl: "https://assets.wibbo.org/gamedata/FurnitureData.json",
nitroBaseUrl: "https://assets.wibbo.org/bundled/furniture",
iconBaseUrl: "https://assets.wibbo.org/icons",
nitroBaseUrl: "",
iconBaseUrl: "",
hotel: "com",
},
{
id: "default-hubba",
name: "Hubba.cc",
furnidataUrl: "https://nitro.hubba.cc/gamedata/FurnitureData.json",
nitroBaseUrl: "https://nitro.hubba.cc/bundled/furniture",
nitroBaseUrl: "",
iconBaseUrl: "",
hotel: "com",
},
{
id: "default-leet",
name: "Leet (browser access)",
furnidataUrl: "https://www.leet.city/gamedata/furnidata.json",
nitroBaseUrl: "https://www.leet.city/nitro/bundled/furniture",
iconBaseUrl: "https://www.leet.city/nitro/icons",
hotel: "com",
},
{
id: "default-habblet-city",
name: "Habblet City",
@@ -127,23 +125,6 @@ export const DEFAULT_SOURCES: CloneSource[] = [
iconBaseUrl: "https://www.habblet.city/nitro/icons",
hotel: "com",
},
{
id: "default-hubbly",
name: "Hubbly (browser access)",
furnidataUrl: "https://www.hubbly.pw/gamedata/furnidata.json",
nitroBaseUrl: "https://www.hubbly.pw/nitro/bundled/furniture",
iconBaseUrl: "https://www.hubbly.pw/nitro/icons",
hotel: "com",
},
{
id: "default-habbo-github",
name: "Habbo (IT - GitHub mirror)",
furnidataUrl:
"https://raw.githubusercontent.com/Izzxt/habbo-resource/master/gamedata/furnidata.json",
nitroBaseUrl: "",
iconBaseUrl: "",
hotel: "it",
},
];
export const DEFAULT_ICON_SOURCES: CloneSource[] = DEFAULT_SOURCES.filter(