77 lines
2.2 KiB
Python
77 lines
2.2 KiB
Python
import scrython, time
|
|
|
|
def keyCheck(key, _dict):
|
|
try:
|
|
_dict[key]
|
|
return True
|
|
except KeyError:
|
|
return False
|
|
|
|
def nameBar(name, manaCost):
|
|
return "{} {}".format(name, manaCost)
|
|
|
|
def typeBar(typeLine, rarity):
|
|
return "{} | {}".format(typeLine, rarity[:1].upper())
|
|
|
|
def powerAndToughness(power, toughness):
|
|
return "{}/{}".format(power, toughness)
|
|
|
|
query = input("Enter a set: ")
|
|
|
|
currentSetSize = 0
|
|
lastList = []
|
|
currentList = []
|
|
|
|
while query is not None:
|
|
|
|
#Grab the data
|
|
spoilers = scrython.cards.Search(q="++e:{}".format(query), order='spoiled')
|
|
|
|
#If the total cards has increased
|
|
if spoilers.total_cards() > currentSetSize:
|
|
|
|
#Dump if currentList already exists
|
|
if currentList:
|
|
del currentList[:]
|
|
|
|
#If there aren't enough spoilers we iterate through the whole list.
|
|
#Otherwise we only want the first 15
|
|
if spoilers.total_cards() > 15:
|
|
maxIteration = 15
|
|
else:
|
|
maxIteration = spoilers.total_cards()
|
|
|
|
for i in range(maxIteration):
|
|
currentList.append(spoilers.data()[i]['id'])
|
|
|
|
#Iterate through data
|
|
for card in reversed(spoilers.data()):
|
|
if card['id'] in lastList:
|
|
continue
|
|
print("~~~~~~~~~~\nNew card:")
|
|
|
|
#Grab the relevant keys
|
|
if keyCheck('card_faces', card):
|
|
print(nameBar(card['name'], card['card_faces'][0]['mana_cost']))
|
|
print(typeBar(card['card_faces'][0]['mana_cost']))
|
|
else:
|
|
print(nameBar(card['name'], card['mana_cost']))
|
|
print(typeBar(card['type_line'], card['rarity']))
|
|
|
|
if keyCheck('oracle_text', card):
|
|
print(card['oracle_text'])
|
|
|
|
if keyCheck('power', card) and keyCheck('toughness', card):
|
|
print(powerAndToughness(card['power'], card['toughness']))
|
|
|
|
#Update card count
|
|
currentSetSize = spoilers.total_cards()
|
|
#Dump all in last list
|
|
if lastList:
|
|
del lastList[:]
|
|
#Add the first 15 ids in current list to last list
|
|
for i in range(maxIteration):
|
|
lastList.append(currentList[i])
|
|
|
|
time.sleep(300)
|