Conversation
|
Thanks for the feedback! I will address the issues ASAP. 😉 |
Implemented a source for itch.io. The source takes care of navigating through the various steps, simulating what happens in the browser. The code has been mainly generated via Gemini CLI under supervision.
- Added extra docs - Refactored code in more utilities functions
Ensure we are all updated
The code has now been human reviewed and refactored. Namely: - Lots of duplicated code has been merged into helper functions - Rather than regex parsing, use html.parse and then nice query selectors, like when investigating the web page - Date and version parsing has been strengthened - Some unused code is now gone
No need to update this here
|
Hi! I went over all the code and did a major brush up. Overall all the issues should be solved. For URLs I used for testing, these are the ones I used:
Overall, any download here should work: https://itch.io/games/free/platform-android And downloads from here without Android should not: An important notice is that paid games are not supported, as in here: https://meant-to-bee-studios.itch.io/criminally-yours This has an Android download that requires payment. As a possible improvement, I would like to know whether it is possible to avoid downloading the APK when adding the app in Obtanium; it seems the assetsUrl is called when adding an app no matter what. |
|
Thanks! |
|
There is no consistent way to infer the ID; even the version is a problem 🤣 |
|
@ItachiSan data.json This is the easiest way to get the game's ID. Does not require any authentication. api.itch.io For general game info: For updates:
( I would highly recommend that this API is used. Also, creating an API key is very easy:
NotesI've omitted a lot of the info I found, mostly on APIs that aren't consistent, officially supported or useful for this particular case. One example is Wharf, which can be used to return the latest version very easily, but only works on a small percentage of games. Also, there's an API for getting download URLs, so I'll look into that now. |
|
The idea with my suggestion is to limit the browser-level stuff and use the APIs, hopefully resulting in a much more robust (and performant) implementation. |
|
Yeah looks like downloads are quite simple too: Also, this should work with paid-only games, though I have no way of testing that. Hope all this info helps :) |
|
Hello! I believe the current implementation will suffice, since all API access does require an API key and Obtanium works normally without the need for it (although it recommends for specific providers). There could be an alternative "API" handler that avoids the web scraping and uses the API directly.
I think input from @ImranR98 is needed for choosing the direction forward. 😄 |
Not needing to use an API key does save the user a few steps. I figured that since the user (according to your earlier message, at least) needed to be logged in, having them create an API key wouldn't be too difficult. That said, I'm the type to trade ease of use for performance and robustness hahaha :)
This gets the best of both worlds, and sounds like a good solution to me. Users can get it working quickly and easily without a key, but for power-users a key can be provided. Hopefully API access isn't too complex to implement (at least, it seems like it should be straightforward). I would add it myself but uhhhh... I don't know dart whatsover 😅 |
Implemented a source for itch.io.
The source takes care of navigating through the various steps, simulating what happens in the browser.
Important notice
The code has been mainly generated via Gemini CLI under supervision.