diff options
author | Doug Coleman <doug.coleman@gmail.com> | 2024-04-11 22:19:08 -0500 |
---|---|---|
committer | Doug Coleman <doug.coleman@gmail.com> | 2024-04-11 22:19:08 -0500 |
commit | 3e7491264149c62f746a33742f11f0681f5d8aaf (patch) | |
tree | de8810c8d4705ddcbf3de4acf00bb7db65b839c0 | |
parent | b34df497687261251458dcc3d9219ca5e26a6997 (diff) |
scryfall: better names, remove some duplicationvalidate
-rw-r--r-- | extra/scryfall/scryfall.factor | 28 |
1 files changed, 13 insertions, 15 deletions
diff --git a/extra/scryfall/scryfall.factor b/extra/scryfall/scryfall.factor index 14358b8532..21133f612a 100644 --- a/extra/scryfall/scryfall.factor +++ b/extra/scryfall/scryfall.factor @@ -78,22 +78,21 @@ MEMO: scryfall-rulings-json ( -- json ) ensure-scryfall-images-directory small-images [ download-scryfall-image load-image ] map ; -: filter-card-by-name ( seq name -- card ) >lower '[ "name" of >lower _ = ] filter ; -: cards-by-name ( seq -- assoc ) [ "name" of ] collect-by ; -: cards-by-cmc ( seq -- assoc ) [ "cmc" of ] collect-by ; -: cards-by-mana-cost ( seq -- assoc ) [ "mana_cost" of ] collect-by ; -: cards-by-color-identity ( seq -- assoc ) [ "color_identity" of ] collect-by-multi ; -: red-color-identity ( seq -- seq' ) cards-by-color-identity "R" of ; -: blue-color-identity ( seq -- seq' ) cards-by-color-identity "U" of ; -: green-color-identity ( seq -- seq' ) cards-by-color-identity "G" of ; -: black-color-identity ( seq -- seq' ) cards-by-color-identity "B" of ; -: white-color-identity ( seq -- seq' ) cards-by-color-identity "W" of ; +: collect-cards-by-name ( seq -- assoc ) [ "name" of ] collect-by ; +: collect-cards-by-cmc ( seq -- assoc ) [ "cmc" of ] collect-by ; +: collect-cards-by-mana-cost ( seq -- assoc ) [ "mana_cost" of ] collect-by ; +: collect-cards-by-color-identity ( seq -- assoc ) [ "color_identity" of ] collect-by-multi ; +: red-color-identity ( seq -- seq' ) collect-cards-by-color-identity "R" of ; +: blue-color-identity ( seq -- seq' ) collect-cards-by-color-identity "U" of ; +: green-color-identity ( seq -- seq' ) collect-cards-by-color-identity "G" of ; +: black-color-identity ( seq -- seq' ) collect-cards-by-color-identity "B" of ; +: white-color-identity ( seq -- seq' ) collect-cards-by-color-identity "W" of ; : find-card-by-color-identity-intersect ( cards colors -- cards' ) - [ cards-by-color-identity ] dip [ of ] with map intersect-all ; + [ collect-cards-by-color-identity ] dip [ of ] with map intersect-all ; : find-any-color-identities ( cards colors -- cards' ) - [ cards-by-color-identity ] dip [ of ] with map union-all ; + [ collect-cards-by-color-identity ] dip [ of ] with map union-all ; : color-identity-complement ( seq -- seq' ) [ { "B" "G" "R" "U" "W" } ] dip diff ; @@ -434,9 +433,6 @@ MEMO: mtg-sets-by-name ( -- assoc ) : otj-cards-bonus ( -- seq ) mtg-oracle-cards [ "set" of "big" = ] filter ; : otj-cards-all ( -- seq ) mtg-oracle-cards [ "set" of { "otj" "big" } member? ] filter ; -: cards-by-name. ( seq name -- ) - filter-by-name-itext normal-cards. ; - : sort-by-colors ( seq -- seq' ) { { [ "color_identity" of length ] <=> } @@ -477,6 +473,8 @@ CONSTANT: rarity-to-number H{ { [ "set" of ] <=> } } sort-with-spec ; +: cards-by-name. ( seq name -- ) filter-by-name-itext sort-by-release normal-cards. ; + : filter-mtg-cheat-sheet ( seq -- seq' ) [ { |