Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
fda9e02
Merge pull request #1 from mtgatracker/master
kelesi Oct 6, 2018
5097533
Proper arena id for Firesong and Sunspeaker
kelesi Oct 18, 2018
b721a80
Merge pull request #2 from kelesi/patch-1
kelesi Oct 18, 2018
7df2c58
Merge pull request #7 from kelesi/patch-1
Spencatro Oct 18, 2018
75148cc
Merge pull request #3 from kelesi/master
Spencatro Oct 18, 2018
392dcfc
Merge pull request #5 from nabaskes/add-cmc-to-card
Spencatro Oct 18, 2018
3977958
Merge branch 'master' into user/shawkins/add_abilities
Spencatro Nov 11, 2018
8cbee17
Merge pull request #8 from mtgatracker/user/shawkins/add_abilities
Spencatro Nov 11, 2018
318b3ce
Add holiday promo for Llanowar Elves
Jan 6, 2019
339b5b2
Merge branch 'master' into user/shawkins/rna
Spencatro Jan 18, 2019
6b2e8f4
Merge pull request #14 from mtgatracker/user/shawkins/rna
Spencatro Feb 3, 2019
37edcfd
Merge pull request #12 from cscheid/patch-1
Spencatro Feb 3, 2019
42f1f6c
add collectible, update generation script
Spencatro Feb 3, 2019
1677223
Merge pull request #15 from mtgatracker/user/shawkins/collectible
Spencatro Feb 3, 2019
ef98963
remove duplicate card
Spencatro Feb 3, 2019
473b474
Add WAR, update version
Spencatro Apr 26, 2019
01fc57d
add m20 cards
Spencatro Jul 4, 2019
bbcc8da
add long description content type, per new pypi requirement
Spencatro Jul 4, 2019
3a1df4f
add new ELD cards, older lands
Spencatro Sep 6, 2019
7d10f4b
Dynamically read card database from arena installation
Spencatro Sep 28, 2019
63efc73
Slightly smarter logic to find the MTGA install location.
pak21 Sep 29, 2019
da14038
Merge pull request #18 from pak21/arena-location
Spencatro Oct 7, 2019
2830d9a
fix python-mtga for 11/21 patch (.....wtf)
Spencatro Nov 21, 2019
8f94d81
Merge branch 'master' of github.com:mtgatracker/python-mtga
Spencatro Nov 21, 2019
d6ff089
bump version
Spencatro Nov 21, 2019
3554920
Use logging instead of raw print
milankelesi Nov 25, 2019
fdf737c
Use logging instead of raw print
milankelesi Nov 25, 2019
291498c
Add power and toughness to card model.
pak21 Dec 23, 2019
fafc238
bandaid: some ability ID's are failing to resolve
Spencatro Apr 13, 2020
969a6b0
set_data/dynamic.py: Make string literal
geneC Apr 13, 2020
3ab4ec9
set_data/dynamic.py: Sort directory listing; deal with extra files
geneC Apr 13, 2020
48416c9
set_data/dynamic.py: Deal with missing "CollectorNumber"
geneC Apr 13, 2020
c645253
set_data/dynamic.py: Deal with missing isCollectible
geneC Apr 13, 2020
e4681be
Merge pull request #23 from geneC/genec-for-shawkinsl
Spencatro Apr 18, 2020
4176bee
bump version
Spencatro Apr 18, 2020
794bf66
Merge pull request #1 from mtgatracker/master
kelesi May 11, 2020
27c0248
Merge pull request #1 from mtgatracker/master
kelesi May 11, 2020
cb2be06
Merge pull request #2 from kelesi/master
kelesi May 11, 2020
077f7cc
Merge pull request #2 from kelesi/master
kelesi May 11, 2020
7e3501b
Merge branch 'master' into feature/add-power-and-toughness
pak21 Jun 27, 2020
4a87642
Arena has gone 64-bit.
pak21 Jun 27, 2020
265b167
Adds support for the new macOS MTGA client
micku Jul 1, 2020
97c6d83
Merge pull request #27 from micku/macos-client-support
Spencatro Jul 3, 2020
cfb4067
Merge branch 'master' into 64-bit-arena
Spencatro Jul 3, 2020
40c5290
Merge pull request #25 from pak21/64-bit-arena
Spencatro Jul 3, 2020
258205f
Fix the readme for PyPI.
Spencatro Jul 3, 2020
39e5bd3
Add reminder in readme to check line endings. BIG SIGH.
Spencatro Jul 3, 2020
0ac057d
Merge branch 'master' into feature/add-power-and-toughness
pak21 Aug 8, 2020
404b423
Make casing of "collectorNumber" key match updated data files.
pak21 Aug 8, 2020
c116726
Make things work on my hacky Linux setup again.
pak21 Aug 8, 2020
b003678
Merge branch 'master' into feature/add-power-and-toughness
pak21 Aug 8, 2020
0890567
Add artist to card model.
pak21 Aug 9, 2020
47aea10
Parse supported card styles.
pak21 Aug 9, 2020
1b12ea3
Delete vim swap file.
pak21 Aug 9, 2020
752f0b6
Merge remote-tracking branch 'upstream/master'
Aug 11, 2020
9f9d392
Merge remote-tracking branch 'upstream/master'
kelesi Aug 11, 2020
a0a8229
Merge branch 'master' into logging
Aug 11, 2020
ba837a7
Merge branch 'master' into logging
kelesi Aug 11, 2020
4a3ee18
Remove static data and throw if we can't find the Arena data files.
pak21 Aug 29, 2020
0cf7c8a
Put note about my fork in README.md.
pak21 Aug 29, 2020
5e5addc
Add digital set ID to card model.
pak21 Aug 29, 2020
d653e0b
Merge branch 'logging' of https://github.com/kelesi/python-mtga into …
kelesi Dec 7, 2020
50d351b
Latest Arena update has made various fields optional.
pak21 Sep 5, 2021
d14e089
Merge branch 'pak21-master' into logging
kelesi Mar 28, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 11 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,14 @@
# Python MTGA

