Hey, I definitely plan on making documentation for all my tools at some point--just need to find some free-time to do it. I'll also look into making the demo a little easier to go through/understand. Thanks for the feedback :)
stoozey_
Creator of
Recent community posts
Good point, I will add a readme in the next update.
Scraping and using an API are very different. APIs are typically hosted on a separate domain and present you information in a text format that is designed for code to easily and efficiently read.
Scraping, on the other hand, is going onto the main website itself and manually digging through all of the HTML to get information. That is not only really slow, inefficient, and time-consuming to implement, but if the website host ever decides to change it's layout it becomes obsolete and needs to be completely rewritten.
Hey, thanks for the requests. I was originally planning on adding rule34.paheal.net, but they don't have a public API so I opted for rule34.xxx instead. The only other option is web-scraping--which Zenith Grabber doesn't support.
I don't personally see an uninstaller as being required since the program is 99.99% portable. If you want to remove *everything* (which only saves you a few kb of storage), you can delete the external data folder located at:
C:\Users\USERNAME\AppData\Local\stoozey_\GRABBER-ZENITH
It's a Deltarune spin-off game, I've been posting progress on my Twitter if you'd like to check it out.
I haven't written proper documentation yet but you should be able to get something working without it.
Before you write code you need to learn how the website you want to add's API works. If it's a booru then they are all fairly similar. All boorus have a wiki/help section with information on how their API works.
Inside Zenith Grabber's "resources\website_handlers" folder contains each website's module. They're all pretty similar, just duplicate one (Danbooru might be the best to start from).
Firstly, two classes are created: UriOptions and WebsiteHandler; you can find some small documentation comments about them in the "resources\modules" folder to understand what they're doing. (Note: you don't need to supply the "unwanted_tags" part of UriOptions)
The only other thing in the file is the GetPosts function which is what turns the JSON or XML web response into an array of Posts. This part is quite simple long as you understand how the API you're accessing works. Make a request to the API in your browser and see how the JSON/XML is formatted so you know what to write here.
Hey, thanks for the feedback!
- As for stuff not loading, it's probably due to some file types being incompatible with what was used to create the program (untested but it's most likely the .webp format). Videos are also not currently supported - but the next update does have video support planned.
- You can already download everything; in the settings menu, there is an "auto-select posts" option which will automatically select all posts that get loaded so you can quickly download them. If you mean something other than this then I'd need a bit more information on how it'd look and work, as it would need to be able to fit into the UI without being weird/confusing.
- I will make a note to optimize the downloading process so that doesn't crash again, sorry about that!
I use GameMaker, which obviously your first thought is like "wait, what??"
Don't use GameMaker. They have ZERO UI support. Everything was written 100% from scratch for Zenith Grabber. That includes even basic stuff like positioning, scaling for multiple resolutions, mouse interaction, drawing to the screen, all of it. 99% of the code is just getting the UI to work. They also don't let you do a lot of cool things with your code and I'm often really restricted in what I can do. In hindsight I wouldn't have used GameMaker if I had known the uses I wanted out of Zenith Grabber; it's just too far into development that I can't switch now.
I see you're pretty good with C# so if you do want to go down the from-scratch approach that I use (which is important if you want really nice and dynamic UI) then I recommend Raylib-cs. It's the same sorta deal, but with a language that isn't terrible.



















