You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

143 lines
5.2 KiB
Python

import log,variables
typelist = ["red","orange","yellow","green","blue","purple","brown","gray","special"]
def ownedcards():
ownedcards = []
for event in log.log:
try:
for card in event["received"]:
ownedcards.append(card)
except:
pass
try:
for card in event["lost"]:
ownedcards.remove(card)
except:
pass
return sorted(ownedcards)
3 weeks ago
def deckcards(deck):
deckcards = []
for card in ownedcards():
if card[:-2] == deck:
deckcards.append(int(card[-2:]))
deckcards = sorted(list(dict.fromkeys(deckcards)))
return deckcards
def deckmastered(deck):
if len(deckcards(deck)) == 20:
3 weeks ago
return True
else:
return False
def collecting(deck):
if len (deckcards(deck)) < 20:
if deck in variables.highpriority:
3 weeks ago
return True
else:
if deck in variables.medpriority:
3 weeks ago
return True
else:
if len(deckcards(deck)) < variables.collectthreshold:
return False
else:
return True
else:
return False
3 weeks ago
def cardtype(card):
with open("build/decks/" + card[:-2] + "/type") as thetype:
cardtype = thetype.read()
return(cardtype)
def cardtext(card):
cardtext = "<span class=\"cardname\">"
3 weeks ago
if card[0:4] == "sig_":
cardtext += "<span title=\"signature\">✍</span>" + card + "</span>"
3 weeks ago
else:
if cardtype(card) == "red":
cardtext += "<span title=\"red\">🔴</span>"
elif cardtype(card) == "orange":
cardtext += "<span title=\"orange\">🟠</span>"
elif cardtype(card) == "yellow":
cardtext += "<span title=\"yellow\">🟡</span>"
elif cardtype(card) == "green":
cardtext += "<span title=\"green\">🟢</span>"
elif cardtype(card) == "blue":
cardtext += "<span title=\"blue\">🔵</span>"
elif cardtype(card) == "purple":
cardtext += "<span title=\"purple\">🟣</span>"
elif cardtype(card) == "brown":
cardtext += "<span title=\"brown\">🟤</span>"
elif cardtype(card) == "gray":
cardtext += "<span title=\""
if variables.british:
cardtext += "grey"
else:
cardtext += "gray"
cardtext += "\">⚪</span>"
elif cardtype(card) == "special":
cardtext += "<span title=\"special\">✨</span>"
3 weeks ago
cardtext += card + "</span>"
return cardtext
def printcard(card):
3 weeks ago
if card[0:4] == "sig_":
return "<img src=\"/decks/sigs/" + card[4:] + ".gif\" title=\"" + card + "\" loading=\"lazy\">"
3 weeks ago
else:
deck = card[:-2]
cardid = card[-2:]
return "<img src=\"/decks/" + deck + "/" + cardid + ".gif\" title=\"" + card + "\" loading=\"lazy\">"
def printdeck(deck):
deckstring = "<table class=\"decktable "
with open("build/decks/" + deck + "/type") as thetype:
decktype = thetype.read()
deckstring += decktype + "\">\n<thead>\n <tr>\n <th colspan=\"5\">" + deck + " ["
3 weeks ago
deckstring += str(len(deckcards(deck))) + "/20]</th>\n </tr>\n</thead>\n<tbody>\n"
test = 1
while test < 21:
if test % 5 == 1:
deckstring += " <tr>\n"
deckstring += " <td>"
3 weeks ago
if test in deckcards(deck):
if test > 9:
deckstring += printcard(deck + str(test))
else:
deckstring += printcard(deck + "0" + str(test))
else:
deckstring += "<img src=\"/decks/" + deck + "/00.gif\" loading=\"lazy\">"
deckstring += "</td>\n"
if test % 5 == 0:
deckstring += " </tr>\n"
test += 1
if deckmastered(deck):
deckstring += " <tr>\n <td colspan=\"5\" align=\"center\"><img src=\"/decks/" + deck + "/master.gif\" title=\"mastered " + deck + "\"><td>\n</tr>\n"
deckstring += "</tbody>\n</table>\n"
return deckstring
def filterwrite(page,colour=False,sigs=False):
filterstring = "<p class=\"typefilter\">"
if colour:
filterstring += "Filtered to <b>"
if colour == "gray":
if variables.british:
filterstring += "grey"
else:
filterstring += "gray"
else:
filterstring += colour
filterstring += "</b>. <a href=\"/" + page + "\">Show all</a>"
else:
filterstring += "Filter: <a href=\"/" + page + "/red\" title=\"red\">🔴</a> <a href=\"/" + page + "/orange\" title=\"orange\">🟠</a> <a href=\"/" + page + "/yellow\" title=\"yellow\">🟡</a> <a href=\"/" + page + "/green\" title=\"green\">🟢</a> <a href=\"/" + page + "/blue\" title=\"blue\">🔵</a> <a href=\"/" + page + "/purple\" title=\"purple\">🟣</a> <a href=\"/" + page + "/brown\" title=\"brown\">🟤</a> <a href=\"/" + page + "/gray\" title=\""
if variables.british:
filterstring += "grey"
else:
filterstring += "gray"
filterstring += "\">⚪</a> <a href=\"/" + page + "/special\" title=\"special\">✨</a>"
if sigs:
filterstring += " <a href=\"/" + page + "/sig\" title=\"sig\">✍</a>"
filterstring += "</p>\n"
return filterstring