List pending trades on a page

This commit is contained in:
mez 2025-08-31 20:05:42 +01:00
parent a24391d01d
commit c7cf249304
2 changed files with 109 additions and 30 deletions

View file

@ -30,7 +30,7 @@ Python scripts to generate a mobile-friendly static site for tracking tcg cards
- =neocities=: set to =True= if you will be using the neocities CLI
- =servername=: name set for your remote in =rclone= (if not using the neocities CLI)
- =serverpath=: path to the site root on the server (if not using the neocities CLI; 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; if using the neocities CLI this will not work and the pages will be uploaded to the site root)
- =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; leave out both leading and trailing slash; if using the neocities CLI this will not work and the pages will be uploaded to the site root)
- =url=: URL of your site index page including =https://=
- =name=: the name you use in the game
- =hovertext=: text to display when hovering over the header image

137
colors.py
View file

@ -857,34 +857,67 @@ def printcard(card):
def cardtext(card):
cardtext = "<span class=\"cardname\">"
if card["colour"] == "red":
cardtext += "<span title=\"red\">🔴</span>"
elif card["colour"] == "orange":
cardtext += "<span title=\"orange\">🟠</span>"
elif card["colour"] == "yellow":
cardtext += "<span title=\"yellow\">🟡</span>"
elif card["colour"] == "green":
cardtext += "<span title=\"green\">🟢</span>"
elif card["colour"] == "blue":
cardtext += "<span title=\"blue\">🔵</span>"
elif card["colour"] == "purple":
cardtext += "<span title=\"purple\">🟣</span>"
elif card["colour"] == "brown":
cardtext += "<span title=\"brown\">🟤</span>"
elif card["colour"] == "gray":
cardtext += "<span title=\""
if variables.british:
cardtext += "grey"
if type(card) == dict:
if card["colour"] == "red":
cardtext += "<span title=\"red\">🔴</span>"
elif card["colour"] == "orange":
cardtext += "<span title=\"orange\">🟠</span>"
elif card["colour"] == "yellow":
cardtext += "<span title=\"yellow\">🟡</span>"
elif card["colour"] == "green":
cardtext += "<span title=\"green\">🟢</span>"
elif card["colour"] == "blue":
cardtext += "<span title=\"blue\">🔵</span>"
elif card["colour"] == "purple":
cardtext += "<span title=\"purple\">🟣</span>"
elif card["colour"] == "brown":
cardtext += "<span title=\"brown\">🟤</span>"
elif card["colour"] == "gray":
cardtext += "<span title=\""
if variables.british:
cardtext += "grey"
else:
cardtext += "gray"
cardtext += "\">⚪</span>"
elif card["colour"] == "special":
cardtext += "<span title=\"special\">✨</span>"
elif card["colour"] == "limited":
cardtext += "<span title=\"limited\">🌈</span>"
elif card["colour"] == "sig":
cardtext += "<span title=\"signature\">✍</span>"
cardtext += card["name"]
elif type(card) == str:
if card[0:4] == "sig_":
cardtext += "<span title=\"signature\">✍</span>"
elif card[:-2] in variables.anniversary:
cardtext += "<span title=\"limited\">🌈</span>"
else:
cardtext += "gray"
cardtext += "\">⚪</span>"
elif card["colour"] == "special":
cardtext += "<span title=\"special\">✨</span>"
elif card["colour"] == "limited":
cardtext += "<span title=\"limited\">🌈</span>"
elif card["colour"] == "sig":
cardtext += "<span title=\"signature\">✍</span>"
cardtext += card["name"] + "</span>"
cardcolour = deckkey[card[:-2]]["type"]
if cardcolour == "red":
cardtext += "<span title=\"red\">🔴</span>"
elif cardcolour == "orange":
cardtext += "<span title=\"orange\">🟠</span>"
elif cardcolour == "yellow":
cardtext += "<span title=\"yellow\">🟡</span>"
elif cardcolour == "green":
cardtext += "<span title=\"green\">🟢</span>"
elif cardcolour == "blue":
cardtext += "<span title=\"blue\">🔵</span>"
elif cardcolour == "purple":
cardtext += "<span title=\"purple\">🟣</span>"
elif cardcolour == "brown":
cardtext += "<span title=\"brown\">🟤</span>"
elif cardcolour == "gray":
cardtext += "<span title=\""
if variables.british:
cardtext += "grey"
else:
cardtext += "gray"
cardtext += "\">⚪</span>"
elif cardcolour == "special":
cardtext += "<span title=\"special\">✨</span>"
cardtext += card
cardtext += "</span>"
return cardtext
def portfoliogen(theportfolio,thetype,portnumber):
@ -1455,10 +1488,13 @@ def indexgen():
content.write("rainbow" + " + " + str(levelcrayons - 56))
content.write("\">(" + rank + ")</span></li>\n")
if tradepend > 0:
content.write("<li title=\"pending: " + ", ".join(halftrades) + "\">" + str(tradepend) + " card")
content.write("<li><a href=\"")
if len(variables.subfolder) > 0:
content.write("/" + variables.subfolder)
content.write("/pendtrades\" title=\"pending: " + ", ".join(halftrades) + "\">" + str(tradepend) + " card")
if tradepend > 1:
content.write("s")
content.write(" held for trades</li>\n")
content.write(" held for trades</a></li>\n")
content.write("<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\"")
if variables.newtab:
content.write(" target=\"_blank\"")
@ -2284,6 +2320,49 @@ def levelsgen():
if __name__ == "__main__":
levelsgen()
print("Building pending trades page")
def pendtradesgen():
if not os.path.isdir("build/pendtrades"):
os.mkdir("build/pendtrades")
if os.path.exists("build/pendtrades/index.html"):
os.remove("build/pendtrades/index.html")
thefile = "build/pendtrades/index.html"
headerwrite(thefile,"pending trades")
content = open(thefile,"a")
content.write("<h1>pending trades</h1>\n")
for trade in halftrades:
found = False
for event in reversed(log.log):
if found == False:
if event["event"] == "trade with " + trade:
found = True
content.write("<h2>" + trade + "</h2>\n")
content.write("<p><a href=\"" + event["url"] + "\"")
if variables.newtab:
content.write(" target=\"_blank\"")
content.write("><code>" + event["date"].strftime("%Y-%m-%d") + "</code></a></p>\n")
if event["lost"]:
content.write("<p>Offered: ")
lostlist = sorted(event["lost"])
for card in lostlist:
content.write(printcard(card))
content.write("</p>\n")
if event["pend"]:
content.write("<p>Requested: ")
pendlist = sorted(event["pend"])
position = 1
for card in pendlist:
content.write(cardtext(card))
if len(pendlist) != position:
content.write(", ")
position += 1
content.write(".</p>\n")
content.close()
footerwrite(thefile)
if __name__ == "__main__":
pendtradesgen()
print("Building portfolios page")
def portfoliosgen(colour=False):