Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

Original habbo.com/nl catalogus in JSON

Experienced Elementalist
Joined
Jun 7, 2012
Messages
288
Reaction score
250
I just made a catalogue ripper and ripped habbo.com,habbo.nl catalogus. The output what I have is just from the packets so it doesn't include the furniture data itself but it does include the page data with the catalogue items with: spriteid, price, badge, amount
You can use this to generate your whole catalog using the sprite_id or the catalogname in the json.

To make it easier here are the C# classes that I used for the JSON:
PHP:
using System.Collections.Generic;

namespace CatalogRipper
{
    public class CatalogJson
    {
        public CatalogPage p { get; set; } = new CatalogPage();
        public Dictionary<int, CatalogPage> all { get; set; } = new Dictionary<int, CatalogPage>();
    }
    public class CatalogPage
    {
        public int Id { get; set; }
        public int Icon { get; set; }
        public int ParentId { get; set; }
        public string Name { get; set; }
        public string Caption { get; set; }
        public List<CatalogPage> SubPages { get; set; } = new List<CatalogPage>();
        public string Layout { get;  set; }
        public List<string> Images { get;  set; } = new List<string>();
        public List<string> Texts { get;  set; } = new List<string>();
        public List<CatalogItem> Items { get;  set; } = new List<CatalogItem>();
        public bool Loaded { get; internal set; }
    }

    public class CatalogItem
    {
        public int Id { get; set; }
        public string Catalogname { get; set; }
        public int sprite_id { get; set; }
        public string SpecialData { get; set; }
        public int CreditCost { get; set; }
        public int SpecialCost { get; set; }
        public int SpecialType { get; set; }
        public bool AllowGift { get; set; }
        public string Badge { get; set; }
        public int Amount { get; set; }
        public bool Limited { get; set; }
        public int page_id { get; internal set; }
    }

}

Habbo.nl Catalogue JSON:
Habbo.com Catalogue JSON:

I don't know if this release handy for someone but it helped me so hopfully it will help you as well

(Oh btw I'm not sure if I need to release the catalog ripper itself as well because it is pretty easy to steal a catalogus from a retro)
 
Last edited:
Experienced Elementalist
Joined
Jun 7, 2012
Messages
288
Reaction score
250
Containing all pages, items etc? Sounds like a great release!

Jup containing all pages including the name, description, layout, images, texts, all items with the spriteid, price, specialprice (diamonds or duckets), special type.

So if you have a complete furniture table you can just do this sort of queries to insert them:
Code:
                string query = $"INSERT INTO `catalog_items` (`id`, `page_id`, `item_ids`, `catalog_name`, `cost_credits`, `cost_belcredits`, `cost_duckets`, `amount`, `badge`) VALUES ('{item.Id}', '{item.page_id}', (SELECT furniture.id from furniture where furniture.item_name = '{item.Catalogname}' ORDER BY furniture.id DESC LIMIT 1),'{item.Catalogname}','{item.CreditCost}', '{(item.SpecialType == 103 ? item.SpecialCost : 0)}', '{(item.SpecialType == 105 ? item.SpecialCost : 0)}', '{item.Amount}','{item.Badge}');";
or select with the sprite_id
 
Custom Title Activated
Loyal Member
Joined
Oct 26, 2012
Messages
2,357
Reaction score
1,086
Jup containing all pages including the name, description, layout, images, texts, all items with the spriteid, price, specialprice (diamonds or duckets), special type.

So if you have a complete furniture table you can just do this sort of queries to insert them:
Code:
                string query = $"INSERT INTO `catalog_items` (`id`, `page_id`, `item_ids`, `catalog_name`, `cost_credits`, `cost_belcredits`, `cost_duckets`, `amount`, `badge`) VALUES ('{item.Id}', '{item.page_id}', (SELECT furniture.id from furniture where furniture.item_name = '{item.Catalogname}' ORDER BY furniture.id DESC LIMIT 1),'{item.Catalogname}','{item.CreditCost}', '{(item.SpecialType == 103 ? item.SpecialCost : 0)}', '{(item.SpecialType == 105 ? item.SpecialCost : 0)}', '{item.Amount}','{item.Badge}');";
or select with the sprite_id

Oh wow, that's really useful! Much thanks!
 
Newbie Spellweaver
Joined
Sep 26, 2016
Messages
6
Reaction score
3
This would be very useful for HTML5 Canvas clients if/when they become close to the current flash client and for converting catalogs to different database structures. Thank you! It would be cool if this could be a .NET form application that can both rip it and convert it to an .sql file based on an emulator selection from a dropdown list. That way, you would always have the most up to date catalog. Not saying you should do it specifically, but it could be an interesting application of the base you already have created.

Thanks for sharing!
 
Last edited:
Developer
Developer
Joined
Dec 11, 2010
Messages
2,955
Reaction score
2,685
If anyone wants the catalogue ripper source I already wrote something like this ago as a plugin for Tanji, and it does the same thing, puts all the output in JSON files.



Weird how similar the projects are, huh? :rolleyes:
 
Newbie Spellweaver
Joined
Sep 26, 2016
Messages
6
Reaction score
3
If anyone wants the catalogue ripper source I already wrote something like this ago as a plugin for Tanji, and it does the same thing, puts all the output in JSON files.



Weird how similar the projects are, huh? [emoji57]

I see what you mean, though I think OP’s release is more focused on the gathered data than the tool itself. Nice plugin by the way!


 
Newbie Spellweaver
Joined
Oct 19, 2013
Messages
83
Reaction score
74
How run this? put tutorial for nobs like me
 
Experienced Elementalist
Joined
Jun 7, 2012
Messages
288
Reaction score
250
If anyone wants the catalogue ripper source I already wrote something like this ago as a plugin for Tanji, and it does the same thing, puts all the output in JSON files.



Weird how similar the projects are, huh? :rolleyes:

O lol indeed, think most smart and lazy programmers (and hotel owners) make such sort of tools :)

I see what you mean, though I think OP’s release is more focused on the gathered data than the tool itself. Nice plugin by the way!
True but I didn't release the tool because it can just be used to rip a whole catalogus from a retro. And this section is already full of ripped content so I was like nah I will just release the habbo catalogue

But if someone wants to see how bad and fast my extention is coded:
 
Junior Spellweaver
Joined
Sep 12, 2013
Messages
146
Reaction score
66
I just made a catalogue ripper and ripped habbo.com,habbo.nl catalogus. The output what I have is just from the packets so it doesn't include the furniture data itself but it does include the page data with the catalogue items with: spriteid, price, badge, amount
You can use this to generate your whole catalog using the sprite_id or the catalogname in the json.

To make it easier here are the C# classes that I used for the JSON:
PHP:
using System.Collections.Generic;

namespace CatalogRipper
{
    public class CatalogJson
    {
        public CatalogPage p { get; set; } = new CatalogPage();
        public Dictionary<int, CatalogPage> all { get; set; } = new Dictionary<int, CatalogPage>();
    }
    public class CatalogPage
    {
        public int Id { get; set; }
        public int Icon { get; set; }
        public int ParentId { get; set; }
        public string Name { get; set; }
        public string Caption { get; set; }
        public List<CatalogPage> SubPages { get; set; } = new List<CatalogPage>();
        public string Layout { get;  set; }
        public List<string> Images { get;  set; } = new List<string>();
        public List<string> Texts { get;  set; } = new List<string>();
        public List<CatalogItem> Items { get;  set; } = new List<CatalogItem>();
        public bool Loaded { get; internal set; }
    }

    public class CatalogItem
    {
        public int Id { get; set; }
        public string Catalogname { get; set; }
        public int sprite_id { get; set; }
        public string SpecialData { get; set; }
        public int CreditCost { get; set; }
        public int SpecialCost { get; set; }
        public int SpecialType { get; set; }
        public bool AllowGift { get; set; }
        public string Badge { get; set; }
        public int Amount { get; set; }
        public bool Limited { get; set; }
        public int page_id { get; internal set; }
    }

}

Habbo.nl Catalogue JSON:
Habbo.com Catalogue JSON:

I don't know if this release handy for someone but it helped me so hopfully it will help you as well

(Oh btw I'm not sure if I need to release the catalog ripper itself as well because it is pretty easy to steal a catalogus from a retro)

oh my god, I thought you were gone from retros! Back @ it with amazing releases <3

OFT: Can you add me in Discord? Oliver#1922
Have some questions regarding your old works :love:
 
Back
Top