撰写了文章 更新于 2018-04-26 17:47:43
用splatnet2statink记录splatoon2的对战结果
(stat.ink是一个可以记录并提供多样统计splatoon对战信息的网站,支持Splatoon1和2,支持多国语言。(可惜没有中文)
记录方式有几个:
- 官网手动输入。当然你我都不会这么做(手动再见
- SquidTracks
- splatnet2statink
后两者都是自动的,原理大概是获取你nintento登录splatoon的cookie或者session-cookie,然后自动获取现有的50场对战结果,并上传截图及一系列数据。后面数据分析就是stat.ink的任务了。
之前可以通过浏览器登录老任的官网获取cookie,但现在更改了认证方式,所以现在只剩Nintendo Switch Online手机app截取cookie一途。(国区无法下载,请先下载)
更新!现在又可以通过浏览器获得cookie了!
SquidTracks
奶牛关有视频讲解了如何使用。 但是在我开启代理后,无法进入app,只好放弃。所以这里主要说——
splatnet2statink
简介
splatnet2statink目前主要有两种模式:
- 监控模式。每隔一定时间段会查询官网有没有新的战斗并上传;
- 上传模式。一次性查找最新50条记录里没有上传过的记录
所有上传都会验重!
以下有关安装——
主要基于MacOS+iOS安装,Windows或安卓应该相似。
申请stat.ink账号
安装splatnet2statink
按顺序安装:
- splatnet2statink (Link)
- Python (Mac自带)
- Pip (Link)
- Python的依赖包安装,在splatnet2statink目录下执行:
pip install -r requirements.txt
接下来就可以执行命令了
python splatnet2statink.py
有几个常用标识:
- -M : monitor mode,监控模式。开始玩游戏了就可以加上这个,默认300秒=5分钟检查一次。
- -r : 上传模式。
- -s : 同-r,但不会上传战斗结果截图,并模糊掉玩家的名字。
- -t : testing mode,测试模式。等同于-r,但不会传记录上去。
- -h : 以上记不住也没有关系,随时可以用-h来查询
第一次我们先来执行python splatnet2statink.py -M吧。
- 提示输入stat.ink API key,可以去自己的stat.ink的Profile里的API Token获得。
- 提示输入locale,别管了,回车过。
- 提示打开任天堂的某个特定的URL,可获得session_token。登陆,右键“使用这个账号”的按钮,复制URL后粘贴过来。等待,即可生成cookie,并写入config.txt,开始上传记录。
- 如果你对自动生成cookie的安全性抱有疑问,可输入“skip”,按照以下的手动生成步骤获得iksm_session。
生成cookie
splatnet2statink依赖于以上提到的cookie:iksm_session,来访问splatnet。
自动生成
自动cookie生成器,是用最少的非个人信息,以HTTPS安全请求一个非任天堂的服务器(作者自己的服务器),具体原理请看wiki页面。
隐私声明,大概翻译一下:是说个人信息不会被发送到API服务器。用户名密码更是在发送信息前就被移除了,除了你谁也无法获得。返回的f tokens从来不会保存或者记日志,也不包括任何有意义的信息。不可能使用发送出去的或者是保存的信息来辨认出是谁/哪个账号发送的请求,获得该用户的个人信息,或者能够登陆账户。
mitmproxy (手动生成 )
- 安装。在这里下载并解压。macOS可以直接 brew install mitmproxy 。
- mitmweb跑起来。会自动打开一个网页,待会儿会出现一系列截取的网络请求。
- 获得电脑的本地IP地址。
- Windows,命令行里执行ipconfig,在“IPv4 Address”那行找到。
- Mac,在 System Preferences->Network->Wi-Fi->Advanced...->TCP/IP->IPv4 Address.
- 手机上设置代理。IP地址即为上面获得的电脑IP地址。端口设置为8080。
- 手机浏览器打开 http://mitm.it/,下载并安装证书。
- iOS的话,除了安装profile,还要在General->About->Certificate Trusted Setting里开启mitmproxy的root认证。
- 手机上打开 Nintendo Switch Online app,点击 Splatoon 2
- 在mitmweb页找到一行https://app.splatoon2.nintendo.net/?lang=en-US, 在Request里找到cookie,我们需要的是 iksm_session=xxxxx里的xxxxx。
- 填入xxxx后即可顺利执行了!
来,跑一下
python splatnet2statink.py -r
先把最近的50场上传上去吧!
Done!
如何更新
墙外或能正常访问Github,并知道Git怎么用的,大家都懂,git pull 了就更新了。
不能正常访问,或者如我,只能下载zip包的,也挺容易,文件夹下有用的只有 config.txt 文件,保留下来,全部替换即可。
附下载地址:
- Github最新下载链接
- 镜像 v1.0.4:https://d.pr/free/f/rLB82o
- https://pan.baidu.com/s/1gfzV8Kb 密码: wye8 (mitmproxy
更新日志
- 2018-04-11 更新了依赖安装方式,版本号v0.3.2
- 2018-04-23 更新了新生成cookie的方法。版本号v1.0.4
自动拉取记录
来自评论 @Paul_Sama
#!/bin/bash
echo `date`
cd /home/ubuntu/xxx/splatnet2statink
git pull origin master
/usr/bin/python /home/ubuntu/xxx/splatnet2statink/splatnet2statink.py -r
echo ''
echo ''
splt2.sh 即上面的脚本。路径自己调整咯
0 */2 * * * /home/ubuntu/xxx/splt2.sh >> /home/ubuntu/xxx/splt2.log
阿笃 1年前
漠寒 [作者] 1年前
阿笃 1年前
阿笃 1年前
漠寒 [作者] 1年前
发布
阿笃 1年前
漠寒 [作者] 1年前
阿笃 1年前
发布
dofine 1年前
发布
Paul_Sama 1年前
漠寒 [作者] 1年前
发布
Sachi 1年前
发布