Add function to generate optimal portfolio
This commit is contained in:
parent
5b843a1537
commit
3d479f1f60
3 changed files with 334 additions and 0 deletions
|
@ -19,6 +19,7 @@ Python scripts to generate a mobile-friendly static site for tracking tcg cards
|
|||
- =servername=: name set for your remote in =rclone=
|
||||
- =serverpath=: path to the site root on the server (with leading slash, without trailing slash)
|
||||
- =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
|
||||
- =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
|
||||
|
|
332
colors.py
332
colors.py
|
@ -1029,6 +1029,338 @@ def riku():
|
|||
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 = "♥ <b>Your Name:</b> " + variables.name + "\n♥ <b>Card post:</b> " + variables.url + "\n♥ <b>"
|
||||
if monochrome:
|
||||
portcomment += "Monochrome"
|
||||
else:
|
||||
portcomment += "Palette"
|
||||
portcomment += " Portfolio #:</b> " + str(already + 1) + "\n"
|
||||
if monochrome:
|
||||
portcomment += "♥ <b>Monochrome Color:</b> "
|
||||
if nextportcolour == "grey":
|
||||
if variables.british:
|
||||
portcomment += "grey"
|
||||
else:
|
||||
portcomment += "gray"
|
||||
else:
|
||||
portcomment += nextportcolour
|
||||
portcomment += "\n♥ <b>1st deck:</b> " + alleight[0]
|
||||
if alleight[0] in firstthree:
|
||||
portcomment += " (mastered)"
|
||||
portcomment += "\n♥ <b>2nd deck:</b> " + alleight[1]
|
||||
if alleight[1] in firstthree:
|
||||
portcomment += " (mastered)"
|
||||
portcomment += "\n♥ <b>3rd deck:</b> " + alleight[2]
|
||||
if alleight[2] in firstthree:
|
||||
portcomment += " (mastered)"
|
||||
portcomment += "\n♥ <b>4th deck:</b> " + alleight[3]
|
||||
if alleight[3] in firstthree:
|
||||
portcomment += " (mastered)"
|
||||
portcomment += "\n♥ <b>5th deck:</b> " + alleight[4]
|
||||
if alleight[4] in firstthree:
|
||||
portcomment += " (mastered)"
|
||||
portcomment += "\n♥ <b>6th deck:</b> " + alleight[5]
|
||||
if alleight[5] in firstthree:
|
||||
portcomment += " (mastered)"
|
||||
portcomment += "\n♥ <b>7th deck:</b> " + alleight[6]
|
||||
if alleight[6] in firstthree:
|
||||
portcomment += " (mastered)"
|
||||
portcomment += "\n♥ <b>8th deck:</b> " + alleight[7]
|
||||
if alleight[7] in firstthree:
|
||||
portcomment += " (mastered)"
|
||||
else:
|
||||
portcomment += "♥ <b>Red deck:</b> " + thereddeck
|
||||
if redmastered:
|
||||
portcomment += " (mastered)"
|
||||
portcomment += "\n♥ <b>Orange deck:</b> " + theorangedeck
|
||||
if orangemastered:
|
||||
portcomment += " (mastered)"
|
||||
portcomment += "\n♥ <b>Yellow deck:</b> " + theyellowdeck
|
||||
if yellowmastered:
|
||||
portcomment += " (mastered)"
|
||||
portcomment += "\n♥ <b>Green deck:</b> " + thegreendeck
|
||||
if greenmastered:
|
||||
portcomment += " (mastered)"
|
||||
portcomment += "\n♥ <b>Blue deck:</b> " + thebluedeck
|
||||
if bluemastered:
|
||||
portcomment += " (mastered)"
|
||||
portcomment += "\n♥ <b>Purple deck:</b> " + thepurpledeck
|
||||
if purplemastered:
|
||||
portcomment += " (mastered)"
|
||||
portcomment += "\n♥ <b>Brown deck:</b> " + thebrowndeck
|
||||
if brownmastered:
|
||||
portcomment += " (mastered)"
|
||||
portcomment += "\n♥ <b>Gray deck:</b> " + thegreydeck
|
||||
if greymastered:
|
||||
portcomment += " (mastered)"
|
||||
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] + "\"]}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
print("Building index page")
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
servername = ""
|
||||
serverpath = ""
|
||||
subfolder = ""
|
||||
url = ""
|
||||
name = "your name"
|
||||
highpriority = ["deckname","nameofadeck"]
|
||||
trademedium = True
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue