From b334f8c64b4c2f416e94657ae107c1c2f5c2b7c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?tr=C3=A9meur?= Date: Tue, 8 Apr 2025 22:02:52 +0100 Subject: [PATCH 01/10] Fix switchit() --- colors.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/colors.py b/colors.py index feac3d8..d7513d6 100644 --- a/colors.py +++ b/colors.py @@ -1507,7 +1507,7 @@ def switchit(): wantchaos = wantchaos[:5] if len(wantchaos) > 0: wantall.extend(wantchaos) - tradechaos = input("Provide " + str(len(wantchaos)) + " cards for the chaos pile (for " + ", ".join(tradechaos) + "): ").split(", ") + tradechaos = input("Provide " + str(len(wantchaos)) + " cards for the chaos pile (for " + ", ".join(wantchaos) + "): ").split(", ") tradeall.extend(tradechaos) print("\n") if len(wantreds) > 0: From c5b18b9943dec226d60f503e35d56ced6ae17cb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?tr=C3=A9meur?= Date: Wed, 9 Apr 2025 18:58:26 +0100 Subject: [PATCH 02/10] Enhance randoms function --- colors.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/colors.py b/colors.py index d7513d6..1a51c7a 100644 --- a/colors.py +++ b/colors.py @@ -1717,13 +1717,17 @@ def studio(): studiostring += "\"exchange\":{\"dupes\":" + str(dupeswant) + ",\"new\":" + str(newwant) + ",\"sigs\":" + str(sigswant) + ",\"choice\":" + str(choicewant) + ",\"special\":" + str(specialwant) + "}}" print("\n" + studiostring) -def randoms(): +def randoms(specials=False): totalrandoms = int(input("How many? ")) pool = [] for card in cardlist: - if card["priority"] == 4 and card["dupe"] == False and card["colour"] != "special" and card["colour"] != "sig" and card["colour"] != "limited": - pool.append(card["name"]) - chosen = random.sample(pool,totalrandoms) + 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"]) + chosen = sorted(random.sample(pool,totalrandoms)) print(", ".join(chosen)) if __name__ == "__main__": From 905faedd1bf87957ccdbd2969f042f52c57b8b4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?tr=C3=A9meur?= Date: Sun, 13 Apr 2025 13:32:58 +0100 Subject: [PATCH 03/10] Show recent cards on trading page --- colors.py | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/colors.py b/colors.py index 1a51c7a..0debbe4 100644 --- a/colors.py +++ b/colors.py @@ -853,7 +853,7 @@ while portfoliosearch > 0: latestmonochrome = portfoliosearch portfoliosearch -= 1 -def filterwrite(page,colour=False,sigs=False): +def filterwrite(page,colour=False,sigs=False,recent=False): filterstring = "

" if colour: filterstring += "Filtered to " @@ -862,6 +862,8 @@ def filterwrite(page,colour=False,sigs=False): filterstring += "grey" else: filterstring += "gray" + elif colour == "recent": + filterstring += "cards gained in " + datetime.datetime.now().strftime("%B") else: filterstring += colour filterstring += ". Show all" else: filterstring += "Filter: 0: + filterstring += "/" + variables.subfolder + filterstring += "/" + page + "/recent\" title=\"gained this month\">đź“… 0: filterstring += "/" + variables.subfolder filterstring += "/" + page + "/red\" title=\"red\">đź”´ available for trade\n" + filterwrite("trade",colour,True) + "

") + content.write("

available for trade

\n" + filterwrite("trade",colour,True,True) + "

") if len(variables.tradestatement) > 0: content.write(variables.tradestatement + " ") content.write("Trade cards here

\n

\n

") for card in alltradelist: if colour: - if card["colour"] == colour: - content.write(printcard(card)) + if colour == "recent": + if card["received"].month == datetime.datetime.now().month and card["received"].year == datetime.datetime.now().year: + content.write(printcard(card)) + elif card["colour"] == colour: + content.write(printcard(card)) else: content.write(printcard(card)) content.write("

\n") @@ -2612,6 +2627,7 @@ def tradeall(): tradegen() for thevalue in values: tradegen(thevalue) + tradegen("recent") tradegen("sig") if __name__ == "__main__": From df1b89a053b235af726144c5e75599efa84faeac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?tr=C3=A9meur?= Date: Mon, 14 Apr 2025 19:32:42 +0100 Subject: [PATCH 04/10] Fix indentation --- colors.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/colors.py b/colors.py index 0debbe4..b8c17e5 100644 --- a/colors.py +++ b/colors.py @@ -2599,11 +2599,11 @@ def tradegen(colour=False): content.write(", ") content.write(card["name"]) precomma = True - elif card["colour"] == colour: - if precomma: - content.write(", ") - content.write(card["name"]) - precomma = True + elif card["colour"] == colour: + if precomma: + content.write(", ") + content.write(card["name"]) + precomma = True else: if precomma: content.write(", ") @@ -2615,8 +2615,8 @@ def tradegen(colour=False): if colour == "recent": if card["received"].month == datetime.datetime.now().month and card["received"].year == datetime.datetime.now().year: content.write(printcard(card)) - elif card["colour"] == colour: - content.write(printcard(card)) + elif card["colour"] == colour: + content.write(printcard(card)) else: content.write(printcard(card)) content.write("

\n") From d2157a3bb3a06685cbdd0f520723f73d7208c1e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?tr=C3=A9meur?= Date: Mon, 14 Apr 2025 19:51:17 +0100 Subject: [PATCH 05/10] Allow differential priorities for mass decks --- README.org | 3 ++- colors.py | 9 +++++++-- variables-template.py | 1 + 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/README.org b/README.org index 34501b2..4a716a1 100644 --- a/README.org +++ b/README.org @@ -27,8 +27,9 @@ Python scripts to generate a mobile-friendly static site for tracking tcg cards - =faves=: a list of cards to showcase on the index page - =headerbackground=: an HTML colour to display behind your header image and set as a theme colour - =british=: =True= if you want “grey” to display on the site, =False= if you want “gray” - - =collectthreshold=: minimum number of owned cards for putting a deck in the “collecting” category + - =collectthreshold=: minimum number of owned cards for putting a deck in the “collecting” category (all cards in mass decks will be included) - =mediumthreshold=: minimum number of owned cards for marking a deck as medium priority + - =massmediumthreshold=: minimum number of owned cards for marking a deck in a mass deck medium priority (should normally be lower than =mediumthreshold=) - =highthreshold=: minimum number of owned cards for marking a deck as high priority - =keepsig=: =True= if you always want to keep one copy of your signature, =False= if you want to make them all available for trading - =tradestatement=: statement to place on your trading page diff --git a/colors.py b/colors.py index b8c17e5..cdc855a 100644 --- a/colors.py +++ b/colors.py @@ -122,7 +122,7 @@ for event in log.log: if thedeck in variables.highpriority: thecard["priority"] = 1 elif len(thecard["mass"]) > 0: - thecard["priority"] = 2 + thecard["priority"] = 3 else: thecard["priority"] = 4 cardlist.append(thecard) @@ -309,7 +309,12 @@ for deck in decks: thedeck["mastered"] = False if deck in variables.highpriority or count >= variables.highthreshold or deck in portdecks or thedeck["colour"] == "limited": thedeck["priority"] = 1 - elif len(thedeck["mass"]) > 0 or count >= variables.mediumthreshold: + elif len(thedeck["mass"]) > 0: + if count >= variables.massmediumthreshold: + thedeck["priority"] = 2 + else: + thedeck["priority"] = 3 + elif count >= variables.mediumthreshold: thedeck["priority"] = 2 elif count >= variables.collectthreshold: thedeck["priority"] = 3 diff --git a/variables-template.py b/variables-template.py index 4e0176c..f6e670d 100644 --- a/variables-template.py +++ b/variables-template.py @@ -11,6 +11,7 @@ headerbackground = "#000000" british = True collectthreshold = 2 mediumthreshold = 5 +massmediumthreshold = 1 highthreshold = 10 keepsig = False tradestatement = "" From 654c16210557bd105f10039e9994bbcaf42b2156 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?tr=C3=A9meur?= Date: Mon, 14 Apr 2025 20:35:18 +0100 Subject: [PATCH 06/10] Move tools to a different file --- colors.py | 745 +-------------------------------------------------- tools.py | 783 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 785 insertions(+), 743 deletions(-) create mode 100644 tools.py diff --git a/colors.py b/colors.py index cdc855a..183c14e 100644 --- a/colors.py +++ b/colors.py @@ -1,4 +1,4 @@ -import datetime,os,random,re,requests +import datetime,os,re,requests from bs4 import BeautifulSoup from collections import Counter import log,variables @@ -1000,747 +1000,6 @@ def crayonlog(colour,event): crayonstring = str(crayonno) + " " + crayonrend return crayonstring -def dupes(mass=True,nonmass=True,characters=True,specials=True): - dupeslist = [] - previouscard = "" - for card in 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): - useddecks = {} - already = 0 - if monochrome: - for portfolio in portfolios: - if portfolio["type"] == "monochrome": - already += 1 - useddecks.update(portfolio["decks"]) - else: - for portfolio in portfolios: - if portfolio["type"] == "palette": - already += 1 - useddecks.update(portfolio["decks"]) - potentials = [] - for deck in 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": - firstthree.append(reddecks[0]["name"]) - firstthree.append(reddecks[1]["name"]) - firstthree.append(reddecks[2]["name"]) - elif nextportcolour == "orange": - firstthree.append(orangedecks[0]["name"]) - firstthree.append(orangedecks[1]["name"]) - firstthree.append(orangedecks[2]["name"]) - elif nextportcolour == "yellow": - firstthree.append(yellowdecks[0]["name"]) - firstthree.append(yellowdecks[1]["name"]) - firstthree.append(yellowdecks[2]["name"]) - elif nextportcolour == "green": - firstthree.append(greendecks[0]["name"]) - firstthree.append(greendecks[1]["name"]) - firstthree.append(greendecks[2]["name"]) - elif nextportcolour == "blue": - firstthree.append(bluedecks[0]["name"]) - firstthree.append(bluedecks[1]["name"]) - firstthree.append(bluedecks[2]["name"]) - elif nextportcolour == "purple": - firstthree.append(purpledecks[0]["name"]) - firstthree.append(purpledecks[1]["name"]) - firstthree.append(purpledecks[2]["name"]) - elif nextportcolour == "brown": - firstthree.append(browndecks[0]["name"]) - firstthree.append(browndecks[1]["name"]) - firstthree.append(browndecks[2]["name"]) - elif nextportcolour == "grey": - firstthree.append(greydecks[0]["name"]) - firstthree.append(greydecks[1]["name"]) - firstthree.append(greydecks[2]["name"]) - secondfive = [] - nearingdecks = sorted(decklist, key=lambda d: d["count"],reverse=True) - slots = 5 - for deck in nearingdecks: - if slots > 0: - 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 - 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(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) - portcomment = "♥ Your Name: " + variables.name + "\n♥ Card post: " + variables.url + "\n♥ " - if monochrome: - portcomment += "Monochrome" - else: - portcomment += "Palette" - portcomment += " Portfolio #: " + str(already + 1) + "\n" - if monochrome: - portcomment += "♥ Monochrome Color: " - if nextportcolour == "grey": - if variables.british: - portcomment += "grey" - else: - portcomment += "gray" - else: - portcomment += nextportcolour - portcomment += "\n♥ 1st deck: " + alleight[0] - if alleight[0] in firstthree: - portcomment += " (mastered)" - portcomment += "\n♥ 2nd deck: " + alleight[1] - if alleight[1] in firstthree: - portcomment += " (mastered)" - portcomment += "\n♥ 3rd deck: " + alleight[2] - if alleight[2] in firstthree: - portcomment += " (mastered)" - portcomment += "\n♥ 4th deck: " + alleight[3] - if alleight[3] in firstthree: - portcomment += " (mastered)" - portcomment += "\n♥ 5th deck: " + alleight[4] - if alleight[4] in firstthree: - portcomment += " (mastered)" - portcomment += "\n♥ 6th deck: " + alleight[5] - if alleight[5] in firstthree: - portcomment += " (mastered)" - portcomment += "\n♥ 7th deck: " + alleight[6] - if alleight[6] in firstthree: - portcomment += " (mastered)" - portcomment += "\n♥ 8th deck: " + alleight[7] - if alleight[7] in firstthree: - portcomment += " (mastered)" - else: - portcomment += "♥ Red deck: " + thereddeck - if redmastered: - portcomment += " (mastered)" - portcomment += "\n♥ Orange deck: " + theorangedeck - if orangemastered: - portcomment += " (mastered)" - portcomment += "\n♥ Yellow deck: " + theyellowdeck - if yellowmastered: - portcomment += " (mastered)" - portcomment += "\n♥ Green deck: " + thegreendeck - if greenmastered: - portcomment += " (mastered)" - portcomment += "\n♥ Blue deck: " + thebluedeck - if bluemastered: - portcomment += " (mastered)" - portcomment += "\n♥ Purple deck: " + thepurpledeck - if purplemastered: - portcomment += " (mastered)" - portcomment += "\n♥ Brown deck: " + thebrowndeck - if brownmastered: - portcomment += " (mastered)" - portcomment += "\n♥ Gray deck: " + thegreydeck - if greymastered: - portcomment += " (mastered)" - print(portcomment) - porturl = input("\nPaste the comment URL here: ") - print("\n{\"event\":\"portfolio\",\"date\":datetime.datetime(" + datetime.datetime.today().strftime("%Y,%-m,%-d") + "),\"url\":\"" + porturl + "\",\"decks\":[\"" + alleight[0] + "\",\"" + alleight[1] + "\",\"" + alleight[2] + "\",\"" + alleight[3] + "\",\"" + alleight[4] + "\",\"" + alleight[5] + "\",\"" + alleight[6] + "\",\"" + alleight[7] + "\"]}") - -def switchit(): - wantedbypriority = sorted(wantedlist, key=lambda d: d["priority"]) - redtrade = [] - orangetrade = [] - yellowtrade = [] - greentrade = [] - bluetrade = [] - purpletrade = [] - browntrade = [] - greytrade = [] - for card in 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(", ") - wantreds = [] - for card in reds: - if card in wantednames: - wantreds.append(card) - if len(wantreds) > 5: - wantreds = wantreds[:5] - if len(wantreds) > 0: - wantall.extend(wantreds) - traderedscount = len(wantreds) - tradereds = [] - tradereds.extend(random.sample(redtrade,len(wantreds))) - tradeall.extend(tradereds) - oranges = input("Paste orange pile here: ").split(", ") - wantoranges = [] - for card in oranges: - if card in wantednames: - wantoranges.append(card) - if len(wantoranges) > 5: - wantoranges = wantoranges[:5] - if len(wantoranges) > 0: - wantall.extend(wantoranges) - tradeorangescount = len(wantoranges) - tradeoranges = [] - tradeoranges.extend(random.sample(orangetrade,len(wantoranges))) - tradeall.extend(tradeoranges) - yellows = input("Paste yellow pile here: ").split(", ") - wantyellows = [] - for card in yellows: - if card in wantednames: - wantyellows.append(card) - if len(wantyellows) > 5: - wantyellows = wantyellows[:5] - if len(wantyellows) > 0: - wantall.extend(wantyellows) - tradeyellowscount = len(wantyellows) - tradeyellows = [] - tradeyellows.extend(random.sample(yellowtrade,len(wantyellows))) - tradeall.extend(tradeyellows) - greens = input("Paste green pile here: ").split(", ") - wantgreens = [] - for card in greens: - if card in wantednames: - wantgreens.append(card) - if len(wantgreens) > 5: - wantgreens = wantgreens[:5] - if len(wantgreens) > 0: - wantall.extend(wantgreens) - tradegreenscount = len(wantgreens) - tradegreens = [] - tradegreens.extend(random.sample(greentrade,len(wantgreens))) - tradeall.extend(tradegreens) - blues = input("Paste blue pile here: ").split(", ") - wantblues = [] - for card in blues: - if card in wantednames: - wantblues.append(card) - if len(wantblues) > 5: - wantblues = wantblues[:5] - if len(wantblues) > 0: - wantall.extend(wantblues) - tradebluescount = len(wantblues) - tradeblues = [] - tradeblues.extend(random.sample(bluetrade,len(wantblues))) - tradeall.extend(tradeblues) - purples = input("Paste purple pile here: ").split(", ") - wantpurples = [] - for card in purples: - if card in wantednames: - wantpurples.append(card) - if len(wantpurples) > 5: - wantpurples = wantpurples[:5] - if len(wantpurples) > 0: - wantall.extend(wantpurples) - tradepurplescount = len(wantpurples) - tradepurples = [] - tradepurples.extend(random.sample(purpletrade,len(wantpurples))) - tradeall.extend(tradepurples) - browns = input("Paste brown pile here: ").split(", ") - wantbrowns = [] - for card in browns: - if card in wantednames: - wantbrowns.append(card) - if len(wantbrowns) > 5: - wantbrowns = wantbrowns[:5] - if len(wantbrowns) > 0: - wantall.extend(wantbrowns) - tradebrownscount = len(wantbrowns) - tradebrowns = [] - tradebrowns.extend(random.sample(browntrade,len(wantbrowns))) - tradeall.extend(tradebrowns) - greys = input("Paste grey pile here: ").split(", ") - wantgreys = [] - for card in greys: - if card in wantednames: - wantgreys.append(card) - if len(wantgreys) > 5: - wantgreys = wantgreys[:5] - if len(wantgreys) > 0: - wantall.extend(wantgreys) - tradegreyscount = len(wantgreys) - tradegreys = [] - tradegreys.extend(random.sample(greytrade,len(wantgreys))) - tradeall.extend(tradegreys) - chaos = input("Paste chaos pile here: ").split(", ") - 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(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 += "" - print("\n" + images + "\n") - switchround = input("Round number: ") - switchcomment = input("Comment URL: ") - print("\n{\"event\":\"switch it up " + switchround + "\",\"date\":datetime.datetime(" + datetime.datetime.today().strftime("%Y,%-m,%-d") + "),\"url\":\"" + switchcomment + "\",\"pend\":[\"" + "\",\"".join(wantall) + "\"],\"lost\":[\"" + "\",\"".join(tradeall) + "\"]}") - -def fish(): - fishdecks = input("Paste list of decks here: ").split(", ") - fishfound = [] - for card in 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 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 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"]) - 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 += "" - print(images) - -def studio(): - 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 - if dupeslimit > 0: - dupeswant = int(input("How many randoms for doubles? (" + str(dupeslimit) + " remaining) ")) - else: - dupeswant = 0 - if newlimit > 0: - newwant = int(input("How many new release cards? (" + str(newlimit) + " remaining) ")) - else: - newwant = 0 - if sigslimit > 0: - sigswant = int(input("How many signatures? (" + str(sigslimit) + " remaining) ")) - else: - sigswant = 0 - if choicelimit > 0: - choicewant = int(input("How many choice character cards? (" + str(choicelimit) + " remaining) ")) - else: - choicewant = 0 - if speciallimit > 0: - specialwant = int(input("How many choice special cards? (" + str(speciallimit) + " remaining) ")) - else: - specialwant = 0 - tradedupes = [] - tradenormal = [] - tradespecial = [] - for card in 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: - if card["colour"] == "special": - tradespecial.append(card["name"]) - else: - tradenormal.append(card["name"]) - 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) - print("\nWhat are you exchanging for?: " + ", ".join(allwants) + "\nCards you are exchanging:\n\nCard names: " + ", ".join(give) + "\nArt Studio use for the current month: random cards: " + str(10 - dupeslimit + dupeswant) + "/10; new release cards: " + str(20 - newlimit + newwant) + "/20; signatures: " + str(10 - sigslimit + sigswant) + "/10; character cards: " + str(16 - choicelimit + choicewant) + "/16; special cards: " + str(10 - speciallimit + specialwant) + "/10\n") - studiourl = input("Paste in comment URL: ") - studiostring = "{\"event\":\"art studio\",\"date\":datetime.datetime(" + datetime.datetime.today().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) - -def randoms(specials=False): - totalrandoms = int(input("How many? ")) - pool = [] - for card in 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"]) - chosen = sorted(random.sample(pool,totalrandoms)) - print(", ".join(chosen)) - if __name__ == "__main__": print("Building index page") @@ -1882,7 +1141,7 @@ def indexgen(): content.write("/assets/levels/" + rankcode + ".gif\"> 0: content.write("/" + variables.subfolder) - content.write("/decks/sigs/" + variables.name.lower() + ".gif\" loading=\"lazy\">\n
    \n
  • player name: " + variables.name + "
  • \n
  • " + str(len(cardlist)) + " cards held (" + rank + ")
  • \n
  • started " + firstdate.strftime("%Y-%m-%d") + "
  • \n
  • last updated " + datetime.datetime.today().strftime("%Y-%m-%d") + "
  • \n
  • code under construction
  • \n") + content.write("/decks/sigs/" + variables.name.lower() + ".gif\" loading=\"lazy\">\n
      \n
    • player name: " + variables.name + "
    • \n
    • " + str(len(cardlist)) + " cards held (" + rank + ")
    • \n
    • started " + firstdate.strftime("%Y-%m-%d") + "
    • \n
    • last updated " + datetime.datetime.now().strftime("%Y-%m-%d") + "
    • \n
    • code under construction
    • \n") if len(variables.misclink["text"]) > 0: content.write("
    • " + variables.misclink["text"] + "
    • \n") content.write("
    \n") diff --git a/tools.py b/tools.py new file mode 100644 index 0000000..44cbe22 --- /dev/null +++ b/tools.py @@ -0,0 +1,783 @@ +import datetime,random +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): + 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": + firstthree.append(reddecks[0]["name"]) + firstthree.append(reddecks[1]["name"]) + firstthree.append(reddecks[2]["name"]) + elif nextportcolour == "orange": + firstthree.append(orangedecks[0]["name"]) + firstthree.append(orangedecks[1]["name"]) + firstthree.append(orangedecks[2]["name"]) + elif nextportcolour == "yellow": + firstthree.append(yellowdecks[0]["name"]) + firstthree.append(yellowdecks[1]["name"]) + firstthree.append(yellowdecks[2]["name"]) + elif nextportcolour == "green": + firstthree.append(greendecks[0]["name"]) + firstthree.append(greendecks[1]["name"]) + firstthree.append(greendecks[2]["name"]) + elif nextportcolour == "blue": + firstthree.append(bluedecks[0]["name"]) + firstthree.append(bluedecks[1]["name"]) + firstthree.append(bluedecks[2]["name"]) + elif nextportcolour == "purple": + firstthree.append(purpledecks[0]["name"]) + firstthree.append(purpledecks[1]["name"]) + firstthree.append(purpledecks[2]["name"]) + elif nextportcolour == "brown": + firstthree.append(browndecks[0]["name"]) + firstthree.append(browndecks[1]["name"]) + firstthree.append(browndecks[2]["name"]) + elif nextportcolour == "grey": + firstthree.append(greydecks[0]["name"]) + firstthree.append(greydecks[1]["name"]) + firstthree.append(greydecks[2]["name"]) + secondfive = [] + nearingdecks = sorted(colors.decklist, key=lambda d: d["count"],reverse=True) + slots = 5 + for deck in nearingdecks: + if slots > 0: + 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 + 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) + portcomment = "♥ Your Name: " + variables.name + "\n♥ Card post: " + variables.url + "\n♥ " + if monochrome: + portcomment += "Monochrome" + else: + portcomment += "Palette" + portcomment += " Portfolio #: " + str(already + 1) + "\n" + if monochrome: + portcomment += "♥ Monochrome Color: " + if nextportcolour == "grey": + if variables.british: + portcomment += "grey" + else: + portcomment += "gray" + else: + portcomment += nextportcolour + portcomment += "\n♥ 1st deck: " + alleight[0] + if alleight[0] in firstthree: + portcomment += " (mastered)" + portcomment += "\n♥ 2nd deck: " + alleight[1] + if alleight[1] in firstthree: + portcomment += " (mastered)" + portcomment += "\n♥ 3rd deck: " + alleight[2] + if alleight[2] in firstthree: + portcomment += " (mastered)" + portcomment += "\n♥ 4th deck: " + alleight[3] + if alleight[3] in firstthree: + portcomment += " (mastered)" + portcomment += "\n♥ 5th deck: " + alleight[4] + if alleight[4] in firstthree: + portcomment += " (mastered)" + portcomment += "\n♥ 6th deck: " + alleight[5] + if alleight[5] in firstthree: + portcomment += " (mastered)" + portcomment += "\n♥ 7th deck: " + alleight[6] + if alleight[6] in firstthree: + portcomment += " (mastered)" + portcomment += "\n♥ 8th deck: " + alleight[7] + if alleight[7] in firstthree: + portcomment += " (mastered)" + else: + portcomment += "♥ Red deck: " + thereddeck + if redmastered: + portcomment += " (mastered)" + portcomment += "\n♥ Orange deck: " + theorangedeck + if orangemastered: + portcomment += " (mastered)" + portcomment += "\n♥ Yellow deck: " + theyellowdeck + if yellowmastered: + portcomment += " (mastered)" + portcomment += "\n♥ Green deck: " + thegreendeck + if greenmastered: + portcomment += " (mastered)" + portcomment += "\n♥ Blue deck: " + thebluedeck + if bluemastered: + portcomment += " (mastered)" + portcomment += "\n♥ Purple deck: " + thepurpledeck + if purplemastered: + portcomment += " (mastered)" + portcomment += "\n♥ Brown deck: " + thebrowndeck + if brownmastered: + portcomment += " (mastered)" + portcomment += "\n♥ Gray deck: " + thegreydeck + if greymastered: + portcomment += " (mastered)" + 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] + "\"]}") + +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(", ") + wantreds = [] + for card in reds: + if card in wantednames: + wantreds.append(card) + if len(wantreds) > 5: + wantreds = wantreds[:5] + if len(wantreds) > 0: + wantall.extend(wantreds) + traderedscount = len(wantreds) + tradereds = [] + tradereds.extend(random.sample(redtrade,len(wantreds))) + tradeall.extend(tradereds) + oranges = input("Paste orange pile here: ").split(", ") + wantoranges = [] + for card in oranges: + if card in wantednames: + wantoranges.append(card) + if len(wantoranges) > 5: + wantoranges = wantoranges[:5] + if len(wantoranges) > 0: + wantall.extend(wantoranges) + tradeorangescount = len(wantoranges) + tradeoranges = [] + tradeoranges.extend(random.sample(orangetrade,len(wantoranges))) + tradeall.extend(tradeoranges) + yellows = input("Paste yellow pile here: ").split(", ") + wantyellows = [] + for card in yellows: + if card in wantednames: + wantyellows.append(card) + if len(wantyellows) > 5: + wantyellows = wantyellows[:5] + if len(wantyellows) > 0: + wantall.extend(wantyellows) + tradeyellowscount = len(wantyellows) + tradeyellows = [] + tradeyellows.extend(random.sample(yellowtrade,len(wantyellows))) + tradeall.extend(tradeyellows) + greens = input("Paste green pile here: ").split(", ") + wantgreens = [] + for card in greens: + if card in wantednames: + wantgreens.append(card) + if len(wantgreens) > 5: + wantgreens = wantgreens[:5] + if len(wantgreens) > 0: + wantall.extend(wantgreens) + tradegreenscount = len(wantgreens) + tradegreens = [] + tradegreens.extend(random.sample(greentrade,len(wantgreens))) + tradeall.extend(tradegreens) + blues = input("Paste blue pile here: ").split(", ") + wantblues = [] + for card in blues: + if card in wantednames: + wantblues.append(card) + if len(wantblues) > 5: + wantblues = wantblues[:5] + if len(wantblues) > 0: + wantall.extend(wantblues) + tradebluescount = len(wantblues) + tradeblues = [] + tradeblues.extend(random.sample(bluetrade,len(wantblues))) + tradeall.extend(tradeblues) + purples = input("Paste purple pile here: ").split(", ") + wantpurples = [] + for card in purples: + if card in wantednames: + wantpurples.append(card) + if len(wantpurples) > 5: + wantpurples = wantpurples[:5] + if len(wantpurples) > 0: + wantall.extend(wantpurples) + tradepurplescount = len(wantpurples) + tradepurples = [] + tradepurples.extend(random.sample(purpletrade,len(wantpurples))) + tradeall.extend(tradepurples) + browns = input("Paste brown pile here: ").split(", ") + wantbrowns = [] + for card in browns: + if card in wantednames: + wantbrowns.append(card) + if len(wantbrowns) > 5: + wantbrowns = wantbrowns[:5] + if len(wantbrowns) > 0: + wantall.extend(wantbrowns) + tradebrownscount = len(wantbrowns) + tradebrowns = [] + tradebrowns.extend(random.sample(browntrade,len(wantbrowns))) + tradeall.extend(tradebrowns) + greys = input("Paste grey pile here: ").split(", ") + wantgreys = [] + for card in greys: + if card in wantednames: + wantgreys.append(card) + if len(wantgreys) > 5: + wantgreys = wantgreys[:5] + if len(wantgreys) > 0: + wantall.extend(wantgreys) + tradegreyscount = len(wantgreys) + tradegreys = [] + tradegreys.extend(random.sample(greytrade,len(wantgreys))) + tradeall.extend(tradegreys) + chaos = input("Paste chaos pile here: ").split(", ") + 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(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 += "" + 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) + "\"]}") + +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"]) + 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 += "" + print(images) + +def studio(): + 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 + if dupeslimit > 0: + dupeswant = int(input("How many randoms for doubles? (" + str(dupeslimit) + " remaining) ")) + else: + dupeswant = 0 + if newlimit > 0: + newwant = int(input("How many new release cards? (" + str(newlimit) + " remaining) ")) + else: + newwant = 0 + if sigslimit > 0: + sigswant = int(input("How many signatures? (" + str(sigslimit) + " remaining) ")) + else: + sigswant = 0 + if choicelimit > 0: + choicewant = int(input("How many choice character cards? (" + str(choicelimit) + " remaining) ")) + else: + choicewant = 0 + if speciallimit > 0: + specialwant = int(input("How many choice special cards? (" + str(speciallimit) + " remaining) ")) + else: + specialwant = 0 + tradedupes = [] + 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: + if card["colour"] == "special": + tradespecial.append(card["name"]) + else: + tradenormal.append(card["name"]) + 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) + print("\nWhat are you exchanging for?: " + ", ".join(allwants) + "\nCards you are exchanging:\n\nCard names: " + ", ".join(give) + "\nArt Studio use for the current month: random cards: " + str(10 - dupeslimit + dupeswant) + "/10; new release cards: " + str(20 - newlimit + newwant) + "/20; signatures: " + str(10 - sigslimit + sigswant) + "/10; character cards: " + str(16 - choicelimit + choicewant) + "/16; special cards: " + str(10 - speciallimit + 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) + +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"]) + chosen = sorted(random.sample(pool,totalrandoms)) + print(", ".join(chosen)) + +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 Riku’s Favors","Generate next palette portfolio","Generate next monochrome portfolio","Generate Switch It Up request","Generate Go Fish comment","Generate art studio request","Get a list of random cards from tradepile (excluding specials)","Get a list of random cards from tradepile (including specials)"] + 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 Riku’s 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) + print("\n") + input("Press Enter to continue or Ctrl-C to exit") From 1cf0d1c0af6e2057e5e7115f78d3f11fa97946fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?tr=C3=A9meur?= Date: Sun, 20 Apr 2025 13:14:12 +0100 Subject: [PATCH 07/10] Add function for generating art shop requests --- README.org | 1 + tools.py | 763 +++++++++++++++++++++++++++++++++++++++++- variables-template.py | 1 + 3 files changed, 764 insertions(+), 1 deletion(-) diff --git a/README.org b/README.org index 4a716a1..669fcdb 100644 --- a/README.org +++ b/README.org @@ -27,6 +27,7 @@ Python scripts to generate a mobile-friendly static site for tracking tcg cards - =faves=: a list of cards to showcase on the index page - =headerbackground=: an HTML colour to display behind your header image and set as a theme colour - =british=: =True= if you want “grey” to display on the site, =False= if you want “gray” + - =sketchprize=: prize you normally want for sketchpads in the art shop (1 or 2) - =collectthreshold=: minimum number of owned cards for putting a deck in the “collecting” category (all cards in mass decks will be included) - =mediumthreshold=: minimum number of owned cards for marking a deck as medium priority - =massmediumthreshold=: minimum number of owned cards for marking a deck in a mass deck medium priority (should normally be lower than =mediumthreshold=) diff --git a/tools.py b/tools.py index 44cbe22..688bc95 100644 --- a/tools.py +++ b/tools.py @@ -1,4 +1,5 @@ import datetime,random +from collections import Counter import colors,log,variables def dupes(mass=True,nonmass=True,characters=True,specials=True): @@ -742,12 +743,770 @@ def randoms(specials=False): chosen = sorted(random.sample(pool,totalrandoms)) print(", ".join(chosen)) +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 + if len(requestcards) == 0 and sketchdifference < 1: + print("Nothing to request") + else: + shopstring = "\nName: " + variables.name + "\nCard Post: " + variables.url + "\n" + if len(requestcards) > 0: + shopstring += "Choice Cards: " + ", ".join(requestcards) + "\n" + if sketchdifference > 0: + shopstring += "Number of Sketchpads: " + str(sketchdifference) + "\nSketchpad Prize: prize " + str(variables.sketchprize) + "\n" + if len(requestcards) > 0: + shopstring += "Crayons: " + if redspend > 0: + shopstring += " x " + str(redspend) + if orangespend + yellowspend + greenspend + bluespend + purplespend + brownspend + greyspend > 0: + shopstring += ", " + if orangespend > 0: + shopstring += " x " + str(orangespend) + if yellowspend + greenspend + bluespend + purplespend + brownspend + greyspend > 0: + shopstring += ", " + if yellowspend > 0: + shopstring += " x " + str(yellowspend) + if greenspend + bluespend + purplespend + brownspend + greyspend > 0: + shopstring += ", " + if greenspend > 0: + shopstring += " x " + str(greenspend) + if bluespend + purplespend + brownspend + greyspend > 0: + shopstring += ", " + if bluespend > 0: + shopstring += " x " + str(bluespend) + if purplespend + brownspend + greyspend > 0: + shopstring += ", " + if purplespend > 0: + shopstring += " x " + str(purplespend) + if brownspend + greyspend > 0: + shopstring += ", " + if brownspend > 0: + shopstring += " x " + str(brownspend) + if greyspend > 0: + shopstring += ", " + if greyspend > 0: + shopstring += " x " + str(greyspend) + shopstring += "\n" + if sketchdifference > 0: + shopstring += "Sketchpads:\n 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) + 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 Riku’s Favors","Generate next palette portfolio","Generate next monochrome portfolio","Generate Switch It Up request","Generate Go Fish comment","Generate art studio request","Get a list of random cards from tradepile (excluding specials)","Get a list of random cards from tradepile (including specials)"] + options = ["Get a list of potential cards to trade in for Riku’s 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)"] for optionName in options: index = index + 1 indexValidList.extend([options.index(optionName)]) @@ -779,5 +1538,7 @@ if __name__ == "__main__": randoms() elif chosen == "Get a list of random cards from tradepile (including specials)": randoms(True) + elif chosen == "Generate art shop request": + artshop() print("\n") input("Press Enter to continue or Ctrl-C to exit") diff --git a/variables-template.py b/variables-template.py index f6e670d..c611901 100644 --- a/variables-template.py +++ b/variables-template.py @@ -9,6 +9,7 @@ tradepost = "URL" faves = ["favecard01","favecard02"] headerbackground = "#000000" british = True +sketchprize = 1 collectthreshold = 2 mediumthreshold = 5 massmediumthreshold = 1 From 4bbb265342dcc215c1f2451da6d54c2bbb8a6992 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?tr=C3=A9meur?= Date: Mon, 21 Apr 2025 12:13:15 +0100 Subject: [PATCH 08/10] Add fallbacks for small collections --- README.org | 2 +- colors.py | 36 ++-- setup.py | 1 + tools.py | 413 +++++++++++++++++++++++++----------------- variables-template.py | 4 +- 5 files changed, 264 insertions(+), 192 deletions(-) diff --git a/README.org b/README.org index 669fcdb..67789fb 100644 --- a/README.org +++ b/README.org @@ -21,6 +21,7 @@ Python scripts to generate a mobile-friendly static site for tracking tcg cards - =subfolder=: subfolder under your (sub)domain in which the TCG pages will be located (leave as an empty string if they are at the top level) - =url=: URL of your site index page including =https://= - =name=: the name you use in the game + - =sig=: set to =True= when you have a signature card - =highpriority=: a list of high priority decks you’re collecting - =trademedium=: whether to allow trading medium-priority cards away in exchange for high-priority cards - =tradepost=: URL of your trade post on Dreamwidth @@ -35,7 +36,6 @@ Python scripts to generate a mobile-friendly static site for tracking tcg cards - =keepsig=: =True= if you always want to keep one copy of your signature, =False= if you want to make them all available for trading - =tradestatement=: statement to place on your trading page - =maxmastered=: maximum number of most recently mastered decks to show on the index page - - =ownedpage=: =True= if you want a page displaying your entire collection, =False= otherwise - =firstmasteries=: a list of decks you mastered first - =misclink=: under ="link"=, a link to any page you choose, and under ~"text"~, text to display as the link - =donations= : lists of donated decks and individual scrapbook cards diff --git a/colors.py b/colors.py index 183c14e..1b5a7b4 100644 --- a/colors.py +++ b/colors.py @@ -476,18 +476,7 @@ def headerwrite(thefile,pagename): if len(variables.subfolder) > 0: header.write("/" + variables.subfolder) header.write("/mastered\">mastered") - header.write("\n") - if variables.ownedpage: - header.write("
  • ") - if pagename == "owned": - header.write("owned") - else: - header.write(" 0: - header.write("/" + variables.subfolder) - header.write("/owned\">owned") - header.write("
  • \n") - header.write("
  • ") + header.write("
  • \n
  • ") if pagename == "trade": header.write("trading") else: @@ -1138,12 +1127,23 @@ def indexgen(): content.write("/levels\"> 0: content.write("/" + variables.subfolder) - content.write("/assets/levels/" + rankcode + ".gif\"> 0: - content.write("/" + variables.subfolder) - content.write("/decks/sigs/" + variables.name.lower() + ".gif\" loading=\"lazy\">\n
      \n
    • player name: " + variables.name + "
    • \n
    • " + str(len(cardlist)) + " cards held (" + rank + ")
    • \n
    • started " + firstdate.strftime("%Y-%m-%d") + "
    • \n
    • last updated " + datetime.datetime.now().strftime("%Y-%m-%d") + "
    • \n
    • code under construction
    • \n") - if len(variables.misclink["text"]) > 0: - content.write("
    • " + variables.misclink["text"] + "
    • \n") + content.write("/assets/levels/" + rankcode + ".gif\">") + if variables.sig: + content.write(" 0: + content.write("/" + variables.subfolder) + content.write("/decks/sigs/" + variables.name.lower() + ".gif\" loading=\"lazy\">") + content.write("\n
        \n
      • player name: " + variables.name + "
      • \n
      • " + str(len(cardlist)) + " cards held (" + rank + ")
      • \n
      • started " + firstdate.strftime("%Y-%m-%d") + "
      • \n
      • last updated " + datetime.datetime.now().strftime("%Y-%m-%d") + "
      • \n
      • code ") + if variables.name == "Mez": + content.write("under construction") + else: + content.write("by mez") + content.write("
      • \n") + try: + if len(variables.misclink["text"]) > 0: + content.write("
      • " + variables.misclink["text"] + "
      • \n") + except: + pass content.write("
      \n") if crayred + crayorange + crayyellow + craygreen + crayblue + craypurple + craybrown + craygrey > 0: content.write("\n\n\n") diff --git a/setup.py b/setup.py index babed81..efb6d4f 100644 --- a/setup.py +++ b/setup.py @@ -1,3 +1,4 @@ +import os import variables buildscript = open("build.sh","w") diff --git a/tools.py b/tools.py index 688bc95..15fa2e4 100644 --- a/tools.py +++ b/tools.py @@ -1,4 +1,4 @@ -import datetime,random +import datetime,random,math from collections import Counter import colors,log,variables @@ -43,6 +43,7 @@ def riku(): print(dupes(True,False,True,False)) def nextportfolio(monochrome=False): + goodtogo = True useddecks = {} already = 0 if monochrome: @@ -110,52 +111,81 @@ def nextportfolio(monochrome=False): nextportcolour = "grey" firstthree = [] if nextportcolour == "red": - firstthree.append(reddecks[0]["name"]) - firstthree.append(reddecks[1]["name"]) - firstthree.append(reddecks[2]["name"]) + try: + firstthree.append(reddecks[0]["name"]) + firstthree.append(reddecks[1]["name"]) + firstthree.append(reddecks[2]["name"]) + except: + goodtogo = False elif nextportcolour == "orange": - firstthree.append(orangedecks[0]["name"]) - firstthree.append(orangedecks[1]["name"]) - firstthree.append(orangedecks[2]["name"]) + try: + firstthree.append(orangedecks[0]["name"]) + firstthree.append(orangedecks[1]["name"]) + firstthree.append(orangedecks[2]["name"]) + except: + goodtogo = False elif nextportcolour == "yellow": - firstthree.append(yellowdecks[0]["name"]) - firstthree.append(yellowdecks[1]["name"]) - firstthree.append(yellowdecks[2]["name"]) + try: + firstthree.append(yellowdecks[0]["name"]) + firstthree.append(yellowdecks[1]["name"]) + firstthree.append(yellowdecks[2]["name"]) + except: + goodtogo = False elif nextportcolour == "green": - firstthree.append(greendecks[0]["name"]) - firstthree.append(greendecks[1]["name"]) - firstthree.append(greendecks[2]["name"]) + try: + firstthree.append(greendecks[0]["name"]) + firstthree.append(greendecks[1]["name"]) + firstthree.append(greendecks[2]["name"]) + except: + goodtogo = False elif nextportcolour == "blue": - firstthree.append(bluedecks[0]["name"]) - firstthree.append(bluedecks[1]["name"]) - firstthree.append(bluedecks[2]["name"]) + try: + firstthree.append(bluedecks[0]["name"]) + firstthree.append(bluedecks[1]["name"]) + firstthree.append(bluedecks[2]["name"]) + except: + goodtogo = False elif nextportcolour == "purple": - firstthree.append(purpledecks[0]["name"]) - firstthree.append(purpledecks[1]["name"]) - firstthree.append(purpledecks[2]["name"]) + try: + firstthree.append(purpledecks[0]["name"]) + firstthree.append(purpledecks[1]["name"]) + firstthree.append(purpledecks[2]["name"]) + except: + goodtogo = False elif nextportcolour == "brown": - firstthree.append(browndecks[0]["name"]) - firstthree.append(browndecks[1]["name"]) - firstthree.append(browndecks[2]["name"]) + try: + firstthree.append(browndecks[0]["name"]) + firstthree.append(browndecks[1]["name"]) + firstthree.append(browndecks[2]["name"]) + except: + goodtogo = False elif nextportcolour == "grey": - firstthree.append(greydecks[0]["name"]) - firstthree.append(greydecks[1]["name"]) - firstthree.append(greydecks[2]["name"]) - secondfive = [] - nearingdecks = sorted(colors.decklist, key=lambda d: d["count"],reverse=True) - slots = 5 - for deck in nearingdecks: - if slots > 0: - 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 - alleight = sorted(firstthree + secondfive) + 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 @@ -306,73 +336,80 @@ def nextportfolio(monochrome=False): alleight.append(thepurpledeck) alleight.append(thebrowndeck) alleight.append(thegreydeck) - portcomment = "♥ Your Name: " + variables.name + "\n♥ Card post: " + variables.url + "\n♥ " - if monochrome: - portcomment += "Monochrome" - else: - portcomment += "Palette" - portcomment += " Portfolio #: " + str(already + 1) + "\n" - if monochrome: - portcomment += "♥ Monochrome Color: " - if nextportcolour == "grey": - if variables.british: - portcomment += "grey" - else: - portcomment += "gray" + if goodtogo: + portcomment = "♥ Your Name: " + variables.name + "\n♥ Card post: " + variables.url + "\n♥ " + if monochrome: + portcomment += "Monochrome" else: - portcomment += nextportcolour - portcomment += "\n♥ 1st deck: " + alleight[0] - if alleight[0] in firstthree: - portcomment += " (mastered)" - portcomment += "\n♥ 2nd deck: " + alleight[1] - if alleight[1] in firstthree: - portcomment += " (mastered)" - portcomment += "\n♥ 3rd deck: " + alleight[2] - if alleight[2] in firstthree: - portcomment += " (mastered)" - portcomment += "\n♥ 4th deck: " + alleight[3] - if alleight[3] in firstthree: - portcomment += " (mastered)" - portcomment += "\n♥ 5th deck: " + alleight[4] - if alleight[4] in firstthree: - portcomment += " (mastered)" - portcomment += "\n♥ 6th deck: " + alleight[5] - if alleight[5] in firstthree: - portcomment += " (mastered)" - portcomment += "\n♥ 7th deck: " + alleight[6] - if alleight[6] in firstthree: - portcomment += " (mastered)" - portcomment += "\n♥ 8th deck: " + alleight[7] - if alleight[7] in firstthree: - portcomment += " (mastered)" + portcomment += "Palette" + portcomment += " Portfolio #: " + str(already + 1) + "\n" + if monochrome: + portcomment += "♥ Monochrome Color: " + if nextportcolour == "grey": + if variables.british: + portcomment += "grey" + else: + portcomment += "gray" + else: + portcomment += nextportcolour + portcomment += "\n♥ 1st deck: " + alleight[0] + if alleight[0] in firstthree: + portcomment += " (mastered)" + portcomment += "\n♥ 2nd deck: " + alleight[1] + if alleight[1] in firstthree: + portcomment += " (mastered)" + portcomment += "\n♥ 3rd deck: " + alleight[2] + if alleight[2] in firstthree: + portcomment += " (mastered)" + portcomment += "\n♥ 4th deck: " + alleight[3] + if alleight[3] in firstthree: + portcomment += " (mastered)" + portcomment += "\n♥ 5th deck: " + alleight[4] + if alleight[4] in firstthree: + portcomment += " (mastered)" + portcomment += "\n♥ 6th deck: " + alleight[5] + if alleight[5] in firstthree: + portcomment += " (mastered)" + portcomment += "\n♥ 7th deck: " + alleight[6] + if alleight[6] in firstthree: + portcomment += " (mastered)" + portcomment += "\n♥ 8th deck: " + alleight[7] + if alleight[7] in firstthree: + portcomment += " (mastered)" + else: + try: + portcomment += "♥ Red deck: " + thereddeck + if redmastered: + portcomment += " (mastered)" + portcomment += "\n♥ Orange deck: " + theorangedeck + if orangemastered: + portcomment += " (mastered)" + portcomment += "\n♥ Yellow deck: " + theyellowdeck + if yellowmastered: + portcomment += " (mastered)" + portcomment += "\n♥ Green deck: " + thegreendeck + if greenmastered: + portcomment += " (mastered)" + portcomment += "\n♥ Blue deck: " + thebluedeck + if bluemastered: + portcomment += " (mastered)" + portcomment += "\n♥ Purple deck: " + thepurpledeck + if purplemastered: + portcomment += " (mastered)" + portcomment += "\n♥ Brown deck: " + thebrowndeck + if brownmastered: + portcomment += " (mastered)" + portcomment += "\n♥ Gray deck: " + 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: - portcomment += "♥ Red deck: " + thereddeck - if redmastered: - portcomment += " (mastered)" - portcomment += "\n♥ Orange deck: " + theorangedeck - if orangemastered: - portcomment += " (mastered)" - portcomment += "\n♥ Yellow deck: " + theyellowdeck - if yellowmastered: - portcomment += " (mastered)" - portcomment += "\n♥ Green deck: " + thegreendeck - if greenmastered: - portcomment += " (mastered)" - portcomment += "\n♥ Blue deck: " + thebluedeck - if bluemastered: - portcomment += " (mastered)" - portcomment += "\n♥ Purple deck: " + thepurpledeck - if purplemastered: - portcomment += " (mastered)" - portcomment += "\n♥ Brown deck: " + thebrowndeck - if brownmastered: - portcomment += " (mastered)" - portcomment += "\n♥ Gray deck: " + thegreydeck - if greymastered: - portcomment += " (mastered)" - 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] + "\"]}") + print("Master some more decks first") def switchit(): wantedbypriority = sorted(colors.wantedlist, key=lambda d: d["priority"]) @@ -523,34 +560,37 @@ def switchit(): tradechaos = input("Provide " + str(len(wantchaos)) + " cards for the chaos pile (for " + ", ".join(wantchaos) + "): ").split(", ") tradeall.extend(tradechaos) print("\n") - 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 += "" - 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) + "\"]}") + 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 += "" + 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(", ") @@ -615,13 +655,33 @@ def fish(): cardnames = [] for card in fishrefined: cardnames.append(card["name"]) - 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 += "" - print(images) + 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 += "" + 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 @@ -650,40 +710,43 @@ def studio(): 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 - tradedupes = [] - 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: - if card["colour"] == "special": - tradespecial.append(card["name"]) - else: - tradenormal.append(card["name"]) neededdupes = dupeswant needednormal = 2 * newwant + 3 * sigswant + 3 * choicewant neededspecial = 3 * specialwant @@ -713,22 +776,25 @@ def studio(): allwants.extend(choicelist) if specialwant > 0: allwants.extend(speciallist) - print("\nWhat are you exchanging for?: " + ", ".join(allwants) + "\nCards you are exchanging:\n\nCard names: " + ", ".join(give) + "\nArt Studio use for the current month: random cards: " + str(10 - dupeslimit + dupeswant) + "/10; new release cards: " + str(20 - newlimit + newwant) + "/20; signatures: " + str(10 - sigslimit + sigswant) + "/10; character cards: " + str(16 - choicelimit + choicewant) + "/16; special cards: " + str(10 - speciallimit + 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) + if len(allwants) > 0: + print("\nWhat are you exchanging for?: " + ", ".join(allwants) + "\nCards you are exchanging:\n\nCard names: " + ", ".join(give) + "\nArt Studio use for the current month: 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? ")) @@ -740,8 +806,11 @@ def randoms(specials=False): else: if card["colour"] != "special": pool.append(card["name"]) - chosen = sorted(random.sample(pool,totalrandoms)) - print(", ".join(chosen)) + try: + chosen = sorted(random.sample(pool,totalrandoms)) + print(", ".join(chosen)) + except ValueError: + print("Too many cards requested") def artshop(): hpred = [] @@ -1414,7 +1483,9 @@ def artshop(): tradecommon = list((Counter(colors.tradeout) & Counter(colors.tradein)).elements()) sketch = len(tradecommon) if sketch > 0: - sketchdifference = int(sketch / 20) - colors.redeemedsketch + sketchdifference = int(sketch / 20) - colors.redeemedsketch + else: + sketchdifference = 0 if len(requestcards) == 0 and sketchdifference < 1: print("Nothing to request") else: diff --git a/variables-template.py b/variables-template.py index c611901..f0e4772 100644 --- a/variables-template.py +++ b/variables-template.py @@ -3,6 +3,7 @@ serverpath = "" subfolder = "" url = "" name = "your name" +sig = False highpriority = ["deckname","nameofadeck"] trademedium = True tradepost = "URL" @@ -14,10 +15,9 @@ collectthreshold = 2 mediumthreshold = 5 massmediumthreshold = 1 highthreshold = 10 -keepsig = False +keepsig = True tradestatement = "" maxmastered = 20 -ownedpage = False firstmasteries = ["deckname","nameofdeck"] misclink = {"link":"","text":""} donations = {"decks":[],"scrapbook":[]} From 987161e2b8cf5e08ec3b745855972859e77d564b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?tr=C3=A9meur?= Date: Mon, 21 Apr 2025 21:43:32 +0100 Subject: [PATCH 09/10] Truncate switchit requests in case of small tradepile --- tools.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/tools.py b/tools.py index 15fa2e4..ec54788 100644 --- a/tools.py +++ b/tools.py @@ -451,6 +451,8 @@ def switchit(): 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) @@ -464,6 +466,8 @@ def switchit(): 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) @@ -477,6 +481,8 @@ def switchit(): 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) @@ -490,6 +496,8 @@ def switchit(): 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) @@ -503,6 +511,8 @@ def switchit(): 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) @@ -516,6 +526,8 @@ def switchit(): 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) @@ -529,6 +541,8 @@ def switchit(): 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) @@ -542,6 +556,8 @@ def switchit(): 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) From 221837ee04c8e239c84b26a1a49607dc33a8566c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?tr=C3=A9meur?= Date: Tue, 22 Apr 2025 10:25:54 +0100 Subject: [PATCH 10/10] Allow removal of switch it up cards --- tools.py | 36 ++++++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/tools.py b/tools.py index ec54788..a898b5f 100644 --- a/tools.py +++ b/tools.py @@ -445,6 +445,34 @@ def switchit(): 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: @@ -459,7 +487,6 @@ def switchit(): tradereds = [] tradereds.extend(random.sample(redtrade,len(wantreds))) tradeall.extend(tradereds) - oranges = input("Paste orange pile here: ").split(", ") wantoranges = [] for card in oranges: if card in wantednames: @@ -474,7 +501,6 @@ def switchit(): tradeoranges = [] tradeoranges.extend(random.sample(orangetrade,len(wantoranges))) tradeall.extend(tradeoranges) - yellows = input("Paste yellow pile here: ").split(", ") wantyellows = [] for card in yellows: if card in wantednames: @@ -489,7 +515,6 @@ def switchit(): tradeyellows = [] tradeyellows.extend(random.sample(yellowtrade,len(wantyellows))) tradeall.extend(tradeyellows) - greens = input("Paste green pile here: ").split(", ") wantgreens = [] for card in greens: if card in wantednames: @@ -504,7 +529,6 @@ def switchit(): tradegreens = [] tradegreens.extend(random.sample(greentrade,len(wantgreens))) tradeall.extend(tradegreens) - blues = input("Paste blue pile here: ").split(", ") wantblues = [] for card in blues: if card in wantednames: @@ -519,7 +543,6 @@ def switchit(): tradeblues = [] tradeblues.extend(random.sample(bluetrade,len(wantblues))) tradeall.extend(tradeblues) - purples = input("Paste purple pile here: ").split(", ") wantpurples = [] for card in purples: if card in wantednames: @@ -534,7 +557,6 @@ def switchit(): tradepurples = [] tradepurples.extend(random.sample(purpletrade,len(wantpurples))) tradeall.extend(tradepurples) - browns = input("Paste brown pile here: ").split(", ") wantbrowns = [] for card in browns: if card in wantednames: @@ -549,7 +571,6 @@ def switchit(): tradebrowns = [] tradebrowns.extend(random.sample(browntrade,len(wantbrowns))) tradeall.extend(tradebrowns) - greys = input("Paste grey pile here: ").split(", ") wantgreys = [] for card in greys: if card in wantednames: @@ -564,7 +585,6 @@ def switchit(): tradegreys = [] tradegreys.extend(random.sample(greytrade,len(wantgreys))) tradeall.extend(tradegreys) - chaos = input("Paste chaos pile here: ").split(", ") wantchaos = [] for card in chaos: if card in wantednames: