feat: add Habboon, Leet and Hubbly furni import sources
Add verified retro-hotel sources to the studio furni clone list. All
endpoints (furnidata JSON, .nitro bundles, icons, SWF) were probed and
verified reachable (HTTP 200), and Leet/Hubbly nitro bundles parse with
parseNitroBundle.
Also allow source-specific SWF downloads without a revision path segment
(/hof_furni/{classname}.swf), which Leet and Habboon use.
This commit is contained in:
1 parent
56bfa164a1
commit
01369d8943
2 files changed
+38
No files matched your search
@@ -148,6 +148,39 @@ export const DEFAULT_SOURCES: CloneSource[] = [
|
||||
hotel: "com",
|
||||
sourceSwfBaseUrl: "https://virtualc.nl/dcr",
|
||||
},
|
||||
{
|
||||
id: "default-habboon",
|
||||
name: "Habboon",
|
||||
furnidataUrl: "https://assets.habboon.pw/nitro/gamedata/FurnitureData.json",
|
||||
nitroBaseUrl: "https://assets.habboon.pw/nitro/bundled/furniture",
|
||||
iconBaseUrl: "",
|
||||
hotel: "com",
|
||||
// Habboon serves SWFs at /dcr/hof_furni/{classname}.swf (no revision
|
||||
// segment) — the import service also tries that variant.
|
||||
sourceSwfBaseUrl: "https://assets.habboon.pw/dcr",
|
||||
},
|
||||
{
|
||||
id: "default-leet",
|
||||
name: "Leet",
|
||||
furnidataUrl:
|
||||
"https://images.leet.city/leet-asset-bundles/gamedata/leet_furni.json?v=7ce4b1ce",
|
||||
nitroBaseUrl:
|
||||
"https://images.leet.city/leet-asset-bundles/libraries/furniture_new2",
|
||||
iconBaseUrl: "https://images.leet.city/library/hof_furni/icons",
|
||||
hotel: "com",
|
||||
// Leet serves SWFs at /library/hof_furni/{classname}.swf (no revision
|
||||
// segment) — the import service tries both with- and without-revision.
|
||||
sourceSwfBaseUrl: "https://images.leet.city/library",
|
||||
},
|
||||
{
|
||||
id: "default-hubbly",
|
||||
name: "Hubbly",
|
||||
furnidataUrl: "https://hubbly.pw/nitro/gamedata/hubbly_furni.json",
|
||||
nitroBaseUrl: "https://hubbly.pw/nitro/furniture",
|
||||
iconBaseUrl: "https://hubbly.pw/swf/dcr/hof_furni/icons",
|
||||
hotel: "com",
|
||||
// Hubbly serves no standalone SWFs — the .nitro bundles are used.
|
||||
},
|
||||
];
|
||||
|
||||
export const DEFAULT_ICON_SOURCES: CloneSource[] = DEFAULT_SOURCES.filter(
|
||||
|
||||
@@ -689,6 +689,11 @@ export async function importSingleFurni(params: {
|
||||
swfUrls.push(
|
||||
`${sourceSwfBaseUrl}/hof_furni/${rev}/${encodeURIComponent(safeSwfName)}.swf`,
|
||||
);
|
||||
// Some retros (e.g. Leet, Habboon) serve SWFs without a revision
|
||||
// segment: /hof_furni/{classname}.swf
|
||||
swfUrls.push(
|
||||
`${sourceSwfBaseUrl}/hof_furni/${encodeURIComponent(safeSwfName)}.swf`,
|
||||
);
|
||||
}
|
||||
|
||||
// Official Habbo CDN fallbacks
|
||||
|
||||
Reference in new issue
Block a user