diff --git a/core_alphabetical.py b/core_alphabetical.py new file mode 100644 index 0000000..1f7657c --- /dev/null +++ b/core_alphabetical.py @@ -0,0 +1,31 @@ +# Generate a draft pool for dr4ft.info + +import csv + +import cube_json +import cubecobra_csv + +CUBE_NAME = 'TheElegantCube_fetched' + + +def main(): + csv_path = cube_json.request_cube_csv('TheElegantCube_fetched', 'elegant') + + core_cards = [] + with open(csv_path) as f: + reader = csv.reader(f) + header_line = next(reader) + cubecobra_csv.assert_header(header_line) + for line in reader: + card = line[cubecobra_csv.COLUMNS['Name']] + tags = line[cubecobra_csv.COLUMNS['Tags']].split(', ') + if 'core' in tags: + core_cards.append(card) + + core_cards.sort() + for card in core_cards: + print(card) + + +if __name__ == '__main__': + main() diff --git a/cubecobra_csv.py b/cubecobra_csv.py new file mode 100644 index 0000000..39e9ec8 --- /dev/null +++ b/cubecobra_csv.py @@ -0,0 +1,27 @@ +# TODO: Make this an actual API + +EXPECTED_HEADER = [ + 'Name', + 'CMC', + 'Type', + 'Color', + 'Set', + 'Collector Number', + 'Rarity', + 'Color Category', + 'Status', + 'Finish', + 'Maybeboard', + 'Image URL', + 'Image Back URL', + 'Tags', + 'Notes', + 'MTGO ID' +] + + +COLUMNS = {column_name: i for i, column_name in enumerate(EXPECTED_HEADER)} + + +def assert_header(header_line): + assert header_line == EXPECTED_HEADER diff --git a/generate_draft_pool.py b/generate_draft_pool.py index f0f478c..da2067a 100644 --- a/generate_draft_pool.py +++ b/generate_draft_pool.py @@ -4,6 +4,7 @@ import csv import random import cube_json +import cubecobra_csv OUTPUT_POOL_SIZE = 360 @@ -12,25 +13,6 @@ CARDS_FROM_CORE = OUTPUT_POOL_SIZE - CARDS_FROM_OCCASIONAL CUBE_NAME = 'TheElegantCube_fetched' OUTPUT_FILENAME = 'cards_in_draft.txt' -EXPECTED_HEADER = [ - 'Name', - 'CMC', - 'Type', - 'Color', - 'Set', - 'Collector Number', - 'Rarity', - 'Color Category', - 'Status', - 'Finish', - 'Maybeboard', - 'Image URL', - 'Image Back URL', - 'Tags', - 'Notes', - 'MTGO ID' -] -COLUMNS = {column_name: i for i, column_name in enumerate(EXPECTED_HEADER)} def main(): @@ -41,10 +23,10 @@ def main(): with open(csv_path) as f: reader = csv.reader(f) header_line = next(reader) - assert header_line == EXPECTED_HEADER + cubecobra_csv.assert_header(header_line) for line in reader: - card = line[COLUMNS['Name']] - tags = line[COLUMNS['Tags']].split(', ') + card = line[cubecobra_csv.COLUMNS['Name']] + tags = line[cubecobra_csv.COLUMNS['Tags']].split(', ') # print(f'{card} {tags}') if 'occasional' in tags: occasional_pool.append(card)