Commit graph

29 commits

Author SHA1 Message Date
Golumpa
7f7ad80b46 Canonicalize reward IDs during case-insensitive mapping 2026-08-19 13:10:33 +01:00
Golumpa
5fe39b96ae Add achievement export support 2026-08-19 13:00:09 +01:00
Golumpa
40b44521aa Expand achievement exports with progress and metadata 2026-08-19 12:32:16 +01:00
Golumpa
569299dbdd
Merge pull request #11 from Efk3/feature/achievement-sniffer
feat: add achievement export
2026-08-19 11:07:12 +01:00
Golumpa
81301fea85 Allow shifted views to omit protocol padding 2026-08-19 10:51:12 +01:00
Efk3
9e510ab95f feat: add achievement export
Automatically captures completed achievements during login and exports their IDs, including completed PlayStation trophies.
2026-08-03 21:12:20 +02:00
Golumpa
a48da863ea Reconcile page-split timestamps for ten-pull transactions 2026-07-30 17:10:33 +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
2b33ea63af Add capture diagnostics and replay fixtures
Add privacy-safe capture diagnostics and sanitized replay fixtures without changing the existing export format, record order, or UID generation.
2026-07-16 00:12:02 +01:00
Golumpa
73bb100cd6 Add safe snapshot and segment assembly
Add envelope-aware snapshot and segment assembly for structured Monopoly and Arc history records.
2026-07-15 19:48:11 +01:00
Golumpa
a5312520e7 Implemented fallback decoder
Added a new fallback decoder on the chance things do not decode correctly with the primary decoder.
2026-07-15 19:32:40 +01:00
Golumpa
042d47e3d4 Added mappings updater
Implemented a mappings updater script that uses the Waifus-Grace/NTE_Assets repo to export all the required mappings.
2026-07-15 19:06:47 +01:00
Golumpa
dd07335d39 Improve test suite
Improves the existing test suite by splitting the single test file into multiple files.

Also adds the ability for other people to use the tests with some example data.
2026-07-15 17:30:19 +01:00
Golumpa
98b2165b84 Stabilize UID generation and page-first dice parsing 2026-06-28 16:23:02 +01:00
Golumpa
fe3eb986de all non main releases
all non main releases will be marked as a pre release so we can build releases that do not get sent out as an update notification to everyone just yet
2026-06-23 15:46:37 +01:00
Golumpa
5fac4cd9e8 add update notification 2026-06-23 11:45:50 +01:00
Golumpa
9b37d0a747 add version identifier to csv 2026-06-17 17:02:40 +01:00
Golumpa
8102e46b37 0.1.5
fix chase reward
2026-06-17 15:58:52 +01:00
Golumpa
20bf0d4459 fix workflows 2026-06-17 15:04:47 +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
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
1144e33a57 Validate ARC timestamps and reject bad responses
Add strict validation and error handling for ARC timestamps: require exactly 8 bytes and raise a ValueError for out-of-range timestamps (wraps OverflowError/OSError/ValueError from datetime). parse_arc_response now catches timestamp decode failures and returns an empty list for invalid ARC responses. Added a unit test that injects invalid timestamp noise to ensure the parser rejects such responses.
2026-06-12 10:32:17 +01:00
Golumpa
5d16dac4d5 Export partially-captured groups as stable
Stop treating partially-captured oldest timestamp groups (including Arc 10-pulls) as a special "incomplete" case. All decoded rows are now exported and marked with stable UIDs; the previous INCOMPLETE_* warnings and related console hint logic were removed. annotate_groups and annotate_arc_groups were simplified to always set uid_status="stable" and export_record=True, and arc_stability_warnings was deleted. CLI, live capture runner, console, tests, docs and mappings were updated to reflect the new behavior and to remove emission/handling of those informational warnings.
2026-06-11 14:57:08 +01:00
Golumpa
20b2086299 Anchor scans to page 1; export stable prefixes
Anchor page-run selection to start at page 1 (select_continuous_run_from_page_1) instead of picking the longest run, so newest pages are preserved and the newest timestamp ordinal 0 is always captured. Change boundary logic to always assign stable UIDs and export the captured prefix of an oldest timestamp group even when it may be an unfinished 10-pull, emitting informational warnings (INCOMPLETE_TIMESTAMP_GROUP_EXPORTED / INCOMPLETE_ARC_10_PULL_EXPORTED) instead of dropping rows. Apply the same policy to Arc groups and update arc group annotation and warnings accordingly. Add a new console module for improved CLI output and update cli, live_capture, adapters, and session code to use the new run selection and console helpers. Update docs, mappings, and tests to reflect the new boundary/export behavior and messaging.
2026-06-11 12:22:34 +01:00
Golumpa
30dc4e4831 Export oldest boundary when dice %10==0
Allow an oldest-boundary timestamp group to be exported when its dice-only record count is a positive multiple of 10. This adds a dice_complete check in the boundary annotation logic so a proved-finished pull set on a full final page is exported (unseen continuation rows can only be non-dice tails that sort after seen rows, keeping ordinals/UIDs stable). Docs and README updated to explain the rule, and tests updated/expanded to cover dice-complete, partial, and newest-boundary behaviors.
2026-06-11 11:21:42 +01:00
Golumpa
354b0e9232 Decode reward keys and use mapping files
Add decoding for Monopoly reward keys and switch reward metadata to be looked up by decoded id. Implement decode_reward_key() and infer_reward_type(); replace the previous raw-key KNOWN_REWARDS approach with REWARDS_BY_ID built from mappings/*.json. Add mappings/items.json and expand mappings/arcs.json. Update decoder to produce reward_id, use REWARDS_BY_ID, and change guess_quantity() to accept reward_id. Refactor pool_mappings to reuse the new mapping loader, and update tests and docs to validate mapping files and document the reward key encoding/behavior.
2026-06-11 11:09:02 +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