Skip to content

Commit 42a6ebd

Browse files
committed
Add --all flag to setlist to see all sets, including extras
1 parent e9f37fc commit 42a6ebd

File tree

2 files changed

+30
-16
lines changed

2 files changed

+30
-16
lines changed

src/scry/cli.py

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,12 @@ def build_arg_parser() -> argparse.ArgumentParser:
7878
"setlist",
7979
help="Return list of sets with code, card total, and year of release",
8080
)
81+
setlist_parser.add_argument(
82+
"-a",
83+
"--all",
84+
action="store_true",
85+
help="Return a full list of set releases including bonus sets, boxes, memorabilia, etc.",
86+
)
8187
setlist_parser.set_defaults(func=handle_setlist)
8288

8389
# STATS -----------------------
@@ -175,8 +181,11 @@ def handle_set(args, db_connection):
175181

176182

177183
def handle_setlist(args, db_connection):
178-
print("All Main and Commander MTG expansion sets:\n")
179-
setlist = set_codes()
184+
if include_all_sets := args.all:
185+
print("All release sets:", include_all_sets)
186+
else:
187+
print("All Main and Commander MTG expansion sets:\n")
188+
setlist = set_codes(include_all_sets)
180189
current_set = find_current_release(setlist)
181190
for set_info in setlist:
182191
print(
@@ -188,6 +197,8 @@ def handle_setlist(args, db_connection):
188197
else:
189198
print()
190199

200+
print(f"\nShowing {len(setlist)} sets")
201+
191202

192203
def handle_stats(args, db_connection):
193204
print("STATS for ALL cards in database:")

src/scry/request.py

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ def find_current_release(setlist: list) -> dict:
153153
return {}
154154

155155

156-
def set_codes() -> list:
156+
def set_codes(include_all_sets=False) -> list:
157157
endpoint = "/sets"
158158

159159
sleep(0.1) # just in case we ever call this in a loop
@@ -175,26 +175,29 @@ def set_codes() -> list:
175175
for set_info in setlist_data:
176176
released = set_info.get("released_at")
177177
set_type = set_info.get("set_type")
178-
# define the types of sets to show (expansion, core, draft_innovation seem to be the main ones)
179-
valid_sets = [
178+
# define the types of sets to show (expansion, core, draft_innovation
179+
# seem to be the main ones)
180+
main_sets = [
180181
"expansion",
181182
"commander",
182183
"draft_innovation",
183184
"core",
184-
# "box",
185185
"masters",
186186
"arsenal",
187187
]
188-
if set_type in valid_sets:
189-
setlist.append(
190-
{
191-
"set_code": set_info.get("code").upper(),
192-
"name": set_info.get("name"),
193-
"release_date": released,
194-
# "set_type": set_info.get("set_type"),
195-
"card_count": set_info.get("card_count"),
196-
}
197-
)
188+
values_to_store = {
189+
"set_code": set_info.get("code").upper(),
190+
"name": set_info.get("name"),
191+
"release_date": released,
192+
# "set_type": set_info.get("set_type"),
193+
"card_count": set_info.get("card_count"),
194+
}
195+
# if include_all_sets flag given, store all sets,
196+
# otherwise filter to main_sets
197+
if include_all_sets:
198+
setlist.append(values_to_store)
199+
elif set_type in main_sets:
200+
setlist.append(values_to_store)
198201
return setlist
199202
else:
200203
print(

0 commit comments

Comments
 (0)