Closed niyari closed 2 years ago
Great question @niyari! I've been thinking about this recently and discussing it with others involved with this project as well. When Splatoon 3 comes out, I will start a new "s3s" repository for use with the game! The codebase will certainly be heavily based on this one, but the repo will be started from scratch and the two programs/scripts will be maintained independently.
One big difference is that we'll aim to do all the cookie generation on our end, i.e. without relying on the services and stability of another developer's API, like how we use the flapg site currently. Now that more people have made tools in this space – compared to 5 years ago – this seems a lot more viable, and knowing this will make the project a lot better from its inception. I haven't looked into this extensively yet, but this is the plan, and I've talked with some other people & I'm confident we'll make it happen – just probably not right from the get-go the day the game's out or anything, as I'll be working & learning how to set up something like this myself too. And of course will need to get my playtime in too hehe :D
I think this will be the best way to go about things!
If you have any other questions, feel free to ask!
We were hoping to have a mode that would allow us to monitor battle records and salmon run records at the same time. We thought the timing for this would be before the development became active. By the way, I also like the name "splatnet to(2) statink". :)
@niyari I will keep that in mind for s3s, and will aim to make that possible! Thank you for the heads up, that's super helpful. Is this because you run the script as a daemon (in the background constantly) and you don't know which type of battles you'll be playing, and so this way you can run just one instance of it instead of two?
Salmon Run support was not added into SplatNet 2/Nintendo Switch Online until the release of version 4.1.0 of the game (October 2018), which is why this feature was not included in s2s from the start, and sort of tacked on – it's even a separate file (salmonrun.py
)!! That's also why Salmon Run wasn't compatible with monitoring mode, haha, which I think we'll plan to support in s3s. It will much easier to code it with that in mind this time around. :)
I think the default behavior will to check both endpoints for new battle results (normal & salmon run both, api/results
and api/coop_results
, or whatever the S3 equivalents are), and then we can have two flags for users who want to change the behavior to monitoring for only regular battles or only Salmon Run matches. What do you think, @clovervidia or @hasegaw?
Not sure if this is the right place to give a 👋 or the new s3s repo, but anyway wanted to say HELLO and 久しぶり ^^; I'm excited for Splatoon 3 as well and potentially using or contributing whatever new tools are active! Happy to see this one is still active, though sad to see SquidTracks seems to have idled for a long time now.
Is this where we sign up for work, captain?
If I understand you are looking to implement how imink is logging into NSO into s3s?
EDIT: Is the only way to do this by using a rooted Android/Android Emulator to use the NSO app to generate the token? =x
Thanks for the kind words, @okuRaku – and hey! (I indeed remember your username :D )
Hi @JMHAVANCE!
If I understand you are looking to implement how imink is logging into NSO into s3s?
We'll be using the imink API in s3s (just as splatnet2statink uses as of recent, since v1.8.0). No reason to reinvent the wheel, and @JoneWang who runs that is super on top of it (and I think a lot better set up for it than I am). :)
Is the only way to do this by using a rooted Android/Android Emulator to use the NSO app to generate the token?
This is one way (or just using Android 5.x or 6.x, before certificate pinning was added, or iOS which still allows this). Another is just by allowing iksm.py
to generate an iksm_session
cookie (needed for login & access) for you – this is what "automatic cookie generation" does here in s2s, and what 99% of users opt to use. So this is already a solved problem!
Another approach is to use nsotokengen – developed by the s2s co-creator/collaborator @clovervidia – which is a drop-in replacement for the imink API. nsotokengen uses Frida to hook up to an Android x86 VM and pull the token from there, all locally, though requiring more setup on a user's end.
These methods work for SplatNet 2 and I expect will work for SplatNet 3 as well, or maybe with some minor tweaking – to be figured out when the game's out! So soon! :)
Hopefully those resources are helpful and answer your questions!
If the Splatoon3 web app comes out with the same specifications as Splatnet2 (イカリング2), do plan to support it? Or will a different one be created anew?