Skip to content

Commit 158f097

Browse files
committed
Add debugging output and refine list special rule
1 parent 8050f89 commit 158f097

File tree

2 files changed

+20
-5
lines changed

2 files changed

+20
-5
lines changed

src/MagicCollectionHelper/Core/Types/Card.Modules.fs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,11 @@ module CardTypesModules =
6060

6161
let addInfo infoMap getSet getNumber data =
6262
Map.tryFind (getSet data, getNumber data) infoMap
63+
#if DEBUG
64+
|> Option.orElseWith (fun () ->
65+
printfn "No info found for %A" data
66+
None)
67+
#endif
6368
|> Option.map (fun info -> create info data)
6469

6570
let inline map mapper (wrapper: WithInfo<'a>) : WithInfo<'b> =

src/MagicCollectionHelper/Core/Types/Domain.Modules.fs

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
namespace MagicCollectionHelper.Core
22

33
open SimpleOptics
4+
open System
45

56
[<AutoOpen>]
67
module DomainTypesModules =
@@ -17,18 +18,27 @@ module DomainTypesModules =
1718
let toEntry cardInfoMap (entry: DeckStatsCardEntry) =
1819
match entry.set, entry.language with
1920
| Some set, Some lang ->
20-
match set, entry.number with
21-
// Special case for "The List", because numbers differ between scryfall and deckstats
22-
| MagicSet "PLST" as set, _
23-
| set, None ->
24-
// We try to determine the number with name and set
21+
let lookupByName set =
2522
cardInfoMap
2623
|> Map.tryFind (entry.name, set)
2724
|> Option.map (fun info ->
2825
Card.create entry.foil lang info.collectorNumber set
2926
|> Entry.create entry.amount)
27+
28+
match set, entry.number with
29+
// Special case for "The List", because older entrys can have different ids than scryfall
30+
| MagicSet "PLST" as set, Some(CollectorNumber numberValue) when Int32.TryParse numberValue |> fst ->
31+
lookupByName set
32+
| set, None ->
33+
// We try to determine the number with name and set
34+
lookupByName set
3035
| set, Some number -> Card.create entry.foil lang number set |> Entry.create entry.amount |> Some
3136
| _ -> None // We need set and lang as minimum
37+
#if DEBUG
38+
|> Option.orElseWith (fun () ->
39+
printfn "Not enough info found for %A" entry
40+
None)
41+
#endif
3242

3343
let listToEntries cardInfoMap (entries: DeckStatsCardEntry list) =
3444
// We change the map to improve lookup perf

0 commit comments

Comments
 (0)