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
  • ") + 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("
  • ") if pagename == "trade": header.write("trading") else: @@ -847,7 +853,7 @@ while portfoliosearch > 0: latestmonochrome = portfoliosearch portfoliosearch -= 1 -def filterwrite(page,colour=False,sigs=False,recent=False): +def filterwrite(page,colour=False,sigs=False): filterstring = "

    " 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