diff --git a/.gitignore b/.gitignore index 3b9b13c..38c82e2 100644 --- a/.gitignore +++ b/.gitignore @@ -17,4 +17,5 @@ variables.py log.py trade.py build/user.css -key.html \ No newline at end of file +key.html +members.html \ No newline at end of file diff --git a/README.org b/README.org index 79ab3af..8cf734f 100644 --- a/README.org +++ b/README.org @@ -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 - =hovertext=: text to display when hovering over the header image - =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= - =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) diff --git a/colors.py b/colors.py index 0e9f823..c44648e 100644 --- a/colors.py +++ b/colors.py @@ -26,7 +26,7 @@ except: print("Using cached version of decklist") with open("key.html") as decks: - decksoup = BeautifulSoup(decks, "html.parser") + decksoup = BeautifulSoup(decks,"html.parser") soupdecks = decksoup.find("table",{"id":"colors"}) souprows = soupdecks.find_all("tr") souprows = souprows[1:] @@ -43,6 +43,38 @@ for row in souprows: deckdict["series"] = deckseries 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("","") + 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") cardlist = [] @@ -58,7 +90,7 @@ craygrey = 0 tradeout = [] tradein = [] redeemedsketch = 0 -coupons = [] +coupons = {} datelist = [] logitems = [] pends = [] @@ -257,15 +289,13 @@ for event in log.log: except: pass try: - for newcoupon in event["coupons"]: - found = False - for oldcoupon in coupons: - if found == False: - if newcoupon == list(oldcoupon.keys())[0]: - found = True - oldcoupon[newcoupon] += event["coupons"][newcoupon] - if found == False: - coupons.append({newcoupon:event["coupons"][newcoupon]}) + for coupon in event["coupons"]: + if coupon in coupons: + coupons[coupon]["count"] += event["coupons"][coupon] + if event["coupons"][coupon] > 0: + coupons[coupon]["inurl"] = event["url"] + else: + coupons[coupon] = {"count":event["coupons"][coupon],"inurl":event["url"]} except: pass try: @@ -290,7 +320,7 @@ for event in log.log: logitems.append(logentry) logitems = logitems[::-1] -coupons = coupons[::-1] +coupons = dict(reversed(list(coupons.items()))) tradepend = len(tradeout) - len(tradein) tradediff = tradeout.copy() @@ -1513,7 +1543,20 @@ def indexgen(): if len(sigs) > 0: content.write("

signatures

\n

") 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("") content.write(printcard(card)) + if memberlink: + content.write("") content.write("

\n") if len(variables.faves) > 0: content.write("

faves

\n

") @@ -1524,16 +1567,19 @@ def indexgen(): if len(coupons) > 0: content.write("

coupons

\n

") for coupon in coupons: - for key,value in coupon.items(): - content.write(" 0: - content.write("/" + variables.subfolder) - content.write("/assets/coupons/" + key + ".png\" class=\"coupon") - if value == 0: - content.write(" expired\" title=\"expired\"") - else: - content.write("\" title=\"" + str(value) + " left\"") - content.write(" loading=\"lazy\">") + if coupons[coupon]["count"] > 0: + content.write("") + content.write(" 0: + content.write("/" + variables.subfolder) + content.write("/assets/coupons/" + coupon + ".png\" class=\"coupon") + if coupons[coupon]["count"] == 0: + content.write(" expired\" title=\"expired\"") + else: + content.write("\" title=\"" + str(coupons[coupon]["count"]) + " left\"") + content.write(" loading=\"lazy\">") + if coupons[coupon]["count"] > 0: + content.write("") content.write("

\n") donations = [] try: diff --git a/variables-template.py b/variables-template.py index b32da46..d649751 100644 --- a/variables-template.py +++ b/variables-template.py @@ -6,6 +6,7 @@ url = "" name = "your name" hovertext = "" sig = False +# membersdisambig = {"name1":"url1","name2":"url2"} banner = False lowpriority = ["deckname","nameofadeck"] trademedium = True