mirror of
https://github.com/mwisnowski/mtg_python_deckbuilder.git
synced 2025-12-25 11:58:49 +01:00
feat(owned-cards): add owned-only workflow, multi-file parsing, and recommendations export\n\n- Prompt to use only owned cards (gated by presence of lists)\n- Support .txt/.csv owned lists, multi-select; commander exempt\n- Owned-only filtering + add guard; recommendations CSV/TXT when incomplete\n- CSV Owned column when not owned-only\n- Docs and Docker updated (owned_cards + config mounts)\n- CI: Windows EXE on tag; Docker Hub tag fix (no major.minor)\n- Changelog added; RELEASE_NOTES.md ignored
This commit is contained in:
parent
5f922835a6
commit
acfb29cafb
16 changed files with 480 additions and 261 deletions
|
|
@ -1,19 +1,24 @@
|
|||
# MTG Python Deckbuilder ${VERSION}
|
||||
|
||||
## Highlights
|
||||
- Owned cards: prompt after commander to "Use only owned cards?"; supports `.txt`/`.csv` lists in `owned_cards/`.
|
||||
- Owned-only builds filter the pool by your lists; if the deck can't reach 100, it remains incomplete and notes it.
|
||||
- Recommendations: on incomplete owned-only builds, exports `deck_files/[stem]_recommendations.csv` and `.txt` with ~1.5× missing cards, and prints a short notice.
|
||||
- Owned column: when not using owned-only, owned cards are marked with an `Owned` column in the final CSV.
|
||||
- Headless support: run non-interactively or via the menu's headless submenu.
|
||||
- Config precedence: CLI > env > JSON > defaults; `ideal_counts` in JSON are honored.
|
||||
- Exports: CSV/TXT always; JSON run-config is exported for interactive runs. In headless, JSON export is opt-in via `HEADLESS_EXPORT_JSON`.
|
||||
- Power bracket: set interactively or via `bracket_level` (env: `DECK_BRACKET_LEVEL`).
|
||||
- Data freshness: auto-refreshes `cards.csv` if missing or older than 7 days and re-tags when needed using `.tagging_complete.json`.
|
||||
- Docker: ships a default `config/` in the image; mount `./config` to `/app/config` to use your own.
|
||||
- Docker: mount `./owned_cards` to `/app/owned_cards` to enable owned-cards features; `./config` to `/app/config` for JSON configs.
|
||||
|
||||
## Docker
|
||||
- Single service; persistent volumes:
|
||||
- /app/deck_files
|
||||
- /app/logs
|
||||
- /app/csv_files
|
||||
- Optional: /app/config (mount `./config` for JSON configs)
|
||||
- /app/owned_cards
|
||||
- /app/config (mount `./config` for JSON configs)
|
||||
|
||||
### Quick Start
|
||||
```powershell
|
||||
|
|
@ -22,6 +27,8 @@ docker run -it --rm `
|
|||
-v "${PWD}/deck_files:/app/deck_files" `
|
||||
-v "${PWD}/logs:/app/logs" `
|
||||
-v "${PWD}/csv_files:/app/csv_files" `
|
||||
-v "${PWD}/owned_cards:/app/owned_cards" `
|
||||
-v "${PWD}/config:/app/config" `
|
||||
mwisnowski/mtg-python-deckbuilder:latest
|
||||
|
||||
# From source with Compose
|
||||
|
|
@ -35,11 +42,9 @@ docker compose run --rm -e DECK_MODE=headless -e DECK_CONFIG=/app/config/deck.js
|
|||
```
|
||||
|
||||
## Changes
|
||||
- Simplified headless runner and integrated a headless submenu in the main menu.
|
||||
- JSON export policy: headless runs skip JSON export by default; opt in with `HEADLESS_EXPORT_JSON`.
|
||||
- Correct config precedence applied consistently; tag name-to-index mapping improved for multi-step selection; `bracket_level` respected.
|
||||
- Data freshness enforcement with 7-day refresh and tagging completion flag.
|
||||
- Documentation and Docker usage clarified; default `config/` now included in the image.
|
||||
- Added owned-cards workflow, CSV Owned column, and recommendations export when owned-only builds are incomplete.
|
||||
- Docker assets updated to include `/app/owned_cards` volume and mount examples.
|
||||
- Windows release workflow now attaches a PyInstaller-built EXE to GitHub Releases.
|
||||
|
||||
### Tagging updates
|
||||
- Explore/Map: fixed a pattern issue by treating "+1/+1 counter" as a literal; Explore adds Card Selection and may add +1/+1 Counters; Map adds Card Selection and Tokens Matter.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue