diff --git a/README.org b/README.org index 67789fb..34501b2 100644 --- a/README.org +++ b/README.org @@ -21,21 +21,19 @@ 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 - =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) + - =collectthreshold=: minimum number of owned cards for putting a deck in the “collecting” category - =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 - =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 1b5a7b4..feac3d8 100644 --- a/colors.py +++ b/colors.py @@ -1,4 +1,4 @@ -import datetime,os,re,requests +import datetime,os,random,re,requests from bs4 import BeautifulSoup from collections import Counter import log,variables @@ -122,7 +122,7 @@ for event in log.log: if thedeck in variables.highpriority: thecard["priority"] = 1 elif len(thecard["mass"]) > 0: - thecard["priority"] = 3 + thecard["priority"] = 2 else: thecard["priority"] = 4 cardlist.append(thecard) @@ -309,12 +309,7 @@ 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: - if count >= variables.massmediumthreshold: - thedeck["priority"] = 2 - else: - thedeck["priority"] = 3 - elif count >= variables.mediumthreshold: + elif len(thedeck["mass"]) > 0 or count >= variables.mediumthreshold: thedeck["priority"] = 2 elif count >= variables.collectthreshold: thedeck["priority"] = 3 @@ -476,7 +471,18 @@ def headerwrite(thefile,pagename): if len(variables.subfolder) > 0: header.write("/" + variables.subfolder) header.write("/mastered\">mastered") - header.write("\n
"
if colour:
filterstring += "Filtered to "
@@ -856,8 +862,6 @@ def filterwrite(page,colour=False,sigs=False,recent=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\">🔴 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(tradechaos) + "): ").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():
+ 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)
+ print(", ".join(chosen))
+
if __name__ == "__main__":
print("Building index page")
@@ -1127,23 +1864,12 @@ def indexgen():
content.write("/levels\">
0:
content.write("/" + variables.subfolder)
- 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
" + firstdate.strftime("%Y-%m-%d") + "
" + datetime.datetime.now().strftime("%Y-%m-%d") + "
" + firstdate.strftime("%Y-%m-%d") + "
" + datetime.datetime.today().strftime("%Y-%m-%d") + "