Skip to content

A tool/system for uploading your splatoon3 battle history from NSOAPP to stat.ink

License

Notifications You must be signed in to change notification settings

Itoktsnhc/stat.itok

Repository files navigation

stat.itok

GitHub Workflow Status GitHub Workflow Status GitHub Workflow Status
CodeFactor

2023-09-16(CST)开始,将会临时禁用所有账户的自动抓取。并停止 stat.itok web端的访问。后续该项目仅作为本人splatoon3的同步工具。

A tool/system for uploading your splatoon3 battle history from NSOAPP to stat.ink

Hosted on Azure now: https://stat.itok.xyz/

And check the running tasks on JobTrackerX: https://tasks.itok.xyz/ (Empty if no one play the game 🙂)

If you want to deploy your own stat.itok, check the deployment guide

Basic Info

Programing languages or frameworks:

  • C# for backend functions and worker in Stat.Itok.Func, Stat.Itok.Func.Worker
  • Svelte + Bulma CSS for frontend in Stat.Itok.Front

Azure service used:

  • Azure Storage
    • Blob: Cache battle detail responses.
    • Queue: For internal fetch detail job task.
    • Table: Store raw Nintendo account info(Session Token), store battle id map for deduplication
  • Azure Static Web App
    • Static Web App
    • Backend functions(HTTP Triggers): handle new Nintendo account info(Job Config)
  • Azure Functions
    • Timer Trigger: Job Dispatcher, regularly check new battles for each Job Config, If any new battles, build a Job Run which contains Job Run Tasks , send the Job Run Tasks to Azure Queue Storage for Queue Trigger
    • Queue Trigger:
      • Job Worker: Handler for normal detail battle fetch job.
      • Job Poison Worker: Handler for bad(poison) detail battle fetch job
  • Azure CosmosDB(no SQL api)
    • Free(1000RU + 25GB)data store for JobConfig, JobRun and BattleTaskPayload

Details

Concepts:

  • JobConfig: Just a entity contains auth info for fetch new battle.
  • JobRun: A virtual container contains one or many JobRunTask.
  • JobRunTask: A task contains fetch battle detail required information.

Execution Flow

Snipaste_2022-12-12_17-56-04

Credits

  • s3s for the total battle detail parse code

  • stat.ink for the great website

  • imink for the f-calc API

Disclaimer

This is not a Nintendo or stat.ink official tool.

This tool will store the Nintendo Account's Session Token related info. And If you care about your account's privacy, you should host your own by forking the code and deploy to Azure or anywhere else you want.

No commitment to the reliability