Link to member posts and coupon comments
This commit is contained in:
parent
27cb1876e3
commit
6e291f3a89
4 changed files with 72 additions and 23 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -18,3 +18,4 @@ log.py
|
||||||
trade.py
|
trade.py
|
||||||
build/user.css
|
build/user.css
|
||||||
key.html
|
key.html
|
||||||
|
members.html
|
|
@ -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)
|
||||||
|
|
78
colors.py
78
colors.py
|
@ -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:
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue