Splatlogger 1.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,19 @@
1
+ Copyright (c) 2025 Shadow Doggo
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ of this software and associated documentation files (the "Software"), to deal
5
+ in the Software without restriction, including without limitation the rights
6
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ copies of the Software, and to permit persons to whom the Software is
8
+ furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in all
11
+ copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
+ SOFTWARE.
@@ -0,0 +1,175 @@
1
+ Metadata-Version: 2.4
2
+ Name: Splatlogger
3
+ Version: 1.0.0
4
+ Summary: PID (Principal ID)/Network ID grabber and match logger for Splatoon
5
+ Author-email: Shadow Doggo <shadowdoggo@protonmail.com>
6
+ License-Expression: MIT
7
+ Project-URL: Source Code, https://codeberg.org/ShadowDoggo/Splatlogger
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: Operating System :: OS Independent
10
+ Requires-Python: >=3.11
11
+ Description-Content-Type: text/markdown
12
+ License-File: LICENSE
13
+ Requires-Dist: userpaths
14
+ Requires-Dist: requests
15
+ Requires-Dist: psutil
16
+ Requires-Dist: pymemoryeditor>=2.0.0
17
+ Requires-Dist: colorama
18
+ Requires-Dist: clean-text
19
+ Dynamic: license-file
20
+
21
+ # Splatlogger
22
+ A CLI PID (Principal ID)/Network ID grabber and match logger for Splatoon, written in Python.
23
+
24
+ Both the Wii U and Cemu (Windows & Linux, macOS not tested) are supported.
25
+
26
+ - [Prerequisites (Wii U)](#prerequisites-wii-u)
27
+ - [Usage](#usage)
28
+ - [Running the executable](#running-the-executable)
29
+ - [Running with Python](#running-with-python)
30
+ - [Options](#options)
31
+ - [Troubleshooting](#troubleshooting)
32
+ - [Important notes](#important-notes)
33
+ - [Building the executable with PyInstaller](#building-the-executable-with-pyinstaller)
34
+ - [Acknowledgments](#acknowledgments)
35
+ - [License](#license)
36
+
37
+ ## Prerequisites (Wii U)
38
+ Your console will need to have either the Tiramisu or Aroma environment set up or have another way to run homebrew,
39
+ such as Haxchi or the browser exploit.
40
+
41
+ On Tiramisu, use [TCPGecko](https://github.com/BullyWiiPlaza/tcpgecko), [Geckiine](https://hb-app.store/wiiu/geckiine),
42
+ or any other app with the TCPGecko server.
43
+
44
+ On Aroma, use [TCPGecko-Plugin](https://github.com/PinkDiamondTeam/TCPGecko-Plugin).
45
+
46
+ ## Usage
47
+ ### Running the executable
48
+ Windows and Linux executables are provided on the Releases page.
49
+
50
+ Run Splatlogger with:
51
+ ```
52
+ path/to/Splatlogger-executable --ip IP [options]
53
+ ```
54
+ where `IP` is your Wii U's LAN IP address.
55
+
56
+ Open a command prompt/terminal window and drag the executable into it to automatically get the path.
57
+
58
+ ### Running with Python
59
+ You can install Splatlogger as a package from PyPI:
60
+ ```
61
+ pip install Splatlogger
62
+ ```
63
+
64
+ The run with:
65
+ ```
66
+ splatlogger --ip IP [options]
67
+ ```
68
+ (if that fails, try `python -m splatlogger`) where `IP` is your Wii U's LAN IP address.
69
+
70
+ To run from source instead, download the latest source archive from the Releases
71
+ page and extract it, then open a terminal window in the extracted directory.
72
+
73
+ Install the required dependencies:
74
+ ```
75
+ pip install -r requirements.txt
76
+ ```
77
+
78
+ Then move into the `src` directory and run:
79
+ ```
80
+ python -m spatlogger --ip IP [options]
81
+ ```
82
+
83
+ ### Options
84
+ - `-c [PID]`, `--cemu [PID]` - Switch to Cemu mode. The `--ip` argument is not required.
85
+ - `PID` - PID of the Cemu process (optional).
86
+
87
+ - `--log-level option` - Set how much data should be logged.
88
+ - `none` - Don't create a log file.
89
+ - `standard` - Log only basic player information, the same as what's printed to the console (default).
90
+ - `extended` - Log all player information and additional match information.
91
+ - `stats` - Same as above with the addition of player stats (points, K/D). Requires the match to end to finish logging; if it ends abruptly, the stats won't be logged.
92
+
93
+ - `--service` - Choose which network service you're using.
94
+ - `pretendo` - Pretendo Network (default).
95
+ - `spfn` - Splatfestival Network.
96
+
97
+ - `-a [option]`, `--auto [option]` - Enable auto logging. When enabled will automatically log every match you play. The log level must be at least `standard`.
98
+ - `all` - Save a log of all matches you play (default).
99
+ - `latest` - Save a log of only the latest match.
100
+
101
+ - `--stack Address (in hex)` - (Cemu only, optional) Beginning address of the stack space for Default Core 1 (Debug > View PPC threads).
102
+ Only required for logging stats. If the default values don't work, you'll need to specify this manually.
103
+
104
+ <img src="assets/stack.png" width="600" alt="(example)">
105
+
106
+ - `-n`, `--no-fetch` - Disable fetching network IDs and Mii names.
107
+
108
+ - `-s`, `--silent` - Disable printing logs to the console.
109
+
110
+ For example, `splatlogger --ip 192.168.1.100 --log-level extended --auto latest` will save an extended log of the latest match you play
111
+ (replace `192.168.1.100` with your actual IP address).
112
+
113
+ Logs are saved in your documents folder in `Splatlogger/logs/`.
114
+
115
+ To always run with the same IP and options without having to type them in manually, create a `options.txt` file in
116
+ `(User)/Documents/Splatlogger/` and put them in there.
117
+ Afterward, run `splatlogger` without any arguments.
118
+
119
+ ### Troubleshooting
120
+ Only one program can be connected to TCPGecko at a time. If you have something else connected, disconnect it beforehand.
121
+
122
+ If it keeps failing to connect, make sure that:
123
+ - Your device and Wii U are on the same local network.
124
+ - Port 7331 isn't blocked by the firewall.
125
+ - TCPGecko is running.
126
+
127
+ For Cemu users on Linux, if you have ptrace protection enabled, you'll need to run Python as root.
128
+ In that case, it's best to run the package from source or use the executable instead.
129
+
130
+ ## Important notes
131
+ - The data collected by Splatlogger is public player info shared by the game with every user you encounter in online matches.
132
+
133
+ - Network IDs and Mii names are fetched from the Pretendo or SPFN account server; this can be disabled with the `--no-fetch` option.
134
+
135
+ - Splatlogger does not collect any sensitive information such as account email addresses or IP addresses.
136
+
137
+ - All data collected stays on your machine and is not sent anywhere.
138
+
139
+ - Please handle the logs responsibly. I do not encourage sharing other users' data without their permission, even if no real harm can be done with it.
140
+
141
+ ## Building the executable with PyInstaller
142
+ Set up a virtual environment and install PyInstaller as well as the required dependencies.
143
+
144
+ In `match_logger.py`, replace `from importlib import resources` with `import sys` and
145
+ ```py
146
+ names_path = resources.files(__package__).joinpath("resources", "names.json")
147
+ ```
148
+
149
+ with
150
+ ```py
151
+ names_path = Path(sys._MEIPASS) / "resources/names.json"
152
+ ```
153
+
154
+ Then run:
155
+ ```
156
+ pyinstaller --noconfirm --onefile --console --name "Splatlogger-v1.x" --upx-dir "path/to/upx" --optimize "2" --add-data "path/to/Splatlogger/src/splatlogger/resources:resources/" --icon "NONE" "path/to/Splatlogger/src/run.py"
157
+ ```
158
+ replacing the placeholder paths with the actual ones.
159
+
160
+ You can omit `--upx-dir` if you're not using UPX to compress the executable and `--optimize "2"` to disable
161
+ bytecode optimization.
162
+
163
+ On Linux, add `--bootloader-ignore-signals`
164
+
165
+ ## Acknowledgments
166
+ - [pyGecko](https://github.com/wiiudev/pyGecko) authors for the reference implementation of a TCPGecko library.
167
+
168
+ - Everyone who found or helped me with finding the addresses/pointers used in this project.
169
+
170
+ - c8ff/winterberry for finding a method to get Cemu's base address without reading the log file.
171
+
172
+ ## License
173
+ This project is licensed under the [MIT License](LICENSE).
174
+
175
+ The executables include third-party components; their license texts are contained in [THIRD_PARTY_LICENSES.md](THIRD_PARTY_LICENSES.md).
@@ -0,0 +1,155 @@
1
+ # Splatlogger
2
+ A CLI PID (Principal ID)/Network ID grabber and match logger for Splatoon, written in Python.
3
+
4
+ Both the Wii U and Cemu (Windows & Linux, macOS not tested) are supported.
5
+
6
+ - [Prerequisites (Wii U)](#prerequisites-wii-u)
7
+ - [Usage](#usage)
8
+ - [Running the executable](#running-the-executable)
9
+ - [Running with Python](#running-with-python)
10
+ - [Options](#options)
11
+ - [Troubleshooting](#troubleshooting)
12
+ - [Important notes](#important-notes)
13
+ - [Building the executable with PyInstaller](#building-the-executable-with-pyinstaller)
14
+ - [Acknowledgments](#acknowledgments)
15
+ - [License](#license)
16
+
17
+ ## Prerequisites (Wii U)
18
+ Your console will need to have either the Tiramisu or Aroma environment set up or have another way to run homebrew,
19
+ such as Haxchi or the browser exploit.
20
+
21
+ On Tiramisu, use [TCPGecko](https://github.com/BullyWiiPlaza/tcpgecko), [Geckiine](https://hb-app.store/wiiu/geckiine),
22
+ or any other app with the TCPGecko server.
23
+
24
+ On Aroma, use [TCPGecko-Plugin](https://github.com/PinkDiamondTeam/TCPGecko-Plugin).
25
+
26
+ ## Usage
27
+ ### Running the executable
28
+ Windows and Linux executables are provided on the Releases page.
29
+
30
+ Run Splatlogger with:
31
+ ```
32
+ path/to/Splatlogger-executable --ip IP [options]
33
+ ```
34
+ where `IP` is your Wii U's LAN IP address.
35
+
36
+ Open a command prompt/terminal window and drag the executable into it to automatically get the path.
37
+
38
+ ### Running with Python
39
+ You can install Splatlogger as a package from PyPI:
40
+ ```
41
+ pip install Splatlogger
42
+ ```
43
+
44
+ The run with:
45
+ ```
46
+ splatlogger --ip IP [options]
47
+ ```
48
+ (if that fails, try `python -m splatlogger`) where `IP` is your Wii U's LAN IP address.
49
+
50
+ To run from source instead, download the latest source archive from the Releases
51
+ page and extract it, then open a terminal window in the extracted directory.
52
+
53
+ Install the required dependencies:
54
+ ```
55
+ pip install -r requirements.txt
56
+ ```
57
+
58
+ Then move into the `src` directory and run:
59
+ ```
60
+ python -m spatlogger --ip IP [options]
61
+ ```
62
+
63
+ ### Options
64
+ - `-c [PID]`, `--cemu [PID]` - Switch to Cemu mode. The `--ip` argument is not required.
65
+ - `PID` - PID of the Cemu process (optional).
66
+
67
+ - `--log-level option` - Set how much data should be logged.
68
+ - `none` - Don't create a log file.
69
+ - `standard` - Log only basic player information, the same as what's printed to the console (default).
70
+ - `extended` - Log all player information and additional match information.
71
+ - `stats` - Same as above with the addition of player stats (points, K/D). Requires the match to end to finish logging; if it ends abruptly, the stats won't be logged.
72
+
73
+ - `--service` - Choose which network service you're using.
74
+ - `pretendo` - Pretendo Network (default).
75
+ - `spfn` - Splatfestival Network.
76
+
77
+ - `-a [option]`, `--auto [option]` - Enable auto logging. When enabled will automatically log every match you play. The log level must be at least `standard`.
78
+ - `all` - Save a log of all matches you play (default).
79
+ - `latest` - Save a log of only the latest match.
80
+
81
+ - `--stack Address (in hex)` - (Cemu only, optional) Beginning address of the stack space for Default Core 1 (Debug > View PPC threads).
82
+ Only required for logging stats. If the default values don't work, you'll need to specify this manually.
83
+
84
+ <img src="assets/stack.png" width="600" alt="(example)">
85
+
86
+ - `-n`, `--no-fetch` - Disable fetching network IDs and Mii names.
87
+
88
+ - `-s`, `--silent` - Disable printing logs to the console.
89
+
90
+ For example, `splatlogger --ip 192.168.1.100 --log-level extended --auto latest` will save an extended log of the latest match you play
91
+ (replace `192.168.1.100` with your actual IP address).
92
+
93
+ Logs are saved in your documents folder in `Splatlogger/logs/`.
94
+
95
+ To always run with the same IP and options without having to type them in manually, create a `options.txt` file in
96
+ `(User)/Documents/Splatlogger/` and put them in there.
97
+ Afterward, run `splatlogger` without any arguments.
98
+
99
+ ### Troubleshooting
100
+ Only one program can be connected to TCPGecko at a time. If you have something else connected, disconnect it beforehand.
101
+
102
+ If it keeps failing to connect, make sure that:
103
+ - Your device and Wii U are on the same local network.
104
+ - Port 7331 isn't blocked by the firewall.
105
+ - TCPGecko is running.
106
+
107
+ For Cemu users on Linux, if you have ptrace protection enabled, you'll need to run Python as root.
108
+ In that case, it's best to run the package from source or use the executable instead.
109
+
110
+ ## Important notes
111
+ - The data collected by Splatlogger is public player info shared by the game with every user you encounter in online matches.
112
+
113
+ - Network IDs and Mii names are fetched from the Pretendo or SPFN account server; this can be disabled with the `--no-fetch` option.
114
+
115
+ - Splatlogger does not collect any sensitive information such as account email addresses or IP addresses.
116
+
117
+ - All data collected stays on your machine and is not sent anywhere.
118
+
119
+ - Please handle the logs responsibly. I do not encourage sharing other users' data without their permission, even if no real harm can be done with it.
120
+
121
+ ## Building the executable with PyInstaller
122
+ Set up a virtual environment and install PyInstaller as well as the required dependencies.
123
+
124
+ In `match_logger.py`, replace `from importlib import resources` with `import sys` and
125
+ ```py
126
+ names_path = resources.files(__package__).joinpath("resources", "names.json")
127
+ ```
128
+
129
+ with
130
+ ```py
131
+ names_path = Path(sys._MEIPASS) / "resources/names.json"
132
+ ```
133
+
134
+ Then run:
135
+ ```
136
+ pyinstaller --noconfirm --onefile --console --name "Splatlogger-v1.x" --upx-dir "path/to/upx" --optimize "2" --add-data "path/to/Splatlogger/src/splatlogger/resources:resources/" --icon "NONE" "path/to/Splatlogger/src/run.py"
137
+ ```
138
+ replacing the placeholder paths with the actual ones.
139
+
140
+ You can omit `--upx-dir` if you're not using UPX to compress the executable and `--optimize "2"` to disable
141
+ bytecode optimization.
142
+
143
+ On Linux, add `--bootloader-ignore-signals`
144
+
145
+ ## Acknowledgments
146
+ - [pyGecko](https://github.com/wiiudev/pyGecko) authors for the reference implementation of a TCPGecko library.
147
+
148
+ - Everyone who found or helped me with finding the addresses/pointers used in this project.
149
+
150
+ - c8ff/winterberry for finding a method to get Cemu's base address without reading the log file.
151
+
152
+ ## License
153
+ This project is licensed under the [MIT License](LICENSE).
154
+
155
+ The executables include third-party components; their license texts are contained in [THIRD_PARTY_LICENSES.md](THIRD_PARTY_LICENSES.md).
@@ -0,0 +1,40 @@
1
+ [build-system]
2
+ requires = ["setuptools>=83.0.0"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "Splatlogger"
7
+ version = "1.0.0"
8
+ authors = [
9
+ { name="Shadow Doggo", email="shadowdoggo@protonmail.com" }
10
+ ]
11
+ description = "PID (Principal ID)/Network ID grabber and match logger for Splatoon"
12
+ readme = "README.md"
13
+ requires-python = ">=3.11"
14
+ dependencies = [
15
+ "userpaths",
16
+ "requests",
17
+ "psutil",
18
+ "pymemoryeditor>=2.0.0",
19
+ "colorama",
20
+ "clean-text"
21
+ ]
22
+ classifiers = [
23
+ "Programming Language :: Python :: 3",
24
+ "Operating System :: OS Independent",
25
+ ]
26
+ license = "MIT"
27
+ license-files = ["LICENSE"]
28
+
29
+ [project.urls]
30
+ "Source Code" = "https://codeberg.org/ShadowDoggo/Splatlogger"
31
+
32
+ [project.scripts]
33
+ splatlogger = "splatlogger.cli:cli"
34
+
35
+ [tool.setuptools.packages.find]
36
+ where = ["src"]
37
+ include = ["splatlogger*"]
38
+
39
+ [tool.setuptools.package-data]
40
+ splatlogger = ["resources/*.json"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,175 @@
1
+ Metadata-Version: 2.4
2
+ Name: Splatlogger
3
+ Version: 1.0.0
4
+ Summary: PID (Principal ID)/Network ID grabber and match logger for Splatoon
5
+ Author-email: Shadow Doggo <shadowdoggo@protonmail.com>
6
+ License-Expression: MIT
7
+ Project-URL: Source Code, https://codeberg.org/ShadowDoggo/Splatlogger
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: Operating System :: OS Independent
10
+ Requires-Python: >=3.11
11
+ Description-Content-Type: text/markdown
12
+ License-File: LICENSE
13
+ Requires-Dist: userpaths
14
+ Requires-Dist: requests
15
+ Requires-Dist: psutil
16
+ Requires-Dist: pymemoryeditor>=2.0.0
17
+ Requires-Dist: colorama
18
+ Requires-Dist: clean-text
19
+ Dynamic: license-file
20
+
21
+ # Splatlogger
22
+ A CLI PID (Principal ID)/Network ID grabber and match logger for Splatoon, written in Python.
23
+
24
+ Both the Wii U and Cemu (Windows & Linux, macOS not tested) are supported.
25
+
26
+ - [Prerequisites (Wii U)](#prerequisites-wii-u)
27
+ - [Usage](#usage)
28
+ - [Running the executable](#running-the-executable)
29
+ - [Running with Python](#running-with-python)
30
+ - [Options](#options)
31
+ - [Troubleshooting](#troubleshooting)
32
+ - [Important notes](#important-notes)
33
+ - [Building the executable with PyInstaller](#building-the-executable-with-pyinstaller)
34
+ - [Acknowledgments](#acknowledgments)
35
+ - [License](#license)
36
+
37
+ ## Prerequisites (Wii U)
38
+ Your console will need to have either the Tiramisu or Aroma environment set up or have another way to run homebrew,
39
+ such as Haxchi or the browser exploit.
40
+
41
+ On Tiramisu, use [TCPGecko](https://github.com/BullyWiiPlaza/tcpgecko), [Geckiine](https://hb-app.store/wiiu/geckiine),
42
+ or any other app with the TCPGecko server.
43
+
44
+ On Aroma, use [TCPGecko-Plugin](https://github.com/PinkDiamondTeam/TCPGecko-Plugin).
45
+
46
+ ## Usage
47
+ ### Running the executable
48
+ Windows and Linux executables are provided on the Releases page.
49
+
50
+ Run Splatlogger with:
51
+ ```
52
+ path/to/Splatlogger-executable --ip IP [options]
53
+ ```
54
+ where `IP` is your Wii U's LAN IP address.
55
+
56
+ Open a command prompt/terminal window and drag the executable into it to automatically get the path.
57
+
58
+ ### Running with Python
59
+ You can install Splatlogger as a package from PyPI:
60
+ ```
61
+ pip install Splatlogger
62
+ ```
63
+
64
+ The run with:
65
+ ```
66
+ splatlogger --ip IP [options]
67
+ ```
68
+ (if that fails, try `python -m splatlogger`) where `IP` is your Wii U's LAN IP address.
69
+
70
+ To run from source instead, download the latest source archive from the Releases
71
+ page and extract it, then open a terminal window in the extracted directory.
72
+
73
+ Install the required dependencies:
74
+ ```
75
+ pip install -r requirements.txt
76
+ ```
77
+
78
+ Then move into the `src` directory and run:
79
+ ```
80
+ python -m spatlogger --ip IP [options]
81
+ ```
82
+
83
+ ### Options
84
+ - `-c [PID]`, `--cemu [PID]` - Switch to Cemu mode. The `--ip` argument is not required.
85
+ - `PID` - PID of the Cemu process (optional).
86
+
87
+ - `--log-level option` - Set how much data should be logged.
88
+ - `none` - Don't create a log file.
89
+ - `standard` - Log only basic player information, the same as what's printed to the console (default).
90
+ - `extended` - Log all player information and additional match information.
91
+ - `stats` - Same as above with the addition of player stats (points, K/D). Requires the match to end to finish logging; if it ends abruptly, the stats won't be logged.
92
+
93
+ - `--service` - Choose which network service you're using.
94
+ - `pretendo` - Pretendo Network (default).
95
+ - `spfn` - Splatfestival Network.
96
+
97
+ - `-a [option]`, `--auto [option]` - Enable auto logging. When enabled will automatically log every match you play. The log level must be at least `standard`.
98
+ - `all` - Save a log of all matches you play (default).
99
+ - `latest` - Save a log of only the latest match.
100
+
101
+ - `--stack Address (in hex)` - (Cemu only, optional) Beginning address of the stack space for Default Core 1 (Debug > View PPC threads).
102
+ Only required for logging stats. If the default values don't work, you'll need to specify this manually.
103
+
104
+ <img src="assets/stack.png" width="600" alt="(example)">
105
+
106
+ - `-n`, `--no-fetch` - Disable fetching network IDs and Mii names.
107
+
108
+ - `-s`, `--silent` - Disable printing logs to the console.
109
+
110
+ For example, `splatlogger --ip 192.168.1.100 --log-level extended --auto latest` will save an extended log of the latest match you play
111
+ (replace `192.168.1.100` with your actual IP address).
112
+
113
+ Logs are saved in your documents folder in `Splatlogger/logs/`.
114
+
115
+ To always run with the same IP and options without having to type them in manually, create a `options.txt` file in
116
+ `(User)/Documents/Splatlogger/` and put them in there.
117
+ Afterward, run `splatlogger` without any arguments.
118
+
119
+ ### Troubleshooting
120
+ Only one program can be connected to TCPGecko at a time. If you have something else connected, disconnect it beforehand.
121
+
122
+ If it keeps failing to connect, make sure that:
123
+ - Your device and Wii U are on the same local network.
124
+ - Port 7331 isn't blocked by the firewall.
125
+ - TCPGecko is running.
126
+
127
+ For Cemu users on Linux, if you have ptrace protection enabled, you'll need to run Python as root.
128
+ In that case, it's best to run the package from source or use the executable instead.
129
+
130
+ ## Important notes
131
+ - The data collected by Splatlogger is public player info shared by the game with every user you encounter in online matches.
132
+
133
+ - Network IDs and Mii names are fetched from the Pretendo or SPFN account server; this can be disabled with the `--no-fetch` option.
134
+
135
+ - Splatlogger does not collect any sensitive information such as account email addresses or IP addresses.
136
+
137
+ - All data collected stays on your machine and is not sent anywhere.
138
+
139
+ - Please handle the logs responsibly. I do not encourage sharing other users' data without their permission, even if no real harm can be done with it.
140
+
141
+ ## Building the executable with PyInstaller
142
+ Set up a virtual environment and install PyInstaller as well as the required dependencies.
143
+
144
+ In `match_logger.py`, replace `from importlib import resources` with `import sys` and
145
+ ```py
146
+ names_path = resources.files(__package__).joinpath("resources", "names.json")
147
+ ```
148
+
149
+ with
150
+ ```py
151
+ names_path = Path(sys._MEIPASS) / "resources/names.json"
152
+ ```
153
+
154
+ Then run:
155
+ ```
156
+ pyinstaller --noconfirm --onefile --console --name "Splatlogger-v1.x" --upx-dir "path/to/upx" --optimize "2" --add-data "path/to/Splatlogger/src/splatlogger/resources:resources/" --icon "NONE" "path/to/Splatlogger/src/run.py"
157
+ ```
158
+ replacing the placeholder paths with the actual ones.
159
+
160
+ You can omit `--upx-dir` if you're not using UPX to compress the executable and `--optimize "2"` to disable
161
+ bytecode optimization.
162
+
163
+ On Linux, add `--bootloader-ignore-signals`
164
+
165
+ ## Acknowledgments
166
+ - [pyGecko](https://github.com/wiiudev/pyGecko) authors for the reference implementation of a TCPGecko library.
167
+
168
+ - Everyone who found or helped me with finding the addresses/pointers used in this project.
169
+
170
+ - c8ff/winterberry for finding a method to get Cemu's base address without reading the log file.
171
+
172
+ ## License
173
+ This project is licensed under the [MIT License](LICENSE).
174
+
175
+ The executables include third-party components; their license texts are contained in [THIRD_PARTY_LICENSES.md](THIRD_PARTY_LICENSES.md).
@@ -0,0 +1,20 @@
1
+ LICENSE
2
+ README.md
3
+ pyproject.toml
4
+ src/Splatlogger.egg-info/PKG-INFO
5
+ src/Splatlogger.egg-info/SOURCES.txt
6
+ src/Splatlogger.egg-info/dependency_links.txt
7
+ src/Splatlogger.egg-info/entry_points.txt
8
+ src/Splatlogger.egg-info/requires.txt
9
+ src/Splatlogger.egg-info/top_level.txt
10
+ src/splatlogger/__init__.py
11
+ src/splatlogger/__main__.py
12
+ src/splatlogger/cemu_gecko.py
13
+ src/splatlogger/cli.py
14
+ src/splatlogger/enums.py
15
+ src/splatlogger/match_logger.py
16
+ src/splatlogger/splatlogger.py
17
+ src/splatlogger/tcpgecko.py
18
+ src/splatlogger/tuples.py
19
+ src/splatlogger/utility_functions.py
20
+ src/splatlogger/resources/names.json
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ splatlogger = splatlogger.cli:cli
@@ -0,0 +1,6 @@
1
+ userpaths
2
+ requests
3
+ psutil
4
+ pymemoryeditor>=2.0.0
5
+ colorama
6
+ clean-text
@@ -0,0 +1 @@
1
+ splatlogger
File without changes
@@ -0,0 +1,4 @@
1
+ from .cli import cli
2
+
3
+ if __name__ == "__main__":
4
+ cli()