From 4c93dc38c68b5c7aa9b1e699847f9bf6f13814d9 Mon Sep 17 00:00:00 2001 From: openhands Date: Thu, 6 Aug 2026 19:56:59 +0200 Subject: [PATCH] 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) --- src/lib/services/clone-sources.ts | 47 +++++++++---------------------- 1 file changed, 14 insertions(+), 33 deletions(-) diff --git a/src/lib/services/clone-sources.ts b/src/lib/services/clone-sources.ts index 9ebf5760..a8d1557d 100644 --- a/src/lib/services/clone-sources.ts +++ b/src/lib/services/clone-sources.ts @@ -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(