nte-exporter/pyproject.toml
goober 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

16 lines
401 B
TOML

[project]
name = "nte-history-exporter"
version = "0.4.0"
description = "Cross-platform Neverness to Everness pull-history and achievement exporter."
requires-python = ">=3.10"
dependencies = []
[project.optional-dependencies]
build = ["pyinstaller>=6.0"]
[project.scripts]
nte-history-exporter = "nte_history_exporter.cli:main"
[tool.pytest.ini_options]
pythonpath = ["src"]
testpaths = ["tests"]