Fleeym / jukebox

A NONG manager for Geometry Dash, written using Geode
16 stars 4 forks source link

What happened to SFH compatibility? #4

Open Whiskers11 opened 6 months ago

Whiskers11 commented 6 months ago

When ever I try changing my NONG it says "Failed to set song: file not found," and when I try finding new NONG's it just brings me to https://songfilehub.com/home. What happened?

Fleeym commented 6 months ago

song file hub support was dropped in the last update, you can check this release out for more info https://github.com/Fleeym/jukebox/releases/tag/v2.2.0

PmikeGamer commented 6 months ago

the whole point i got this mod is GONE now so annoying

Fleeym commented 6 months ago

it is what it is

whitemaskedwolf commented 6 months ago

soo did you just straight up erase the entire git tree up to the update which removed song file hub integration?

people downloading all of the applicable songs from the song file hub manually is ultimately going to have the same impact on the servers as the mod doing it automatically, so i don't even see the reason to remove the functionality in the first place, let alone undermine version control to prevent people from gaining access to previous versions of the mod.

most people don't have the knowledge required to build the mod for themselves, and an even smaller subset of those people are going to be bothered to actually do so. unless you hid instructions for building a thermonuclear bomb in the previous revisions or something, it wouldn't have been dangerous to simply not erase the entire repository.

but welp, i can't change the past anyhow, so if you think this was the appropriate thing to do then you do you.

Fleeym commented 6 months ago

the difference here is convenience. it was much more convenient to just click set on different songs you had fetched compared to downloading each one in particular and checking it out. also the website has ads, those balance out expenses a little i myself am not sure if that sudden jump of usage was because of jukebox, but it surely did align with its increase in popularity, especially among android players. for now, i think i did the right thing. if we figure out a solution, i would be glad to bring back the integration :)

RoootTheFox commented 5 months ago

hi @Fleeym, sorry for "hijacking" this issue. I would be willing to host a mirror of all songs on SFH, including an API for mods like Jukebox.

I would also be willing to work together with the SFH team to make the mirror/API as seamless as possible.

My current plan/idea consists of a small web service, that:

I already have a server (VPS), so hosting wouldn't be an issue for me.

That way this mod would no longer stress out SFH's servers, while being able to retain the convenient in-game NONG downloading function that everyone misses.

Is this something you'd be willing to implement?

Fleeym commented 5 months ago

Sure, the main problem that SFH encountered was outbound traffic limits. Jukebox took about 600GB / 4 days, and their monthly limit was about 6TB. Obviously, Jukebox's consumption rate would only increase as time goes on. Do keep this in mind when going through with your idea.

RoootTheFox commented 5 months ago

Okay, that is a lot of data (and now I fully understand why you dropped SFH compatibility) My server has an outgoing traffic limit of 32TB(/month?) so I don't think traffic limits are an issue (I don't think bandwidth will be problematic either; if my calculations are correct it should average out to about 2MB/s, although this will obviously be way higher during peak hours)

I have two other ideas:

Fleeym commented 5 months ago

I think just CloudFlare should improve things by quite a lot. I'm sure it can also cache stuff a little more aggressively, since the files don't really change. That should be a good enough start.

RoootTheFox commented 5 months ago

@Fleeym i made an initial version of the mirror API server, source code can be found here (I'll do proper error handling tomorrow, as well as setup documentation)

The API (and mirror) are currently up at https://sfh.rooot.gay

the JSON API is pretty self-explanatory, currently there are 3 endpoints:

a song object looks like this:

{
    "id":"[INTERNAL SFH ID]",
    "name":"",
    "song_name":"[SONG DISPLAY NAME]",
    "song_id":"[SONG ID (ng, string because SFH has replacements for internal songs)]",
    "download_url":"[DIRECT LINK TO DOWNLOAD SONG]",
    "level_id":[OPTIONAL LEVEL ID],
    "state": "[SFH STATE (rated/unrated/mashup/...)]"
}

The API is subject to change, breaking changes will have their API version increased (v1->v2, etc)

feel free to experiment around with the current API and infrastructure, let me know if you'd like anything changed (for convenience, etc) :3

i might implement a /api/v1/get_all_songs endpoint that returns data in the same format as SFH's /songs does.

update: added state field, possible values defined by SFH (ref: songs.js (permalink))

Fleeym commented 5 months ago

Looks good. If you could include the "state" field that SFH has (tells me if the song is a mashup) it would be cool

RoootTheFox commented 5 months ago

@Fleeym state field added and changes deployed :3

Fleeym commented 5 months ago

Aight, this looks good, I'll see what I can cook up with it. I'll probably be able to dev more in the weekend.

OM3GA6400 commented 3 months ago

we need this

OM3GA6400 commented 3 months ago

@Fleeym are we getting this soon?

Fleeym commented 3 months ago

soon-ish. sorry, life is getting in the way at the moment and I have little time for modding :(

RoootTheFox commented 3 months ago

thank you for still considering this - just wanted to mention something: the person who PR'd the mod API stuff (@FlafyDev) is working on a separate mod that does something similar (as well as accumulating custom songs from other locations apart from SFH) which might be worth looking into.

FlafyDev commented 3 months ago

thank you for still considering this - just wanted to mention something: the person who PR'd the mod API stuff (@FlafyDev) is working on a separate mod that does something similar (as well as accumulating custom songs from other locations apart from SFH) which might be worth looking into.

Yep! Submitted the mod to the index https://github.com/geode-sdk/indexer/issues/1733 hoping to get it accepted

Fleeym commented 3 months ago

thank you for still considering this - just wanted to mention something: the person who PR'd the mod API stuff (@FlafyDev) is working on a separate mod that does something similar (as well as accumulating custom songs from other locations apart from SFH) which might be worth looking into.

Yep, I know about the mod, I can't integrate it into jukebox because of it using yt-dlp for downloads from youtube. Really cool addon to jukebox though. I like going the route of empowering the API and letting others go ham with ideas, as I myself don't have much time for modding these days.

OM3GA6400 commented 3 months ago

if only this still existed Screenshot_20240406_162528_Opera.jpg

RoootTheFox commented 3 months ago

just use Auto NONG at this point

OM3GA6400 commented 3 months ago

just use Auto NONG at this point

is there sfh integration?

RoootTheFox commented 3 months ago

is there sfh integration?

yes, via my sfh mirror (sfh-rooot)

Fleeym commented 1 month ago

Bump to remind myself that I should start working on this.