## kelesi fork

If you're reading this, it means you obtained this package from [kelesi' fork](https://github.com/kelesi/python-mtga)
of the [original](https://github.com/mtgatracker/python-mtga). This
fork has potentially breaking changes, please do not file any issues
found with this fork on the original.

## Introduction

MTGA tools & set data for python. Original cardset generated with MTGJSON and scryfall,
with initial set of MTGA grpId's collected by Fugi & Spencatro.
(Now we just use the data already present in your MTGA installation.)
Expand All @@ -22,4 +32,4 @@ Because I always forget:
python setup.py sdist bdist_wheel
twine check dist/* # check for readme issues (e.g. line endings MUST BE LF, not CRLF lol)
twine upload dist/MTGA-<version>*
```
```
6 changes: 6 additions & 0 deletions source/allcards.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#!/usr/bin/env python3

import mtga

all_styles = [set(card.styles) for card in mtga.all_mtga_cards.cards]
print(set().union(*all_styles))
2 changes: 1 addition & 1 deletion source/mtga/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from .models import card, card_set
from .models.card_set import Pool
from .set_data import xln, dom, rix, m19, grn, rna, war, m20, eld, akh, arenasup, bfz, mi, roe, rtr, all_mtga_cards
from .set_data import all_mtga_cards
from ._version import __version__
version = _version = __version = __version__
15 changes: 12 additions & 3 deletions source/mtga/models/card.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,12 @@
class Card(object):

def __init__(self, name="", pretty_name="", cost=None, color_identity=None, card_type="", sub_types="",
abilities=None, set_id="", rarity="", collectible=True, set_number=-1, mtga_id=-1):
abilities=None, set_id="", digital_set_id=None, rarity="", artist="",
collectible=True, set_number=-1, mtga_id=-1, power=None, toughness=None,
styles=[]):
self.name = name
self.set = set_id
self.digital_set = digital_set_id
self.pretty_name = pretty_name
if cost is None:
cost = []
Expand All @@ -24,10 +27,16 @@ def __init__(self, name="", pretty_name="", cost=None, color_identity=None, card
self.set_number = set_number
self.mtga_id = mtga_id
self.rarity = rarity
self.artist = artist
self.collectible = collectible
if abilities is None:
abilities = []
self.abilities = abilities
self.power = power
self.toughness = toughness
if styles is None:
styles = []
self.styles = styles

@property
def abilities_decoded(self):
Expand Down Expand Up @@ -104,8 +113,8 @@ def __str__(self):

class GameCard(Card):

def __init__(self, name, pretty_name, cost, color_identity, card_type, sub_types, set_id, rarity, set_number, mtga_id, owner_seat_id, game_id=-1):
super().__init__(name, pretty_name, cost, color_identity, card_type, sub_types, set_id, rarity, set_number, mtga_id)
def __init__(self, name, pretty_name, cost, color_identity, card_type, sub_types, set_id, rarity, set_number, mtga_id, owner_seat_id, game_id=-1, power=None, toughness=None):
super().__init__(name, pretty_name, cost, color_identity, card_type, sub_types, set_id, rarity, set_number, mtga_id, power, toughness)
self.game_id = game_id
self.previous_iids = []
self.owner_seat_id = owner_seat_id
Expand Down
27 changes: 10 additions & 17 deletions source/mtga/set_data/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
from mtga.models.card_set import Pool
try:
import logging


def get_all_mtga_cards_dynamic():
from mtga.set_data import dynamic
dynamic_sets = []
all_mtga_abilities = {}
Expand All @@ -12,22 +15,12 @@
all_mtga_cards = Pool.from_sets("mtga_cards",
sets=[*dynamic_sets],
abilities=all_mtga_abilities)
except:
print("WARNING! Could not dynamically generate card sets. Do you have Arena installed?")
from mtga.set_data import xln, dom, rix, m19, ana, grn, rna, war, m20, eld, akh, arenasup, bfz, mi, roe, rtr
return all_mtga_cards, all_mtga_abilities

all_mtga_abilities = {**rix.set_ability_map, **xln.set_ability_map, **dom.set_ability_map, **m19.set_ability_map,
**ana.set_ability_map, **grn.set_ability_map, **rna.set_ability_map, **war.set_ability_map,
**m20.set_ability_map, **eld.set_ability_map, **akh.set_ability_map, **arenasup.set_ability_map,
**bfz.set_ability_map, **mi.set_ability_map, **roe.set_ability_map, **rtr.set_ability_map}



all_mtga_cards = Pool.from_sets("mtga_cards",
sets=[rix.RivalsOfIxalan, xln.Ixalan, dom.Dominaria, m19.CoreSet2019,
ana.ArenaExclusives, grn.GuildsOfRavnica, rna.RavnicaAllegiance,
war.WarOfTheSpark, m20.CoreSet2020, eld.ThroneOfEldraine, akh.Amonkhet,
arenasup.ArenaSup, bfz.BattleForZendikar, mi.Mirage, roe.RiseOfEldrazi,
rtr.ReturnToRavnica],
abilities=all_mtga_abilities)
try:
all_mtga_cards, all_mtga_abilities = get_all_mtga_cards_dynamic()
except Exception as e:
logging.error("Could not dynamically generate card sets. Do you have Arena installed?")
raise Exception("FATAL ERROR: could not dynamically generate card sets. Arena must be installed.")

Loading