Compare commits
10 commits
14cf962e4c
...
221837ee04
Author | SHA1 | Date | |
---|---|---|---|
221837ee04 | |||
987161e2b8 | |||
4bbb265342 | |||
1cf0d1c0af | |||
654c162105 | |||
d2157a3bb3 | |||
df1b89a053 | |||
905faedd1b | |||
c5b18b9943 | |||
b334f8c64b |
5 changed files with 1706 additions and 766 deletions
|
@ -21,19 +21,21 @@ 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”
|
||||
- =collectthreshold=: minimum number of owned cards for putting a deck in the “collecting” category
|
||||
- =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=)
|
||||
- =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
|
||||
|
|
808
colors.py
808
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
|
||||
|
@ -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
|
||||
|
@ -471,18 +476,7 @@ def headerwrite(thefile,pagename):
|
|||
if len(variables.subfolder) > 0:
|
||||
header.write("/" + variables.subfolder)
|
||||
header.write("/mastered\">mastered</a>")
|
||||
header.write("</li>\n")
|
||||
if variables.ownedpage:
|
||||
header.write(" <li>")
|
||||
if pagename == "owned":
|
||||
header.write("owned")
|
||||
else:
|
||||
header.write("<a href=\"")
|
||||
if len(variables.subfolder) > 0:
|
||||
header.write("/" + variables.subfolder)
|
||||
header.write("/owned\">owned</a>")
|
||||
header.write("</li>\n")
|
||||
header.write(" <li>")
|
||||
header.write("</li>\n <li>")
|
||||
if pagename == "trade":
|
||||
header.write("trading")
|
||||
else:
|
||||
|
@ -853,7 +847,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 = "<p class=\"typefilter\">"
|
||||
if colour:
|
||||
filterstring += "Filtered to <span class=\"" + colour + "\"><b>"
|
||||
|
@ -862,6 +856,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 += "</b></span>. <a href=\""
|
||||
|
@ -870,6 +866,10 @@ def filterwrite(page,colour=False,sigs=False):
|
|||
filterstring += "/" + page + "\">Show all</a>"
|
||||
else:
|
||||
filterstring += "Filter: <a href=\""
|
||||
if recent:
|
||||
if len(variables.subfolder) > 0:
|
||||
filterstring += "/" + variables.subfolder
|
||||
filterstring += "/" + page + "/recent\" title=\"gained this month\">📅</a> <a href=\""
|
||||
if len(variables.subfolder) > 0:
|
||||
filterstring += "/" + variables.subfolder
|
||||
filterstring += "/" + page + "/red\" title=\"red\">🔴</a> <a href=\""
|
||||
|
@ -989,743 +989,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 = "♥ <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] + "\"]}")
|
||||
|
||||
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 += "<img src=\"https://colors-tcg.eu/cards/" + card + ".gif\">"
|
||||
print("\n" + images + "\n")
|
||||
switchround = input("Round number: ")
|
||||
switchcomment = input("Comment URL: ")
|
||||
print("\n{\"event\":\"switch it up " + switchround + "\",\"date\":datetime.datetime(" + datetime.datetime.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 += "<img src=\"https://colors-tcg.eu/cards/" + card["name"] + ".gif\">"
|
||||
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("\n<b>What are you exchanging for?</b>: " + ", ".join(allwants) + "\n<b>Cards you are exchanging</b>:\n<img src=\"https://colors-tcg.eu/cards/" + ".gif\"><img src=\"https://colors-tcg.eu/cards/".join(give) + ".gif\">\n<b>Card names</b>: " + ", ".join(give) + "\n<b>Art Studio use for the current month</b>: random cards: " + str(10 - 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")
|
||||
|
||||
|
@ -1864,12 +1127,23 @@ def indexgen():
|
|||
content.write("/levels\"><img src=\"")
|
||||
if len(variables.subfolder) > 0:
|
||||
content.write("/" + variables.subfolder)
|
||||
content.write("/assets/levels/" + rankcode + ".gif\"></a><img src=\"")
|
||||
if len(variables.subfolder) > 0:
|
||||
content.write("/" + variables.subfolder)
|
||||
content.write("/decks/sigs/" + variables.name.lower() + ".gif\" loading=\"lazy\">\n<ul>\n<li>player name: <span class=\"name\">" + variables.name + "</span></li>\n<li>" + str(len(cardlist)) + " cards held <span class=\"rank " + rank + "\">(" + rank + ")</span></li>\n<li>started <code>" + firstdate.strftime("%Y-%m-%d") + "</code></li>\n<li>last updated <code>" + datetime.datetime.today().strftime("%Y-%m-%d") + "</code></li>\n<li><a href=\"https://git.praze.net/tre/tcg\" target=\"_blank\">code</a> under construction</li>\n")
|
||||
if len(variables.misclink["text"]) > 0:
|
||||
content.write("<li><a href=\"" + variables.misclink["link"] + "\">" + variables.misclink["text"] + "</a></li>\n")
|
||||
content.write("/assets/levels/" + rankcode + ".gif\"></a>")
|
||||
if variables.sig:
|
||||
content.write("<img src=\"")
|
||||
if len(variables.subfolder) > 0:
|
||||
content.write("/" + variables.subfolder)
|
||||
content.write("/decks/sigs/" + variables.name.lower() + ".gif\" loading=\"lazy\">")
|
||||
content.write("\n<ul>\n<li>player name: <span class=\"name\">" + variables.name + "</span></li>\n<li>" + str(len(cardlist)) + " cards held <span class=\"rank " + rank + "\">(" + rank + ")</span></li>\n<li>started <code>" + firstdate.strftime("%Y-%m-%d") + "</code></li>\n<li>last updated <code>" + datetime.datetime.now().strftime("%Y-%m-%d") + "</code></li>\n<li><a href=\"https://git.praze.net/tre/tcg\" target=\"_blank\">code</a> ")
|
||||
if variables.name == "Mez":
|
||||
content.write("under construction")
|
||||
else:
|
||||
content.write("by <a href=\https://tcg.praze.net\">mez</a>")
|
||||
content.write("</li>\n")
|
||||
try:
|
||||
if len(variables.misclink["text"]) > 0:
|
||||
content.write("<li><a href=\"" + variables.misclink["link"] + "\">" + variables.misclink["text"] + "</a></li>\n")
|
||||
except:
|
||||
pass
|
||||
content.write("</ul>\n")
|
||||
if crayred + crayorange + crayyellow + craygreen + crayblue + craypurple + craybrown + craygrey > 0:
|
||||
content.write("<table id=\"crayontable\">\n<tbody>\n<tr>\n")
|
||||
|
@ -2576,14 +1850,20 @@ def tradegen(colour=False):
|
|||
os.remove(thefile)
|
||||
headerwrite(thefile,"trade")
|
||||
content = open(thefile,"a")
|
||||
content.write("<h1>available for trade</h1>\n" + filterwrite("trade",colour,True) + "<p class=\"tradeterms\">")
|
||||
content.write("<h1>available for trade</h1>\n" + filterwrite("trade",colour,True,True) + "<p class=\"tradeterms\">")
|
||||
if len(variables.tradestatement) > 0:
|
||||
content.write(variables.tradestatement + " ")
|
||||
content.write("Trade cards <a href=\"" + variables.tradepost + "\">here</a></p>\n<p><textarea readonly>")
|
||||
precomma = False
|
||||
for card in alltradelist:
|
||||
if colour:
|
||||
if card["colour"] == colour:
|
||||
if colour == "recent":
|
||||
if card["received"].month == datetime.datetime.now().month and card["received"].year == datetime.datetime.now().year:
|
||||
if precomma:
|
||||
content.write(", ")
|
||||
content.write(card["name"])
|
||||
precomma = True
|
||||
elif card["colour"] == colour:
|
||||
if precomma:
|
||||
content.write(", ")
|
||||
content.write(card["name"])
|
||||
|
@ -2596,7 +1876,10 @@ def tradegen(colour=False):
|
|||
content.write("</textarea>\n<p>")
|
||||
for card in alltradelist:
|
||||
if colour:
|
||||
if card["colour"] == colour:
|
||||
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))
|
||||
|
@ -2608,6 +1891,7 @@ def tradeall():
|
|||
tradegen()
|
||||
for thevalue in values:
|
||||
tradegen(thevalue)
|
||||
tradegen("recent")
|
||||
tradegen("sig")
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
|
1
setup.py
1
setup.py
|
@ -1,3 +1,4 @@
|
|||
import os
|
||||
import variables
|
||||
|
||||
buildscript = open("build.sh","w")
|
||||
|
|
|
@ -3,19 +3,21 @@ serverpath = ""
|
|||
subfolder = ""
|
||||
url = ""
|
||||
name = "your name"
|
||||
sig = False
|
||||
highpriority = ["deckname","nameofadeck"]
|
||||
trademedium = True
|
||||
tradepost = "URL"
|
||||
faves = ["favecard01","favecard02"]
|
||||
headerbackground = "#000000"
|
||||
british = True
|
||||
sketchprize = 1
|
||||
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":[]}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue