Commit graph

18 commits

Author SHA1 Message Date
3c8834e98f feat: capture and export gear, cartridges and loadouts
Adds a third export alongside pull history and achievements: the cartridges,
modules, character levels and equipped console boards the game sends at login.

Shaped as added files plus a handful of one-line calls, so this repo can keep
merging upstream:

- decoder/gear.py: self-contained bit-level decoder over a list of datagrams.
- export/gear_export.py: the nte-gear-export envelope.
- live_capture/gear_collector.py: UDP flow accumulation, the mid-capture
  decode, the fallback scan, the console line and the export file.

Gear is reported during the capture rather than only at the stop. The burst
arrives in a rush and then stops, so "this flow went quiet" is the only
mid-stream marker available; a flow is retried only once it has grown, since
decoding per packet would be quadratic in flow size.

Flows are tried largest first and the first one that decodes wins - picking
the single biggest was wrong, history traffic can outweigh a short login
burst.

Verified against a live capture: 817 items (310 cartridges, 507 modules),
20 characters, 13 loadouts, every bucket matching the in-game counts exactly.
26 synthetic tests, no real capture used as a fixture; 149 total.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-21 11:38:27 +03:00
Golumpa
5fe39b96ae Add achievement export support 2026-08-19 13:00:09 +01:00
Golumpa
e44c5eecbf Bump version to 0.2.1 2026-07-30 17:11:38 +01:00
Golumpa
d04a80c3f1 Bump version to 0.2.0
also improved github workflows a bit
2026-07-16 01:40:38 +01:00
Golumpa
cc88955baf Added server detection
Implemented server detection at the request of NTEWIZ. If not detected, it will ask after collecting pull data.
2026-07-16 01:34:38 +01:00
Golumpa
9eae9b4a15 Added Mystery Box Support
Added the event specific Mystery Box support to the exporter. Closes #7
2026-07-16 00:50:14 +01:00
Golumpa
99b1ee7854 Fixed skin item ID's
Not sure why they change the internal ID's but here we go 🤷
2026-07-08 18:36:15 +01:00
Golumpa
5bbebfad84 Added Shinku
Added Shinku and her items to the mappings files
2026-07-08 12:56:20 +01:00
Golumpa
241a15e584 update version to 0.1.8 2026-06-23 15:49:09 +01:00
Golumpa
5fac4cd9e8 add update notification 2026-06-23 11:45:50 +01:00
Golumpa
f3b78400d4 bump to 0.1.6 2026-06-23 11:28:00 +01:00
Golumpa
8102e46b37 0.1.5
fix chase reward
2026-06-17 15:58:52 +01:00
Golumpa
21dcbdcd13 bump to 0.1.4 2026-06-17 15:23:02 +01:00
Golumpa
c5373aa9e0 Add PyInstaller release workflow 2026-06-17 14:54:25 +01:00
Golumpa
df1add6cf1 0.1.3 - Add user UID, capture source & TCP support
Introduce automatic user UID extraction and optional --user-uid override, include user_uid and capture_source in exported JSON, and prepend UID to export filenames (falls back to unknown). Propagate detected protocol (tcp/udp) through live/libpcap parsing and accept TCP packets for UID detection; adjust libpcap filter to capture TCP as well. Update CLI flags (--copy-clipboard semantics, --user-uid), prompt user when UID is missing, and wire UID through mitmproxy and live capture flows. Bump package/exporter version to 0.1.3 and add tests for UID extraction and filename behavior.
2026-06-17 11:20:31 +01:00
Golumpa
98d97cb36a bump to 0.1.2 2026-06-12 20:35:08 +01:00
Golumpa
0e78906e3a 0.1.1 - Add libpcap/Npcap backend and robust live capture
Introduce a cross-platform libpcap/Npcap capture backend with a Windows raw-socket fallback and plumbing to select backends via --capture-backend. Add ctypes-based libpcap wrapper (open_libpcap_capture, CaptureStats, LibpcapUnavailable) and a backend factory; refactor live capture runner to use the new backend, StopKeyMonitor, and improved clipboard handling. Make session and protocol decoders resilient to pipelined/multi-page responses and non-byte-aligned streams (alignment iterator, alignment-aware decoding, embedded-record trimming, slice support). Update mitmproxy flows adapter to reuse LiveHistorySession. Expand console messages and docs/README to explain cross-platform requirements, usage, and capture diagnostics. Minor: update package description in pyproject and adjust ARC/response handling and row bookkeeping to record row indices.
2026-06-12 12:58:15 +01:00
Golumpa
bb3fe3b19a Initial NTE history exporter
Initial NTE history exporter

Add a Windows live-capture exporter for NTE pull history with support for
Permanent Monopoly, Limited Monopoly, and Arc Miracle Box histories.

Included:
- live packet capture via Windows raw sockets
- CSV and JSON export generation
- normalized reward and banner mapping files
- Monopoly v7 Points Gift / Chase Reward classification
- Arc Miracle Box decoding with shared pity metadata
- timestamp grouping and UID generation
- Windows launcher scripts with admin prompting
- docs for usage, export format, limitations, and packet notes
- tests covering decoder behaviour and mapping consistency

Generated exports, captures, briefs, and local data are ignored for privacy.
2026-06-10 23:59:01 +01:00