Import Melee matches exports, add tests and local podman stack
- Parse Melee matches exports (one round per file, byes, null GameWins); one import form detects matches vs standings exports. Re-importing a round replaces just that round and keeps entered decks. - Per-player deck entry for sessions scored from matches. - node:test suite with anonymised fixtures; lockfile. - scripts/local.sh runs the compose stack under podman with its own .env.local, project name and volume. - README and CLAUDE.md docs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
a7f440c658
commit
985c85bcef
15 files changed
+2450
-27
No files matched your search
Vendored
+103
@@ -0,0 +1,103 @@
|
||||
[
|
||||
{
|
||||
"Competitors": [
|
||||
{
|
||||
"Team": {
|
||||
"Players": [
|
||||
{
|
||||
"Name": "Eve Evans",
|
||||
"DisplayName": "eve",
|
||||
"Username": "eve"
|
||||
}
|
||||
]
|
||||
},
|
||||
"SortOrder": 0,
|
||||
"GameByes": 2,
|
||||
"GameWins": null,
|
||||
"GameWinsAndGameByes": 2,
|
||||
"Decklists": []
|
||||
}
|
||||
],
|
||||
"RoundNumber": 4,
|
||||
"GameDraws": 0,
|
||||
"HasResult": true
|
||||
},
|
||||
{
|
||||
"Competitors": [
|
||||
{
|
||||
"Team": {
|
||||
"Players": [
|
||||
{
|
||||
"Name": "Alice Archer",
|
||||
"DisplayName": "alice",
|
||||
"Username": "alice"
|
||||
}
|
||||
]
|
||||
},
|
||||
"SortOrder": 0,
|
||||
"GameByes": null,
|
||||
"GameWins": 2,
|
||||
"GameWinsAndGameByes": 2,
|
||||
"Decklists": []
|
||||
},
|
||||
{
|
||||
"Team": {
|
||||
"Players": [
|
||||
{
|
||||
"Name": "Bob Baker",
|
||||
"DisplayName": "bobb",
|
||||
"Username": "bobb"
|
||||
}
|
||||
]
|
||||
},
|
||||
"SortOrder": 1,
|
||||
"GameByes": null,
|
||||
"GameWins": null,
|
||||
"GameWinsAndGameByes": 0,
|
||||
"Decklists": []
|
||||
}
|
||||
],
|
||||
"RoundNumber": 4,
|
||||
"GameDraws": 0,
|
||||
"HasResult": true
|
||||
},
|
||||
{
|
||||
"Competitors": [
|
||||
{
|
||||
"Team": {
|
||||
"Players": [
|
||||
{
|
||||
"Name": "Cara Chen",
|
||||
"DisplayName": "cara",
|
||||
"Username": "cara"
|
||||
}
|
||||
]
|
||||
},
|
||||
"SortOrder": 0,
|
||||
"GameByes": null,
|
||||
"GameWins": 1,
|
||||
"GameWinsAndGameByes": 1,
|
||||
"Decklists": []
|
||||
},
|
||||
{
|
||||
"Team": {
|
||||
"Players": [
|
||||
{
|
||||
"Name": "Dan Doyle",
|
||||
"DisplayName": "dand",
|
||||
"Username": "dand"
|
||||
}
|
||||
]
|
||||
},
|
||||
"SortOrder": 1,
|
||||
"GameByes": null,
|
||||
"GameWins": 2,
|
||||
"GameWinsAndGameByes": 2,
|
||||
"Decklists": []
|
||||
}
|
||||
],
|
||||
"RoundNumber": 4,
|
||||
"GameDraws": 0,
|
||||
"HasResult": true
|
||||
}
|
||||
]
|
||||
Vendored
+66
@@ -0,0 +1,66 @@
|
||||
[
|
||||
{
|
||||
"Team": {
|
||||
"Players": [
|
||||
{
|
||||
"Name": "Alice Archer",
|
||||
"DisplayName": "alice",
|
||||
"Username": "alice"
|
||||
}
|
||||
]
|
||||
},
|
||||
"RoundNumber": 1,
|
||||
"Points": 3,
|
||||
"MatchWins": 1,
|
||||
"MatchDraws": 0,
|
||||
"MatchLosses": 0
|
||||
},
|
||||
{
|
||||
"Team": {
|
||||
"Players": [
|
||||
{
|
||||
"Name": "Bob Baker",
|
||||
"DisplayName": "bobb",
|
||||
"Username": "bobb"
|
||||
}
|
||||
]
|
||||
},
|
||||
"RoundNumber": 1,
|
||||
"Points": 0,
|
||||
"MatchWins": 0,
|
||||
"MatchDraws": 0,
|
||||
"MatchLosses": 1
|
||||
},
|
||||
{
|
||||
"Team": {
|
||||
"Players": [
|
||||
{
|
||||
"Name": "Alice Archer",
|
||||
"DisplayName": "alice",
|
||||
"Username": "alice"
|
||||
}
|
||||
]
|
||||
},
|
||||
"RoundNumber": 2,
|
||||
"Points": 6,
|
||||
"MatchWins": 2,
|
||||
"MatchDraws": 0,
|
||||
"MatchLosses": 0
|
||||
},
|
||||
{
|
||||
"Team": {
|
||||
"Players": [
|
||||
{
|
||||
"Name": "Bob Baker",
|
||||
"DisplayName": "bobb",
|
||||
"Username": "bobb"
|
||||
}
|
||||
]
|
||||
},
|
||||
"RoundNumber": 2,
|
||||
"Points": 1,
|
||||
"MatchWins": 0,
|
||||
"MatchDraws": 1,
|
||||
"MatchLosses": 1
|
||||
}
|
||||
]
|
||||
Reference in new issue
Block a user