Link to member posts and coupon comments

This commit is contained in:
mez 2025-08-30 13:03:39 +01:00
parent 27cb1876e3
commit 6e291f3a89
4 changed files with 72 additions and 23 deletions

1
.gitignore vendored
View file

@ -18,3 +18,4 @@ log.py
trade.py trade.py
build/user.css build/user.css
key.html key.html
members.html

View file

@ -28,6 +28,7 @@ Python scripts to generate a mobile-friendly static site for tracking tcg cards
- =name=: the name you use in the game - =name=: the name you use in the game
- =hovertext=: text to display when hovering over the header image - =hovertext=: text to display when hovering over the header image
- =sig=: set to =True= when you have a signature card - =sig=: set to =True= when you have a signature card
- =membersdisambig=: uncomment and set to a member’s name as given in their sig card + the URL of their card post where necessary (in case of any sigs failing to link or linking incorrectly)
- =banner=: set to =True= when you have a player banner, and save this in =build/assets/= as =banner.png= - =banner=: set to =True= when you have a player banner, and save this in =build/assets/= as =banner.png=
- =lowpriority=: a list of decks you’re collecting that aren’t in mass decks - =lowpriority=: a list of decks you’re collecting that aren’t in mass decks
- =trademedium=: whether to allow trading medium-priority cards away in exchange for high-priority cards (special cards will not be listed as tradeable) - =trademedium=: whether to allow trading medium-priority cards away in exchange for high-priority cards (special cards will not be listed as tradeable)

View file

@ -26,7 +26,7 @@ except:
print("Using cached version of decklist") print("Using cached version of decklist")
with open("key.html") as decks: with open("key.html") as decks:
decksoup = BeautifulSoup(decks, "html.parser") decksoup = BeautifulSoup(decks,"html.parser")
soupdecks = decksoup.find("table",{"id":"colors"}) soupdecks = decksoup.find("table",{"id":"colors"})
souprows = soupdecks.find_all("tr") souprows = soupdecks.find_all("tr")
souprows = souprows[1:] souprows = souprows[1:]
@ -43,6 +43,38 @@ for row in souprows:
deckdict["series"] = deckseries deckdict["series"] = deckseries
deckkey[deckname] = deckdict deckkey[deckname] = deckdict
try:
request = requests.get("https://colors-tcg.eu/members.php")
print("Getting members list")
allmembers = open("members.html","w")
allmembers.write(request.text)
allmembers.close()
# need to correct some html issues
with open("members.html","r") as file:
filedata = file.read()
filedata = filedata.replace("</a></td>","</td>")
with open("members.html","w") as file:
file.write(filedata)
except:
print("Using cached version of members list")
with open("members.html") as members:
membersoup = BeautifulSoup(members,"html.parser")
tcgmembers = {}
soupmembers = membersoup.find_all("table")
soupmembers = soupmembers[1:]
for level in soupmembers:
souprows = level.find_all("tr")
souprows = souprows[1:]
for row in souprows:
soupcells = row.find_all("td")
membername = soupcells[0].text.lower()
memberlink = soupcells[2].find("a")["href"]
tcgmembers[membername] = memberlink
print("Parsing log") print("Parsing log")
cardlist = [] cardlist = []
@ -58,7 +90,7 @@ craygrey = 0
tradeout = [] tradeout = []
tradein = [] tradein = []
redeemedsketch = 0 redeemedsketch = 0
coupons = [] coupons = {}
datelist = [] datelist = []
logitems = [] logitems = []
pends = [] pends = []
@ -257,15 +289,13 @@ for event in log.log:
except: except:
pass pass
try: try:
for newcoupon in event["coupons"]: for coupon in event["coupons"]:
found = False if coupon in coupons:
for oldcoupon in coupons: coupons[coupon]["count"] += event["coupons"][coupon]
if found == False: if event["coupons"][coupon] > 0:
if newcoupon == list(oldcoupon.keys())[0]: coupons[coupon]["inurl"] = event["url"]
found = True else:
oldcoupon[newcoupon] += event["coupons"][newcoupon] coupons[coupon] = {"count":event["coupons"][coupon],"inurl":event["url"]}
if found == False:
coupons.append({newcoupon:event["coupons"][newcoupon]})
except: except:
pass pass
try: try:
@ -290,7 +320,7 @@ for event in log.log:
logitems.append(logentry) logitems.append(logentry)
logitems = logitems[::-1] logitems = logitems[::-1]
coupons = coupons[::-1] coupons = dict(reversed(list(coupons.items())))
tradepend = len(tradeout) - len(tradein) tradepend = len(tradeout) - len(tradein)
tradediff = tradeout.copy() tradediff = tradeout.copy()
@ -1513,7 +1543,20 @@ def indexgen():
if len(sigs) > 0: if len(sigs) > 0:
content.write("<h2>signatures</h2>\n<p>") content.write("<h2>signatures</h2>\n<p>")
for card in sigs: for card in sigs:
membername = card["name"][4:]
if membername == variables.name.lower():
memberlink = False
elif membername in variables.membersdisambig:
memberlink = variables.membersdisambig[membername]
elif membername in tcgmembers:
memberlink = tcgmembers[membername]
else:
memberlink = False
if memberlink:
content.write("<a href=\"" + memberlink + "\" target=\"_blank\">")
content.write(printcard(card)) content.write(printcard(card))
if memberlink:
content.write("</a>")
content.write("</p>\n") content.write("</p>\n")
if len(variables.faves) > 0: if len(variables.faves) > 0:
content.write("<h2>faves</h2>\n<p>") content.write("<h2>faves</h2>\n<p>")
@ -1524,16 +1567,19 @@ def indexgen():
if len(coupons) > 0: if len(coupons) > 0:
content.write("<h2>coupons</h2>\n<p>") content.write("<h2>coupons</h2>\n<p>")
for coupon in coupons: for coupon in coupons:
for key,value in coupon.items(): if coupons[coupon]["count"] > 0:
content.write("<a href=\"" + coupons[coupon]["inurl"] + "\" target=\"_blank\">")
content.write("<img src=\"") content.write("<img src=\"")
if len(variables.subfolder) > 0: if len(variables.subfolder) > 0:
content.write("/" + variables.subfolder) content.write("/" + variables.subfolder)
content.write("/assets/coupons/" + key + ".png\" class=\"coupon") content.write("/assets/coupons/" + coupon + ".png\" class=\"coupon")
if value == 0: if coupons[coupon]["count"] == 0:
content.write(" expired\" title=\"expired\"") content.write(" expired\" title=\"expired\"")
else: else:
content.write("\" title=\"" + str(value) + " left\"") content.write("\" title=\"" + str(coupons[coupon]["count"]) + " left\"")
content.write(" loading=\"lazy\">") content.write(" loading=\"lazy\">")
if coupons[coupon]["count"] > 0:
content.write("</a>")
content.write("</p>\n") content.write("</p>\n")
donations = [] donations = []
try: try:

View file

@ -6,6 +6,7 @@ url = ""
name = "your name" name = "your name"
hovertext = "" hovertext = ""
sig = False sig = False
# membersdisambig = {"name1":"url1","name2":"url2"}
banner = False banner = False
lowpriority = ["deckname","nameofadeck"] lowpriority = ["deckname","nameofadeck"]
trademedium = True trademedium = True