tcg/tools.py
2025-04-23 21:29:47 +01:00

1697 lines
71 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import datetime,random,math
from collections import Counter
import colors,log,variables
def dupes(mass=True,nonmass=True,characters=True,specials=True):
dupeslist = []
previouscard = ""
for card in colors.cardlist:
try:
if card["colour"] != "sig" and card ["colour"] != "limited":
if card["name"] == previouscard["name"]:
dupe = {}
dupe["name"] = card["name"]
if len(card["mass"]) > 0:
if mass:
dupe["mass"] = card["mass"]
if card["colour"] == "special":
if specials:
dupeslist.append(dupe)
else:
if characters:
dupeslist.append(dupe)
else:
if nonmass:
if card["colour"] == "special":
if specials:
dupeslist.append(dupe)
else:
if characters:
dupeslist.append(dupe)
except:
pass
previouscard = card
return dupeslist
def activitydupes():
print(dupes(False,True,True,False))
def riku():
print("Specials")
print(dupes(True,False,False,True))
print("Characters")
print(dupes(True,False,True,False))
def nextportfolio(monochrome=False):
goodtogo = True
useddecks = {}
already = 0
if monochrome:
for portfolio in colors.portfolios:
if portfolio["type"] == "monochrome":
already += 1
useddecks.update(portfolio["decks"])
else:
for portfolio in colors.portfolios:
if portfolio["type"] == "palette":
already += 1
useddecks.update(portfolio["decks"])
potentials = []
for deck in colors.decklist:
if deck["mastered"]:
if deck["colour"] != "special" and deck["colour"] != "limited":
potential = True
for key, value in useddecks.items():
if deck["name"] == key.replace(" ",""):
potential = False
if potential:
potentials.append(deck)
potentials = sorted(potentials, key=lambda d: d["mastered"])
if monochrome:
reddecks = []
orangedecks = []
yellowdecks = []
greendecks = []
bluedecks = []
purpledecks = []
browndecks = []
greydecks = []
for deck in potentials:
if deck["colour"] == "red":
reddecks.append(deck)
elif deck["colour"] == "orange":
orangedecks.append(deck)
elif deck["colour"] == "yellow":
yellowdecks.append(deck)
elif deck["colour"] == "green":
greendecks.append(deck)
elif deck["colour"] == "blue":
bluedecks.append(deck)
elif deck["colour"] == "purple":
purpledecks.append(deck)
elif deck["colour"] == "brown":
browndecks.append(deck)
elif deck["colour"] == "gray":
greydecks.append(deck)
longestvalue = len(reddecks)
nextportcolour = "red"
if len(orangedecks) > longestvalue:
nextportcolour = "orange"
if len(yellowdecks) > longestvalue:
nextportcolour = "yellow"
if len(greendecks) > longestvalue:
nextportcolour = "green"
if len(bluedecks) > longestvalue:
nextportcolour = "blue"
if len(purpledecks) > longestvalue:
nextportcolour = "purple"
if len(browndecks) > longestvalue:
nextportcolour = "brown"
if len(greydecks) > longestvalue:
nextportcolour = "grey"
firstthree = []
if nextportcolour == "red":
try:
firstthree.append(reddecks[0]["name"])
firstthree.append(reddecks[1]["name"])
firstthree.append(reddecks[2]["name"])
except:
goodtogo = False
elif nextportcolour == "orange":
try:
firstthree.append(orangedecks[0]["name"])
firstthree.append(orangedecks[1]["name"])
firstthree.append(orangedecks[2]["name"])
except:
goodtogo = False
elif nextportcolour == "yellow":
try:
firstthree.append(yellowdecks[0]["name"])
firstthree.append(yellowdecks[1]["name"])
firstthree.append(yellowdecks[2]["name"])
except:
goodtogo = False
elif nextportcolour == "green":
try:
firstthree.append(greendecks[0]["name"])
firstthree.append(greendecks[1]["name"])
firstthree.append(greendecks[2]["name"])
except:
goodtogo = False
elif nextportcolour == "blue":
try:
firstthree.append(bluedecks[0]["name"])
firstthree.append(bluedecks[1]["name"])
firstthree.append(bluedecks[2]["name"])
except:
goodtogo = False
elif nextportcolour == "purple":
try:
firstthree.append(purpledecks[0]["name"])
firstthree.append(purpledecks[1]["name"])
firstthree.append(purpledecks[2]["name"])
except:
goodtogo = False
elif nextportcolour == "brown":
try:
firstthree.append(browndecks[0]["name"])
firstthree.append(browndecks[1]["name"])
firstthree.append(browndecks[2]["name"])
except:
goodtogo = False
elif nextportcolour == "grey":
try:
firstthree.append(greydecks[0]["name"])
firstthree.append(greydecks[1]["name"])
firstthree.append(greydecks[2]["name"])
except:
goodtogo = False
if goodtogo:
secondfive = []
nearingdecks = sorted(colors.decklist, key=lambda d: d["count"],reverse=True)
slots = 5
for deck in nearingdecks:
if slots > 0:
try:
if not deck["mastered"]:
if nextportcolour == "grey":
if deck["colour"] == "gray":
secondfive.append(deck["name"])
slots -= 1
else:
if deck["colour"] == nextportcolour:
secondfive.append(deck["name"])
slots -= 1
except:
goodtogo = False
if goodtogo:
alleight = sorted(firstthree + secondfive)
else:
thereddeck = False
redmastered = False
theorangedeck = False
orangemastered = False
theyellowdeck = False
yellowmastered = False
thegreendeck = False
greenmastered = False
thebluedeck = False
bluemastered = False
thepurpledeck = False
purplemastered = False
thebrowndeck = False
brownmastered = False
thegreydeck = False
greymastered = False
sorteddecks = 0
for deck in potentials:
if sorteddecks < 3:
if deck["colour"] == "red" and thereddeck == False:
thereddeck = deck["name"]
redmastered = True
sorteddecks += 1
elif deck["colour"] == "orange" and theorangedeck == False:
theorangedeck = deck["name"]
orangemastered = True
sorteddecks += 1
elif deck["colour"] == "yellow" and theyellowdeck == False:
theyellowdeck = deck["name"]
yellowmastered = True
sorteddecks += 1
elif deck["colour"] == "green" and thegreendeck == False:
thegreendeck = deck["name"]
greenmastered = True
sorteddecks += 1
elif deck["colour"] == "blue" and thebluedeck == False:
thebluedeck = deck["name"]
bluemastered = True
sorteddecks += 1
elif deck["colour"] == "purple" and thepurpledeck == False:
thepurpledeck = deck["name"]
purplemastered = True
sorteddecks += 1
elif deck["colour"] == "brown" and thebrowndeck == False:
thebrowndeck = deck["name"]
brownmastered = True
sorteddecks += 1
elif deck["colour"] == "gray" and thegreydeck == False:
thegreydeck = deck["name"]
greymastered = True
sorteddecks += 1
nearingdecks = sorted(colors.decklist, key=lambda d: d["count"],reverse=True)
if thereddeck == False:
for deck in nearingdecks:
if not deck["mastered"]:
if thereddeck == False:
if deck["colour"] == "red":
used = False
for key, value in useddecks.items():
if deck["name"] == key.replace(" ",""):
used = True
if used == False:
thereddeck = deck["name"]
if theorangedeck == False:
for deck in nearingdecks:
if not deck["mastered"]:
if theorangedeck == False:
if deck["colour"] == "orange":
used = False
for key, value in useddecks.items():
if deck["name"] == key.replace(" ",""):
used = True
if used == False:
theorangedeck = deck["name"]
if theyellowdeck == False:
for deck in nearingdecks:
if not deck["mastered"]:
if theyellowdeck == False:
if deck["colour"] == "yellow":
used = False
for key, value in useddecks.items():
if deck["name"] == key.replace(" ",""):
used = True
if used == False:
theyellowdeck = deck["name"]
if thegreendeck == False:
for deck in nearingdecks:
if not deck["mastered"]:
if thegreendeck == False:
if deck["colour"] == "green":
used = False
for key, value in useddecks.items():
if deck["name"] == key.replace(" ",""):
used = True
if used == False:
thegreendeck = deck["name"]
if thebluedeck == False:
for deck in nearingdecks:
if not deck["mastered"]:
if thebluedeck == False:
if deck["colour"] == "blue":
used = False
for key, value in useddecks.items():
if deck["name"] == key.replace(" ",""):
used = True
if used == False:
thebluedeck = deck["name"]
if thepurpledeck == False:
for deck in nearingdecks:
if not deck["mastered"]:
if thepurpledeck == False:
if deck["colour"] == "purple":
used = False
for key, value in useddecks.items():
if deck["name"] == key.replace(" ",""):
used = True
if used == False:
thepurpledeck = deck["name"]
if thebrowndeck == False:
for deck in nearingdecks:
if not deck["mastered"]:
if thebrowndeck == False:
if deck["colour"] == "brown":
used = False
for key, value in useddecks.items():
if deck["name"] == key.replace(" ",""):
used = True
if used == False:
thebrowndeck = deck["name"]
if thegreydeck == False:
for deck in nearingdecks:
if not deck["mastered"]:
if thegreydeck == False:
if deck["colour"] == "gray":
used = False
for key, value in useddecks.items():
if deck["name"] == key.replace(" ",""):
used = True
if used == False:
thegreydeck = deck["name"]
alleight = []
alleight.append(thereddeck)
alleight.append(theorangedeck)
alleight.append(theyellowdeck)
alleight.append(thegreendeck)
alleight.append(thebluedeck)
alleight.append(thepurpledeck)
alleight.append(thebrowndeck)
alleight.append(thegreydeck)
if goodtogo:
portcomment = "♥ <b>Your Name:</b> " + variables.name + "\n♥ <b>Card post:</b> " + variables.url + "\n♥ <b>"
if monochrome:
portcomment += "Monochrome"
else:
portcomment += "Palette"
portcomment += " Portfolio #:</b> " + str(already + 1) + "\n"
if monochrome:
portcomment += "♥ <b>Monochrome Color:</b> "
if nextportcolour == "grey":
if variables.british:
portcomment += "grey"
else:
portcomment += "gray"
else:
portcomment += nextportcolour
portcomment += "\n♥ <b>1st deck:</b> " + alleight[0]
if alleight[0] in firstthree:
portcomment += " (mastered)"
portcomment += "\n♥ <b>2nd deck:</b> " + alleight[1]
if alleight[1] in firstthree:
portcomment += " (mastered)"
portcomment += "\n♥ <b>3rd deck:</b> " + alleight[2]
if alleight[2] in firstthree:
portcomment += " (mastered)"
portcomment += "\n♥ <b>4th deck:</b> " + alleight[3]
if alleight[3] in firstthree:
portcomment += " (mastered)"
portcomment += "\n♥ <b>5th deck:</b> " + alleight[4]
if alleight[4] in firstthree:
portcomment += " (mastered)"
portcomment += "\n♥ <b>6th deck:</b> " + alleight[5]
if alleight[5] in firstthree:
portcomment += " (mastered)"
portcomment += "\n♥ <b>7th deck:</b> " + alleight[6]
if alleight[6] in firstthree:
portcomment += " (mastered)"
portcomment += "\n♥ <b>8th deck:</b> " + alleight[7]
if alleight[7] in firstthree:
portcomment += " (mastered)"
else:
try:
portcomment += "♥ <b>Red deck:</b> " + thereddeck
if redmastered:
portcomment += " (mastered)"
portcomment += "\n♥ <b>Orange deck:</b> " + theorangedeck
if orangemastered:
portcomment += " (mastered)"
portcomment += "\n♥ <b>Yellow deck:</b> " + theyellowdeck
if yellowmastered:
portcomment += " (mastered)"
portcomment += "\n♥ <b>Green deck:</b> " + thegreendeck
if greenmastered:
portcomment += " (mastered)"
portcomment += "\n♥ <b>Blue deck:</b> " + thebluedeck
if bluemastered:
portcomment += " (mastered)"
portcomment += "\n♥ <b>Purple deck:</b> " + thepurpledeck
if purplemastered:
portcomment += " (mastered)"
portcomment += "\n♥ <b>Brown deck:</b> " + thebrowndeck
if brownmastered:
portcomment += " (mastered)"
portcomment += "\n♥ <b>Gray deck:</b> " + thegreydeck
if greymastered:
portcomment += " (mastered)"
except:
goodtogo = False
if goodtogo:
print(portcomment)
porturl = input("\nPaste the comment URL here: ")
print("\n{\"event\":\"portfolio\",\"date\":datetime.datetime(" + datetime.datetime.now().strftime("%Y,%-m,%-d") + "),\"url\":\"" + porturl + "\",\"decks\":[\"" + alleight[0] + "\",\"" + alleight[1] + "\",\"" + alleight[2] + "\",\"" + alleight[3] + "\",\"" + alleight[4] + "\",\"" + alleight[5] + "\",\"" + alleight[6] + "\",\"" + alleight[7] + "\"]}")
else:
print("Master some more decks first")
def switchit():
wantedbypriority = sorted(colors.wantedlist, key=lambda d: d["priority"])
redtrade = []
orangetrade = []
yellowtrade = []
greentrade = []
bluetrade = []
purpletrade = []
browntrade = []
greytrade = []
for card in colors.cardlist:
if card["priority"] == 4:
if card["colour"] == "red":
redtrade.append(card["name"])
elif card["colour"] == "orange":
orangetrade.append(card["name"])
elif card["colour"] == "yellow":
yellowtrade.append(card["name"])
elif card["colour"] == "green":
greentrade.append(card["name"])
elif card["colour"] == "blue":
bluetrade.append(card["name"])
elif card["colour"] == "purple":
purpletrade.append(card["name"])
elif card["colour"] == "brown":
browntrade.append(card["name"])
elif card["colour"] == "gray":
greytrade.append(card["name"])
wantednames = []
for card in wantedbypriority:
wantednames.append(card["name"])
wantall = []
tradeall = []
reds = input("Paste red pile here: ").split(", ")
oranges = input("Paste orange pile here: ").split(", ")
yellows = input("Paste yellow pile here: ").split(", ")
greens = input("Paste green pile here: ").split(", ")
blues = input("Paste blue pile here: ").split(", ")
purples = input("Paste purple pile here: ").split(", ")
browns = input("Paste brown pile here: ").split(", ")
greys = input("Paste grey pile here: ").split(", ")
chaos = input("Paste chaos pile here: ").split(", ")
taken = input("Cards to remove: ").split(", ")
for card in taken:
if card in reds:
reds.remove(card)
elif card in oranges:
oranges.remove(card)
elif card in yellows:
yellows.remove(card)
elif card in greens:
greens.remove(card)
elif card in blues:
blues.remove(card)
elif card in purples:
purples.remove(card)
elif card in browns:
browns.remove(card)
elif card in greys:
greys.remove(card)
elif card in chaos:
chaos.remove(card)
wantreds = []
for card in reds:
if card in wantednames:
wantreds.append(card)
if len(wantreds) > 5:
wantreds = wantreds[:5]
if len(wantreds) > len(redtrade):
wantreds = wantreds[:len(redtrade)]
if len(wantreds) > 0:
wantall.extend(wantreds)
traderedscount = len(wantreds)
tradereds = []
tradereds.extend(random.sample(redtrade,len(wantreds)))
tradeall.extend(tradereds)
wantoranges = []
for card in oranges:
if card in wantednames:
wantoranges.append(card)
if len(wantoranges) > 5:
wantoranges = wantoranges[:5]
if len(wantoranges) > len(orangetrade):
wantoranges = wantoranges[:len(orangetrade)]
if len(wantoranges) > 0:
wantall.extend(wantoranges)
tradeorangescount = len(wantoranges)
tradeoranges = []
tradeoranges.extend(random.sample(orangetrade,len(wantoranges)))
tradeall.extend(tradeoranges)
wantyellows = []
for card in yellows:
if card in wantednames:
wantyellows.append(card)
if len(wantyellows) > 5:
wantyellows = wantyellows[:5]
if len(wantyellows) > len(yellowtrade):
wantyellows = wantyellows[:len(yellowtrade)]
if len(wantyellows) > 0:
wantall.extend(wantyellows)
tradeyellowscount = len(wantyellows)
tradeyellows = []
tradeyellows.extend(random.sample(yellowtrade,len(wantyellows)))
tradeall.extend(tradeyellows)
wantgreens = []
for card in greens:
if card in wantednames:
wantgreens.append(card)
if len(wantgreens) > 5:
wantgreens = wantgreens[:5]
if len(wantgreens) > len(greentrade):
wantgreens = wantgreens[:len(greentrade)]
if len(wantgreens) > 0:
wantall.extend(wantgreens)
tradegreenscount = len(wantgreens)
tradegreens = []
tradegreens.extend(random.sample(greentrade,len(wantgreens)))
tradeall.extend(tradegreens)
wantblues = []
for card in blues:
if card in wantednames:
wantblues.append(card)
if len(wantblues) > 5:
wantblues = wantblues[:5]
if len(wantblues) > len(bluetrade):
wantblues = wantblues[:len(bluetrade)]
if len(wantblues) > 0:
wantall.extend(wantblues)
tradebluescount = len(wantblues)
tradeblues = []
tradeblues.extend(random.sample(bluetrade,len(wantblues)))
tradeall.extend(tradeblues)
wantpurples = []
for card in purples:
if card in wantednames:
wantpurples.append(card)
if len(wantpurples) > 5:
wantpurples = wantpurples[:5]
if len(wantpurples) > len(purpletrade):
wantpurples = wantpurples[:len(purpletrade)]
if len(wantpurples) > 0:
wantall.extend(wantpurples)
tradepurplescount = len(wantpurples)
tradepurples = []
tradepurples.extend(random.sample(purpletrade,len(wantpurples)))
tradeall.extend(tradepurples)
wantbrowns = []
for card in browns:
if card in wantednames:
wantbrowns.append(card)
if len(wantbrowns) > 5:
wantbrowns = wantbrowns[:5]
if len(wantbrowns) > len(browntrade):
wantbrowns = wantbrowns[:len(browntrade)]
if len(wantbrowns) > 0:
wantall.extend(wantbrowns)
tradebrownscount = len(wantbrowns)
tradebrowns = []
tradebrowns.extend(random.sample(browntrade,len(wantbrowns)))
tradeall.extend(tradebrowns)
wantgreys = []
for card in greys:
if card in wantednames:
wantgreys.append(card)
if len(wantgreys) > 5:
wantgreys = wantgreys[:5]
if len(wantgreys) > len(greytrade):
wantgreys = wantgreys[:len(greytrade)]
if len(wantgreys) > 0:
wantall.extend(wantgreys)
tradegreyscount = len(wantgreys)
tradegreys = []
tradegreys.extend(random.sample(greytrade,len(wantgreys)))
tradeall.extend(tradegreys)
wantchaos = []
for card in chaos:
if card in wantednames:
wantchaos.append(card)
if len(wantchaos) > 5:
wantchaos = wantchaos[:5]
if len(wantchaos) > 0:
wantall.extend(wantchaos)
tradechaos = input("Provide " + str(len(wantchaos)) + " cards for the chaos pile (for " + ", ".join(wantchaos) + "): ").split(", ")
tradeall.extend(tradechaos)
print("\n")
if len(tradeall) > 0:
if len(wantreds) > 0:
print("red: " + ", ".join(tradereds) + " for " + ", ".join(wantreds))
if len(wantoranges) > 0:
print("orange: " + ", ".join(tradeoranges) + " for " + ", ".join(wantoranges))
if len(wantyellows) > 0:
print("yellow: " + ", ".join(tradeyellows) + " for " + ", ".join(wantyellows))
if len(wantgreens) > 0:
print("green: " + ", ".join(tradegreens) + " for " + ", ".join(wantgreens))
if len(wantblues) > 0:
print("blue: " + ", ".join(tradeblues) + " for " + ", ".join(wantblues))
if len(wantpurples) > 0:
print("purple: " + ", ".join(tradepurples) + " for " + ", ".join(wantpurples))
if len(wantbrowns) > 0:
print("brown: " + ", ".join(tradebrowns) + " for " + ", ".join(wantbrowns))
if len(wantgreys) > 0:
if variables.british:
print("grey: " + ", ".join(tradegreys) + " for " + ", ".join(wantgreys))
else:
print("gray: " + ", ".join(tradegreys) + " for " + ", ".join(wantgreys))
if len(wantchaos) > 0:
print("chaos: " + ", ".join(tradechaos) + " for " + ", ".join(wantchaos))
images = ""
for card in tradeall:
images += "<img src=\"https://colors-tcg.eu/cards/" + card + ".gif\">"
print("\n" + images + "\n")
switchround = input("Round number: ")
switchcomment = input("Comment URL: ")
print("\n{\"event\":\"switch it up " + switchround + "\",\"date\":datetime.datetime(" + datetime.datetime.now().strftime("%Y,%-m,%-d") + "),\"url\":\"" + switchcomment + "\",\"pend\":[\"" + "\",\"".join(wantall) + "\"],\"lost\":[\"" + "\",\"".join(tradeall) + "\"]}")
else:
print("No cards found")
def fish():
fishdecks = input("Paste list of decks here: ").split(", ")
fishfound = []
for card in colors.cardlist:
for deck in fishdecks:
if card["name"][:-2] == deck:
fishfound.append(card)
break
fishrefined = []
previouscard = ""
for card in fishfound:
try:
if card["name"][:-2] != previouscard["name"][:-2]:
fishrefined.append(card)
except:
fishrefined.append(card)
previouscard = card
fishmastered = []
fishhp = []
fishmp = []
fishlp = []
fishmass = []
fishtrade = []
for card in fishrefined:
if card["priority"] == 1:
for deck in colors.decklist:
if deck["name"] == card["name"][:-2]:
if deck["mastered"]:
fishmastered.append(card)
else:
fishhp.append(card)
elif card["priority"] == 2:
if card["mass"]:
for deck in colors.decklist:
if deck["name"] == card["name"][:-2]:
if deck["mass"]:
fishmp.append(card)
else:
fishmass.append(card)
else:
fishmp.append(card)
elif card["priority"] == 3:
fishlp.append(card)
else:
fishtrade.append(card)
locations = []
if len(fishmastered) > 0:
locations.append("mastered")
if len(fishhp) > 0:
locations.append("collecting/high priority")
if len(fishmp) > 0:
locations.append("collecting/medium priority")
if len(fishlp) > 0:
locations.append("collecting/low priority")
if len(fishmass) > 0:
for card in fishmass:
locations.append("mass collecting/" + card["mass"][0])
if len(fishtrade) > 0:
locations.append("trading")
locations = list(dict.fromkeys(locations))
cardnames = []
for card in fishrefined:
cardnames.append(card["name"])
if len(fishrefined) > 0:
print("\nTrade post: " + variables.url + "\nNumber of matches: " + str(len(fishrefined)) + "\nCard name(s): " + ", ".join(cardnames) + "\nWhere cards are located: " + ", ".join(locations) + "\nCards:")
images = ""
for card in fishrefined:
images += "<img src=\"https://colors-tcg.eu/cards/" + card["name"] + ".gif\">"
print(images)
else:
print("No cards found")
def studio():
tradedupes = []
tradedupesreserve = []
tradenormal = []
tradespecial = []
for card in colors.cardlist:
if card["priority"] == 4:
if card["colour"] != "sig" and card["colour"] != "limited":
if card["dupe"]:
if len(card["mass"]) == 0:
tradedupes.append(card["name"])
else:
tradedupesreserve.append(card["name"])
else:
if card["colour"] == "special":
tradespecial.append(card["name"])
else:
tradenormal.append(card["name"])
dupeslimit = 10
newlimit = 20
sigslimit = 10
choicelimit = 16
speciallimit = 10
for event in log.log:
if event["date"].year == datetime.datetime.now().year and event["date"].month == datetime.datetime.now().month:
if event["event"] == "art studio":
try:
dupeslimit -= event["exchange"]["dupes"]
except:
pass
try:
newlimit -= event["exchange"]["new"]
except:
pass
try:
sigslimit -= event["exchange"]["sigs"]
except:
pass
try:
choicelimit -= event["exchange"]["choice"]
except:
pass
try:
speciallimit -= event["exchange"]["special"]
except:
pass
dupesalready = dupeslimit
newalready = newlimit
sigsalready = sigslimit
choicealready = choicelimit
specialalready = speciallimit
if dupeslimit > len(tradedupes):
tradedupes.extend(tradedupesreserve)
if dupeslimit > len(tradedupes):
dupeslimit = len(tradedupes)
if dupeslimit > 0:
dupeswant = int(input("How many randoms for doubles? (" + str(dupeslimit) + " remaining) "))
else:
dupeswant = 0
if newlimit * 2 > len(tradenormal):
newlimit = math.floor(len(tradenormal)/2)
if newlimit > 0:
newwant = int(input("How many new release cards? (" + str(newlimit) + " remaining) "))
else:
newwant = 0
if sigslimit * 3 + newwant * 2 > len(tradenormal):
sigslimit = math.floor((len(tradenormal) - (newwant * 2))/3)
if sigslimit > 0:
sigswant = int(input("How many signatures? (" + str(sigslimit) + " remaining) "))
else:
sigswant = 0
if choicelimit * 3 + sigswant * 3 + newwant * 2 > len(tradenormal):
choicelimit = math.floor((len(tradenormal) - ((newwant * 2) + (sigswant * 3)))/3)
if choicelimit > 0:
choicewant = int(input("How many choice character cards? (" + str(choicelimit) + " remaining) "))
else:
choicewant = 0
if speciallimit * 3 > len(tradespecial):
speciallimit = math.floor(len(tradespecial)/3)
if speciallimit > 0:
specialwant = int(input("How many choice special cards? (" + str(speciallimit) + " remaining) "))
else:
specialwant = 0
neededdupes = dupeswant
needednormal = 2 * newwant + 3 * sigswant + 3 * choicewant
neededspecial = 3 * specialwant
give = []
if neededdupes > 0:
give.extend(random.sample(tradedupes,neededdupes))
if needednormal > 0:
give.extend(random.sample(tradenormal,needednormal))
if neededspecial > 0:
give.extend(random.sample(tradespecial,neededspecial))
if choicewant > 0:
choicelist = input(str(choicewant) + " choice character cards: ").split(", ")
if specialwant > 0:
speciallist = input(str(specialwant) + " choice special cards: ").split(", ")
allwants = []
if dupeswant > 1:
allwants.append(str(dupeswant) + " random cards")
elif dupeswant == 1:
allwants.append(str(dupeswant) + " random card")
if newwant > 1:
allwants.append(str(newwant) + " new release cards")
elif newwant == 1:
allwants.append(str(newwant) + " new release card")
if sigswant > 0:
allwants.append(str(sigswant) + " x sig_" + variables.name.lower())
if choicewant > 0:
allwants.extend(choicelist)
if specialwant > 0:
allwants.extend(speciallist)
if len(allwants) > 0:
print("\n<b>What are you exchanging for?</b>: " + ", ".join(allwants) + "\n<b>Cards you are exchanging</b>:\n<img src=\"https://colors-tcg.eu/cards/" + ".gif\"><img src=\"https://colors-tcg.eu/cards/".join(give) + ".gif\">\n<b>Card names</b>: " + ", ".join(give) + "\n<b>Art Studio use for the current month</b>: random cards: " + str(10 - dupesalready + dupeswant) + "/10; new release cards: " + str(20 - newalready + newwant) + "/20; signatures: " + str(10 - sigsalready + sigswant) + "/10; character cards: " + str(16 - choicealready + choicewant) + "/16; special cards: " + str(10 - specialalready + specialwant) + "/10\n")
studiourl = input("Paste in comment URL: ")
studiostring = "{\"event\":\"art studio\",\"date\":datetime.datetime(" + datetime.datetime.now().strftime("%Y,%-m,%-d") + "),\"url\":\"" + studiourl + "\",\"lost\":[\"" + "\",\"".join(give) + "\"],"
allchoice = []
try:
allchoice.extend(choicelist)
except:
pass
try:
allchoice.extend(speciallist)
except:
pass
if len(allchoice) > 0:
studiostring += "\"pend\":[\"" + "\",\"".join(allchoice) + "\"],"
studiostring += "\"exchange\":{\"dupes\":" + str(dupeswant) + ",\"new\":" + str(newwant) + ",\"sigs\":" + str(sigswant) + ",\"choice\":" + str(choicewant) + ",\"special\":" + str(specialwant) + "}}"
print("\n" + studiostring)
else:
print("Nothing requested")
def randoms(specials=False):
totalrandoms = int(input("How many? "))
pool = []
for card in colors.cardlist:
if card["priority"] == 4 and card["dupe"] == False and card["colour"] != "sig" and card["colour"] != "limited":
if specials:
pool.append(card["name"])
else:
if card["colour"] != "special":
pool.append(card["name"])
try:
chosen = sorted(random.sample(pool,totalrandoms))
print(", ".join(chosen))
except ValueError:
print("Too many cards requested")
def artshop():
hpred = []
mpred = []
lpred = []
hporange = []
mporange = []
lporange = []
hpyellow = []
mpyellow = []
lpyellow = []
hpgreen = []
mpgreen = []
lpgreen = []
hpblue = []
mpblue = []
lpblue = []
hppurple = []
mppurple = []
lppurple = []
hpbrown = []
mpbrown = []
lpbrown = []
hpgrey = []
mpgrey = []
lpgrey = []
for deck in colors.decklist:
if not deck["mastered"]:
if deck["colour"] == "red":
if deck["priority"] == 1:
hpred.append(deck)
elif deck["priority"] == 2:
mpred.append(deck)
elif deck["priority"] == 3:
lpred.append(deck)
elif deck["colour"] == "orange":
if deck["priority"] == 1:
hporange.append(deck)
elif deck["priority"] == 2:
mporange.append(deck)
elif deck["priority"] == 3:
lporange.append(deck)
elif deck["colour"] == "yellow":
if deck["priority"] == 1:
hpyellow.append(deck)
elif deck["priority"] == 2:
mpyellow.append(deck)
elif deck["priority"] == 3:
lpyellow.append(deck)
elif deck["colour"] == "green":
if deck["priority"] == 1:
hpgreen.append(deck)
elif deck["priority"] == 2:
mpgreen.append(deck)
elif deck["priority"] == 3:
lpgreen.append(deck)
elif deck["colour"] == "blue":
if deck["priority"] == 1:
hpblue.append(deck)
elif deck["priority"] == 2:
mpblue.append(deck)
elif deck["priority"] == 3:
lpblue.append(deck)
elif deck["colour"] == "purple":
if deck["priority"] == 1:
hppurple.append(deck)
elif deck["priority"] == 2:
mppurple.append(deck)
elif deck["priority"] == 3:
lppurple.append(deck)
elif deck["colour"] == "brown":
if deck["priority"] == 1:
hpbrown.append(deck)
elif deck["priority"] == 2:
mpbrown.append(deck)
elif deck["priority"] == 3:
lpbrown.append(deck)
elif deck["colour"] == "gray":
if deck["priority"] == 1:
hpgrey.append(deck)
elif deck["priority"] == 2:
mpgrey.append(deck)
elif deck["priority"] == 3:
lpgrey.append(deck)
wantred = []
wantred.extend(sorted(hpred, key=lambda d: d["count"],reverse=True))
wantred.extend(sorted(mpred, key=lambda d: d["count"],reverse=True))
wantred.extend(sorted(lpred, key=lambda d: d["count"],reverse=True))
wantorange = []
wantorange.extend(sorted(hporange, key=lambda d: d["count"],reverse=True))
wantorange.extend(sorted(mporange, key=lambda d: d["count"],reverse=True))
wantorange.extend(sorted(lporange, key=lambda d: d["count"],reverse=True))
wantyellow = []
wantyellow.extend(sorted(hpyellow, key=lambda d: d["count"],reverse=True))
wantyellow.extend(sorted(mpyellow, key=lambda d: d["count"],reverse=True))
wantyellow.extend(sorted(lpyellow, key=lambda d: d["count"],reverse=True))
wantgreen = []
wantgreen.extend(sorted(hpgreen, key=lambda d: d["count"],reverse=True))
wantgreen.extend(sorted(mpgreen, key=lambda d: d["count"],reverse=True))
wantgreen.extend(sorted(lpgreen, key=lambda d: d["count"],reverse=True))
wantblue = []
wantblue.extend(sorted(hpblue, key=lambda d: d["count"],reverse=True))
wantblue.extend(sorted(mpblue, key=lambda d: d["count"],reverse=True))
wantblue.extend(sorted(lpblue, key=lambda d: d["count"],reverse=True))
wantpurple = []
wantpurple.extend(sorted(hppurple, key=lambda d: d["count"],reverse=True))
wantpurple.extend(sorted(mppurple, key=lambda d: d["count"],reverse=True))
wantpurple.extend(sorted(lppurple, key=lambda d: d["count"],reverse=True))
wantbrown = []
wantbrown.extend(sorted(hpbrown, key=lambda d: d["count"],reverse=True))
wantbrown.extend(sorted(mpbrown, key=lambda d: d["count"],reverse=True))
wantbrown.extend(sorted(lpbrown, key=lambda d: d["count"],reverse=True))
wantgrey = []
wantgrey.extend(sorted(hpgrey, key=lambda d: d["count"],reverse=True))
wantgrey.extend(sorted(mpgrey, key=lambda d: d["count"],reverse=True))
wantgrey.extend(sorted(lpgrey, key=lambda d: d["count"],reverse=True))
requestcards = []
redleft = colors.crayred
redspend = 0
requestred = True
for deck in wantred:
if requestred == True:
if redleft >= 20 - deck["count"]:
if not deck["01"]:
redspend += 1
requestcards.append(deck["name"] + "01")
if not deck["02"]:
redspend += 1
requestcards.append(deck["name"] + "02")
if not deck["03"]:
redspend += 1
requestcards.append(deck["name"] + "03")
if not deck["04"]:
redspend += 1
requestcards.append(deck["name"] + "04")
if not deck["05"]:
redspend += 1
requestcards.append(deck["name"] + "05")
if not deck["06"]:
redspend += 1
requestcards.append(deck["name"] + "06")
if not deck["07"]:
redspend += 1
requestcards.append(deck["name"] + "07")
if not deck["08"]:
redspend += 1
requestcards.append(deck["name"] + "08")
if not deck["09"]:
redspend += 1
requestcards.append(deck["name"] + "09")
if not deck["10"]:
redspend += 1
requestcards.append(deck["name"] + "10")
if not deck["11"]:
redspend += 1
requestcards.append(deck["name"] + "11")
if not deck["12"]:
redspend += 1
requestcards.append(deck["name"] + "12")
if not deck["13"]:
redspend += 1
requestcards.append(deck["name"] + "13")
if not deck["14"]:
redspend += 1
requestcards.append(deck["name"] + "14")
if not deck["15"]:
redspend += 1
requestcards.append(deck["name"] + "15")
if not deck["16"]:
redspend += 1
requestcards.append(deck["name"] + "16")
if not deck["17"]:
redspend += 1
requestcards.append(deck["name"] + "17")
if not deck["18"]:
redspend += 1
requestcards.append(deck["name"] + "18")
if not deck["19"]:
redspend += 1
requestcards.append(deck["name"] + "19")
if not deck["20"]:
redspend += 1
requestcards.append(deck["name"] + "20")
redleft -= redspend
else:
requestred = False
orangeleft = colors.crayorange
orangespend = 0
requestorange = True
for deck in wantorange:
if requestorange == True:
if orangeleft >= 20 - deck["count"]:
if not deck["01"]:
orangespend += 1
requestcards.append(deck["name"] + "01")
if not deck["02"]:
orangespend += 1
requestcards.append(deck["name"] + "02")
if not deck["03"]:
orangespend += 1
requestcards.append(deck["name"] + "03")
if not deck["04"]:
orangespend += 1
requestcards.append(deck["name"] + "04")
if not deck["05"]:
orangespend += 1
requestcards.append(deck["name"] + "05")
if not deck["06"]:
orangespend += 1
requestcards.append(deck["name"] + "06")
if not deck["07"]:
orangespend += 1
requestcards.append(deck["name"] + "07")
if not deck["08"]:
orangespend += 1
requestcards.append(deck["name"] + "08")
if not deck["09"]:
orangespend += 1
requestcards.append(deck["name"] + "09")
if not deck["10"]:
orangespend += 1
requestcards.append(deck["name"] + "10")
if not deck["11"]:
orangespend += 1
requestcards.append(deck["name"] + "11")
if not deck["12"]:
orangespend += 1
requestcards.append(deck["name"] + "12")
if not deck["13"]:
orangespend += 1
requestcards.append(deck["name"] + "13")
if not deck["14"]:
orangespend += 1
requestcards.append(deck["name"] + "14")
if not deck["15"]:
orangespend += 1
requestcards.append(deck["name"] + "15")
if not deck["16"]:
orangespend += 1
requestcards.append(deck["name"] + "16")
if not deck["17"]:
orangespend += 1
requestcards.append(deck["name"] + "17")
if not deck["18"]:
orangespend += 1
requestcards.append(deck["name"] + "18")
if not deck["19"]:
orangespend += 1
requestcards.append(deck["name"] + "19")
if not deck["20"]:
orangespend += 1
requestcards.append(deck["name"] + "20")
orangeleft -= orangespend
else:
requestorange = False
yellowleft = colors.crayyellow
yellowspend = 0
requestyellow = True
for deck in wantyellow:
if requestyellow == True:
if yellowleft >= 20 - deck["count"]:
if not deck["01"]:
yellowspend += 1
requestcards.append(deck["name"] + "01")
if not deck["02"]:
yellowspend += 1
requestcards.append(deck["name"] + "02")
if not deck["03"]:
yellowspend += 1
requestcards.append(deck["name"] + "03")
if not deck["04"]:
yellowspend += 1
requestcards.append(deck["name"] + "04")
if not deck["05"]:
yellowspend += 1
requestcards.append(deck["name"] + "05")
if not deck["06"]:
yellowspend += 1
requestcards.append(deck["name"] + "06")
if not deck["07"]:
yellowspend += 1
requestcards.append(deck["name"] + "07")
if not deck["08"]:
yellowspend += 1
requestcards.append(deck["name"] + "08")
if not deck["09"]:
yellowspend += 1
requestcards.append(deck["name"] + "09")
if not deck["10"]:
yellowspend += 1
requestcards.append(deck["name"] + "10")
if not deck["11"]:
yellowspend += 1
requestcards.append(deck["name"] + "11")
if not deck["12"]:
yellowspend += 1
requestcards.append(deck["name"] + "12")
if not deck["13"]:
yellowspend += 1
requestcards.append(deck["name"] + "13")
if not deck["14"]:
yellowspend += 1
requestcards.append(deck["name"] + "14")
if not deck["15"]:
yellowspend += 1
requestcards.append(deck["name"] + "15")
if not deck["16"]:
yellowspend += 1
requestcards.append(deck["name"] + "16")
if not deck["17"]:
yellowspend += 1
requestcards.append(deck["name"] + "17")
if not deck["18"]:
yellowspend += 1
requestcards.append(deck["name"] + "18")
if not deck["19"]:
yellowspend += 1
requestcards.append(deck["name"] + "19")
if not deck["20"]:
yellowspend += 1
requestcards.append(deck["name"] + "20")
yellowleft -= yellowspend
else:
requestyellow = False
greenleft = colors.craygreen
greenspend = 0
requestgreen = True
for deck in wantgreen:
if requestgreen == True:
if greenleft >= 20 - deck["count"]:
if not deck["01"]:
greenspend += 1
requestcards.append(deck["name"] + "01")
if not deck["02"]:
greenspend += 1
requestcards.append(deck["name"] + "02")
if not deck["03"]:
greenspend += 1
requestcards.append(deck["name"] + "03")
if not deck["04"]:
greenspend += 1
requestcards.append(deck["name"] + "04")
if not deck["05"]:
greenspend += 1
requestcards.append(deck["name"] + "05")
if not deck["06"]:
greenspend += 1
requestcards.append(deck["name"] + "06")
if not deck["07"]:
greenspend += 1
requestcards.append(deck["name"] + "07")
if not deck["08"]:
greenspend += 1
requestcards.append(deck["name"] + "08")
if not deck["09"]:
greenspend += 1
requestcards.append(deck["name"] + "09")
if not deck["10"]:
greenspend += 1
requestcards.append(deck["name"] + "10")
if not deck["11"]:
greenspend += 1
requestcards.append(deck["name"] + "11")
if not deck["12"]:
greenspend += 1
requestcards.append(deck["name"] + "12")
if not deck["13"]:
greenspend += 1
requestcards.append(deck["name"] + "13")
if not deck["14"]:
greenspend += 1
requestcards.append(deck["name"] + "14")
if not deck["15"]:
greenspend += 1
requestcards.append(deck["name"] + "15")
if not deck["16"]:
greenspend += 1
requestcards.append(deck["name"] + "16")
if not deck["17"]:
greenspend += 1
requestcards.append(deck["name"] + "17")
if not deck["18"]:
greenspend += 1
requestcards.append(deck["name"] + "18")
if not deck["19"]:
greenspend += 1
requestcards.append(deck["name"] + "19")
if not deck["20"]:
greenspend += 1
requestcards.append(deck["name"] + "20")
greenleft -= greenspend
else:
requestgreen = False
blueleft = colors.crayblue
bluespend = 0
requestblue = True
for deck in wantblue:
if requestblue == True:
if blueleft >= 20 - deck["count"]:
if not deck["01"]:
bluespend += 1
requestcards.append(deck["name"] + "01")
if not deck["02"]:
bluespend += 1
requestcards.append(deck["name"] + "02")
if not deck["03"]:
bluespend += 1
requestcards.append(deck["name"] + "03")
if not deck["04"]:
bluespend += 1
requestcards.append(deck["name"] + "04")
if not deck["05"]:
bluespend += 1
requestcards.append(deck["name"] + "05")
if not deck["06"]:
bluespend += 1
requestcards.append(deck["name"] + "06")
if not deck["07"]:
bluespend += 1
requestcards.append(deck["name"] + "07")
if not deck["08"]:
bluespend += 1
requestcards.append(deck["name"] + "08")
if not deck["09"]:
bluespend += 1
requestcards.append(deck["name"] + "09")
if not deck["10"]:
bluespend += 1
requestcards.append(deck["name"] + "10")
if not deck["11"]:
bluespend += 1
requestcards.append(deck["name"] + "11")
if not deck["12"]:
bluespend += 1
requestcards.append(deck["name"] + "12")
if not deck["13"]:
bluespend += 1
requestcards.append(deck["name"] + "13")
if not deck["14"]:
bluespend += 1
requestcards.append(deck["name"] + "14")
if not deck["15"]:
bluespend += 1
requestcards.append(deck["name"] + "15")
if not deck["16"]:
bluespend += 1
requestcards.append(deck["name"] + "16")
if not deck["17"]:
bluespend += 1
requestcards.append(deck["name"] + "17")
if not deck["18"]:
bluespend += 1
requestcards.append(deck["name"] + "18")
if not deck["19"]:
bluespend += 1
requestcards.append(deck["name"] + "19")
if not deck["20"]:
bluespend += 1
requestcards.append(deck["name"] + "20")
blueleft -= bluespend
else:
requestblue = False
purpleleft = colors.craypurple
purplespend = 0
requestpurple = True
for deck in wantpurple:
if requestpurple == True:
if purpleleft >= 20 - deck["count"]:
if not deck["01"]:
purplespend += 1
requestcards.append(deck["name"] + "01")
if not deck["02"]:
purplespend += 1
requestcards.append(deck["name"] + "02")
if not deck["03"]:
purplespend += 1
requestcards.append(deck["name"] + "03")
if not deck["04"]:
purplespend += 1
requestcards.append(deck["name"] + "04")
if not deck["05"]:
purplespend += 1
requestcards.append(deck["name"] + "05")
if not deck["06"]:
purplespend += 1
requestcards.append(deck["name"] + "06")
if not deck["07"]:
purplespend += 1
requestcards.append(deck["name"] + "07")
if not deck["08"]:
purplespend += 1
requestcards.append(deck["name"] + "08")
if not deck["09"]:
purplespend += 1
requestcards.append(deck["name"] + "09")
if not deck["10"]:
purplespend += 1
requestcards.append(deck["name"] + "10")
if not deck["11"]:
purplespend += 1
requestcards.append(deck["name"] + "11")
if not deck["12"]:
purplespend += 1
requestcards.append(deck["name"] + "12")
if not deck["13"]:
purplespend += 1
requestcards.append(deck["name"] + "13")
if not deck["14"]:
purplespend += 1
requestcards.append(deck["name"] + "14")
if not deck["15"]:
purplespend += 1
requestcards.append(deck["name"] + "15")
if not deck["16"]:
purplespend += 1
requestcards.append(deck["name"] + "16")
if not deck["17"]:
purplespend += 1
requestcards.append(deck["name"] + "17")
if not deck["18"]:
purplespend += 1
requestcards.append(deck["name"] + "18")
if not deck["19"]:
purplespend += 1
requestcards.append(deck["name"] + "19")
if not deck["20"]:
purplespend += 1
requestcards.append(deck["name"] + "20")
purpleleft -= purplespend
else:
requestpurple = False
brownleft = colors.craybrown
brownspend = 0
requestbrown = True
for deck in wantbrown:
if requestbrown == True:
if brownleft >= 20 - deck["count"]:
if not deck["01"]:
brownspend += 1
requestcards.append(deck["name"] + "01")
if not deck["02"]:
brownspend += 1
requestcards.append(deck["name"] + "02")
if not deck["03"]:
brownspend += 1
requestcards.append(deck["name"] + "03")
if not deck["04"]:
brownspend += 1
requestcards.append(deck["name"] + "04")
if not deck["05"]:
brownspend += 1
requestcards.append(deck["name"] + "05")
if not deck["06"]:
brownspend += 1
requestcards.append(deck["name"] + "06")
if not deck["07"]:
brownspend += 1
requestcards.append(deck["name"] + "07")
if not deck["08"]:
brownspend += 1
requestcards.append(deck["name"] + "08")
if not deck["09"]:
brownspend += 1
requestcards.append(deck["name"] + "09")
if not deck["10"]:
brownspend += 1
requestcards.append(deck["name"] + "10")
if not deck["11"]:
brownspend += 1
requestcards.append(deck["name"] + "11")
if not deck["12"]:
brownspend += 1
requestcards.append(deck["name"] + "12")
if not deck["13"]:
brownspend += 1
requestcards.append(deck["name"] + "13")
if not deck["14"]:
brownspend += 1
requestcards.append(deck["name"] + "14")
if not deck["15"]:
brownspend += 1
requestcards.append(deck["name"] + "15")
if not deck["16"]:
brownspend += 1
requestcards.append(deck["name"] + "16")
if not deck["17"]:
brownspend += 1
requestcards.append(deck["name"] + "17")
if not deck["18"]:
brownspend += 1
requestcards.append(deck["name"] + "18")
if not deck["19"]:
brownspend += 1
requestcards.append(deck["name"] + "19")
if not deck["20"]:
brownspend += 1
requestcards.append(deck["name"] + "20")
brownleft -= brownspend
else:
requestbrown = False
greyleft = colors.craygrey
greyspend = 0
requestgrey = True
for deck in wantgrey:
if requestgrey == True:
if greyleft >= 20 - deck["count"]:
if not deck["01"]:
greyspend += 1
requestcards.append(deck["name"] + "01")
if not deck["02"]:
greyspend += 1
requestcards.append(deck["name"] + "02")
if not deck["03"]:
greyspend += 1
requestcards.append(deck["name"] + "03")
if not deck["04"]:
greyspend += 1
requestcards.append(deck["name"] + "04")
if not deck["05"]:
greyspend += 1
requestcards.append(deck["name"] + "05")
if not deck["06"]:
greyspend += 1
requestcards.append(deck["name"] + "06")
if not deck["07"]:
greyspend += 1
requestcards.append(deck["name"] + "07")
if not deck["08"]:
greyspend += 1
requestcards.append(deck["name"] + "08")
if not deck["09"]:
greyspend += 1
requestcards.append(deck["name"] + "09")
if not deck["10"]:
greyspend += 1
requestcards.append(deck["name"] + "10")
if not deck["11"]:
greyspend += 1
requestcards.append(deck["name"] + "11")
if not deck["12"]:
greyspend += 1
requestcards.append(deck["name"] + "12")
if not deck["13"]:
greyspend += 1
requestcards.append(deck["name"] + "13")
if not deck["14"]:
greyspend += 1
requestcards.append(deck["name"] + "14")
if not deck["15"]:
greyspend += 1
requestcards.append(deck["name"] + "15")
if not deck["16"]:
greyspend += 1
requestcards.append(deck["name"] + "16")
if not deck["17"]:
greyspend += 1
requestcards.append(deck["name"] + "17")
if not deck["18"]:
greyspend += 1
requestcards.append(deck["name"] + "18")
if not deck["19"]:
greyspend += 1
requestcards.append(deck["name"] + "19")
if not deck["20"]:
greyspend += 1
requestcards.append(deck["name"] + "20")
greyleft -= greyspend
else:
requestgrey = False
tradecommon = list((Counter(colors.tradeout) & Counter(colors.tradein)).elements())
sketch = len(tradecommon)
if sketch > 0:
sketchdifference = int(sketch / 20) - colors.redeemedsketch
else:
sketchdifference = 0
if len(requestcards) == 0 and sketchdifference < 1:
print("Nothing to request")
else:
shopstring = "\n<b>Name:</b> " + variables.name + "\n<b>Card Post:</b> " + variables.url + "\n"
if len(requestcards) > 0:
shopstring += "<b>Choice Cards:</b> " + ", ".join(requestcards) + "\n"
if sketchdifference > 0:
shopstring += "<b>Number of Sketchpads:</b> " + str(sketchdifference) + "\n<b>Sketchpad Prize:</b> prize " + str(variables.sketchprize) + "\n"
if len(requestcards) > 0:
shopstring += "<b>Crayons:</b> "
if redspend > 0:
shopstring += "<img src=\"" + variables.url + "/assets/crayons/crayon1.gif\"> x " + str(redspend)
if orangespend + yellowspend + greenspend + bluespend + purplespend + brownspend + greyspend > 0:
shopstring += ", "
if orangespend > 0:
shopstring += "<img src=\"" + variables.url + "/assets/crayons/crayon2.gif\"> x " + str(orangespend)
if yellowspend + greenspend + bluespend + purplespend + brownspend + greyspend > 0:
shopstring += ", "
if yellowspend > 0:
shopstring += "<img src=\"" + variables.url + "/assets/crayons/crayon3.gif\"> x " + str(yellowspend)
if greenspend + bluespend + purplespend + brownspend + greyspend > 0:
shopstring += ", "
if greenspend > 0:
shopstring += "<img src=\"" + variables.url + "/assets/crayons/crayon4.gif\"> x " + str(greenspend)
if bluespend + purplespend + brownspend + greyspend > 0:
shopstring += ", "
if bluespend > 0:
shopstring += "<img src=\"" + variables.url + "/assets/crayons/crayon5.gif\"> x " + str(bluespend)
if purplespend + brownspend + greyspend > 0:
shopstring += ", "
if purplespend > 0:
shopstring += "<img src=\"" + variables.url + "/assets/crayons/crayon6.gif\"> x " + str(purplespend)
if brownspend + greyspend > 0:
shopstring += ", "
if brownspend > 0:
shopstring += "<img src=\"" + variables.url + "/assets/crayons/crayon7.gif\"> x " + str(brownspend)
if greyspend > 0:
shopstring += ", "
if greyspend > 0:
shopstring += "<img src=\"" + variables.url + "/assets/crayons/crayon8.gif\"> x " + str(greyspend)
shopstring += "\n"
if sketchdifference > 0:
shopstring += "<b>Sketchpads:</b>\n<img src=\"" + variables.url + "/assets/sketch/20.gif\"> x " + str(sketchdifference)
print(shopstring)
shopurl = input("\nPaste in comment URL: ")
shoplog = "\n{\"event\":\"art shop\",\"date\":datetime.datetime(" + datetime.datetime.now().strftime("%Y,%-m,%-d") + "),\"url\":\"" + shopurl + "\""
if len(requestcards) > 0:
shoplog += ",\"pend\":[\"" + "\",\"".join(requestcards) + "\"],\"crayons\":{"
if redspend > 0:
shoplog += "\"red\":-" + str(redspend)
if orangespend + yellowspend + greenspend + bluespend + purplespend + brownspend + greyspend > 0:
shoplog += ","
if orangespend > 0:
shoplog += "\"orange\":-" + str(orangespend)
if yellowspend + greenspend + bluespend + purplespend + brownspend + greyspend > 0:
shoplog += ","
if yellowspend > 0:
shoplog += "\"yellow\":-" + str(yellowspend)
if greenspend + bluespend + purplespend + brownspend + greyspend > 0:
shoplog += ","
if greenspend > 0:
shoplog += "\"green\":-" + str(greenspend)
if bluespend + purplespend + brownspend + greyspend > 0:
shoplog += ","
if bluespend > 0:
shoplog += "\"blue\":-" + str(bluespend)
if purplespend + brownspend + greyspend > 0:
shoplog += ","
if purplespend > 0:
shoplog += "\"purple\":-" + str(purplespend)
if brownspend + greyspend > 0:
shoplog += ","
if brownspend > 0:
shoplog += "\"brown\":-" + str(brownspend)
if greyspend > 0:
shoplog += ","
if greyspend > 0:
shoplog += "\"gray\":-" + str(greyspend)
shoplog += "}"
if sketchdifference > 0:
if len(requestcards) > 0:
shoplog += ","
shoplog += "\"sketch\":-" + str(sketchdifference)
shoplog += "}"
print(shoplog)
def stats():
print("\nCollection size: " + str(len(colors.cardlist)) + " cards")
tradesize = 0
for card in colors.cardlist:
if card["priority"] == 4:
tradesize += 1
print("Tradepile: " + str(tradesize) + " cards")
masteredsize = 0
for deck in colors.decklist:
if deck["mastered"]:
masteredsize += 1
print("Wantlist: " + str(len(colors.wantedlist)) + " cards")
print("Mastered: " + str(masteredsize) + " decks")
print("Mass collection progress:")
masslist = sorted(list(variables.masscollect.keys()))
seriesdict = {}
for series in masslist:
seriesdict[series] = 0
for card in colors.cardlist:
if not card["dupe"]:
for series in card["mass"]:
for theseries in masslist:
if series == theseries:
seriesdict[series] += 1
totaldict = {}
for key,value in variables.masscollect.items():
thenumber = 0
try:
thenumber += 20 * len(value["decks"])
except:
pass
try:
thenumber += len(value["singles"])
except:
pass
totaldict[key] = thenumber
totaldict = dict(sorted(totaldict.items()))
for key in seriesdict:
if totaldict[key] > seriesdict[key]:
print(" " + key + ": " + str(seriesdict[key]) + "/" + str(totaldict[key]) + " (" + str(int((float(seriesdict[key])/float(totaldict[key])) * 100)) + "%)")
else:
print(" " + key + ": complete")
if __name__ == "__main__":
while True:
index = 0 # adapted from https://stackoverflow.com/a/64536882
indexValidList = []
print("Choose from the list:")
options = ["Get a list of potential cards to trade in for Rikus Favors","Generate next palette portfolio","Generate next monochrome portfolio","Generate Switch It Up request","Generate Go Fish comment","Generate art shop request","Generate art studio request","Get a list of random cards from tradepile (excluding specials)","Get a list of random cards from tradepile (including specials)","See some statistics about the collection"]
for optionName in options:
index = index + 1
indexValidList.extend([options.index(optionName)])
print(str(index) + ") " + optionName)
inputValid = False
while not inputValid:
inputRaw = input("Option: ")
inputNo = int(inputRaw) - 1
if inputNo > -1 and inputNo < len(indexValidList):
selected = indexValidList[inputNo]
inputValid = True
break
else:
print("Select a number from the list")
chosen = options[selected]
if chosen == "Get a list of potential cards to trade in for Rikus Favors":
riku()
elif chosen == "Generate next palette portfolio":
nextportfolio()
elif chosen == "Generate next monochrome portfolio":
nextportfolio(True)
elif chosen == "Generate Switch It Up request":
switchit()
elif chosen == "Generate Go Fish comment":
fish()
elif chosen == "Generate art studio request":
studio()
elif chosen == "Get a list of random cards from tradepile (excluding specials)":
randoms()
elif chosen == "Get a list of random cards from tradepile (including specials)":
randoms(True)
elif chosen == "Generate art shop request":
artshop()
elif chosen == "See some statistics about the collection":
stats()
print("\n")
input("Press Enter to continue or Ctrl-C to exit")