frozenpandaman / s3s

Successor to splatnet2statink. Takes battle data from the SplatNet 3 app and uploads it to stat.ink!
https://github.com/frozenpandaman/s3s/wiki
GNU General Public License v3.0
394 stars 72 forks source link

add new specials in salmon run #156

Closed gecko655 closed 9 months ago

gecko655 commented 9 months ago

Added teioika (kraken royale) and ultra_chakuchi (triple splashdown) to specials in salmon run.

I tested on my account and found that stat.ink already accepts these new specials

Fixes: https://github.com/fetus-hina/stat.ink/issues/1258

Zekrom101 commented 9 months ago

I'm getting the same error again when trying to upload .json files manually

gecko655 commented 9 months ago

ref: https://github.com/frozenpandaman/s3s/issues/155#issuecomment-1834636581

the Salmon Run job details query needs to be changed to the new value

This PR solves it.

gecko655 commented 9 months ago

@Zekrom101 you mean you've executed s3s with this patch and got the same error special_uses: Special Uses is invalid. unknown special unknown ?

fetus-hina commented 9 months ago

I heard that a bug (in SplatNet) was causing "the new special to become Trizooka" right after the season switchover. Maybe uploading the current data instead of the saved JSON will solve the problem.

Zekrom101 commented 9 months ago

@gecko655 Yes same error: Error uploading job. (ID: Q29vcEhpc3RvcnlEZXRhaWwtdS1hNWg2ZGltYW9wcnFjaWFuZ25tbToyMDIzMTEzMFQwNDI3MjlfMTYyYThmMGUtZWFhYi00YzE2LWJjMjQtYjg2NzBhODhmMjc1) Message from server: { "error": { "waves": "special_uses: Special Uses is invalid. unknown special \"unknown\"" } }

Interestingly the "\" weren't there before, didn't notice that changed Edit: for some reason this comment doesn't show the other flipped "/" 🤔 That's what's meant to be between the "" "waves": "special_uses: Special Uses is invalid. unknown special /"unknown/""

@fetus-hina the Json file that failed in this example does not contain Trizooka but correctly has "Triple Splashdown" in it. I saved these files because I was playing a lot when the original error occured after the specials got added, and didn't want to lose what was 50+ games ago that wasn't uploaded yet

gecko655 commented 9 months ago

Umm, that's strange... Can you open the file "s3s.py" in your PC and confirm this source code is in it around line no. 1000?

https://github.com/frozenpandaman/s3s/blob/3962ff98a38d9e9f7f2fbcda2087175a837bdfc3/s3s.py#L995-L1005

Especially, these 2 lines should be in it to fix:

        20017: "teioika",
        20018: "ultra_chakuchi"
Zekrom101 commented 9 months ago

I directly copied the code, line 1000 is 20012: "kanitank",

Just to be clear, it successfully uploaded the last 50 games I had after your change. Just the saved unuploaded Json files which had the new specials got this error Error uploading job. (ID: Q29vcEhpc3RvcnlEZXRhaWwtdS1hNWg2ZGltYW9wcnFjaWFuZ25tbToyMDIzMTEzMFQwNDI3MjlfMTYyYThmMGUtZWFhYi00YzE2LWJjMjQtYjg2NzBhODhmMjc1) Message from server: { "error": { "waves": "special_uses: Special Uses is invalid. unknown special \"unknown\"" } }

gecko655 commented 9 months ago

I understand your situation. So, the problem is that you cannot upload salmon run result stored in your PC before some time.

Before the some time, Splanet3 app API returns wrong specials "trizooka" and you seemed to save such wrong data to JSON files. After some time (I don't know when exactly it is), Splanet3 app API returns the right specials.

Currently, you played more than 50 games and you cannot fetch the results from Splanet3. So, I'm afraid that only thing you can do is to amend the JSON data to correct specials (You have to remember which specials you used in each play, including those of your allies....) and upload again.

g3335491 commented 9 months ago

Thanks, this worked for me uploading directly from SplatNet.

Before the some time, Splanet3 app API returns wrong specials "trizooka" and you seemed to save such wrong data to JSON files. After some time (I don't know when exactly it is), Splanet3 app API returns the right specials.

* **some time** is probably around 2023-12-01 08:00am JST, according to Twitter search

FWIW that may not be entirely true. Even though SplatNet 3 did display the image for the wrong special for a while, in my JSON data exported during that time the weaponId property does seem to contain the correct value 20017 for the new special (Kraken) which means the patched s3s should have no problem translating the special weapon code, at least in theory... (I didn't test it.)

@Zekrom101 check lines 1002-1004 and 1135-1136 and make sure they all match this patch.

Zekrom101 commented 9 months ago

I managed to change the files, there was enough information to just change the IDs and names Thanks for all the help! 👍

strohitv commented 9 months ago

I heard that a bug (in SplatNet) was causing "the new special to become Trizooka" right after the season switchover. Maybe uploading the current data instead of the saved JSON will solve the problem.

I can confirm this bug, I have 3 battles where this happened. However, the weaponId of the special (20017 and 20018) are correct. I don't know how s3s works but if it only goes for the weaponId and ignores the name / image of the special, there should not be an issue.

Zekrom101 commented 9 months ago

The IDs of the player's special were indeed correct, the problem was the IDs of the used specials in the waves, I had to change the IDs of those, for Triple Splashdown for example its "U3BlY2lhbFdlYXBvbi0yMDAxOA==". Not sure if the name or images were important to change, but it definitely worked after changing the used specials' IDs

frozenpandaman commented 9 months ago

Thanks a ton! Traveling right now without a computer so sorry I haven't been able to follow the discussion above. Looks like this is ready to get merged as a fix for SR.

Twister2849 commented 9 months ago

So I put in the new 20017 and 20018 specials and got this traceback:

Traceback (most recent call last): File "/home/runner/SPLATOON-3/s3s/s3s.py", line 2085, in <module> main() File "/home/runner/SPLATOON-3/s3s/s3s.py", line 2053, in main check_if_missing(which, blackout, test_run, skipprefetch) # monitoring mode hasn't begun yet File "/home/runner/SPLATOON-3/s3s/s3s.py", line 1514, in check_if_missing fetch_and_upload_single_result(id, noun, isblackout, istestrun) File "/home/runner/SPLATOON-3/s3s/s3s.py", line 1431, in fetch_and_upload_single_result post_result(result, False, isblackout, istestrun) # not monitoring mode File "/home/runner/SPLATOON-3/s3s/s3s.py", line 1227, in post_result payload = prepare_job_result(results[i]["data"], ismonitoring, isblackout, overview_data, prevresult=prevresult) File "/home/runner/SPLATOON-3/s3s/s3s.py", line 1140, in prepare_job_result special_uses[special_key] += 1 # increment value of the key each time it's found KeyError: 'teioika'

Yeah I made sure to add the specials to the list after line 1135 never mind it uploads!