Add weekly acrostics function

This commit is contained in:
mez 2025-08-09 23:46:50 +01:00
parent 481a23da05
commit bf4e96263a

88
weekly.py Normal file
View file

@ -0,0 +1,88 @@
import log
import datetime
startdate = input("Enter the start date (MMDD): ")
themonth = int(startdate[0:2])
theday = int(startdate[2:4])
urls = []
for event in log.log:
if event["date"].year == datetime.datetime.today().year:
if event["date"].month >= themonth:
if event["date"].day >= theday:
if "trade with " in event["event"]:
try:
if event["received"]:
urls.append(event["url"])
except:
pass
candidates = []
for event in log.log:
if event["url"] in urls:
try:
for card in event["received"]:
if "sig_" not in card:
carddict = {}
carddict["card"] = card
carddict["player"] = event["event"][11:]
carddict["url"] = event["url"]
candidates.append(carddict)
except:
pass
try:
for card in event["lost"]:
if "sig_" not in card:
carddict = {}
carddict["card"] = card
carddict["player"] = event["event"][11:]
carddict["url"] = event["url"]
candidates.append(carddict)
except:
pass
maxcards = {}
for card in candidates:
theplayer = card["player"]
if theplayer in maxcards:
maxcards[theplayer] += 1
else:
maxcards[theplayer] = 1
for player in maxcards:
maxcards[player] = int(maxcards[player] / 2)
word = input("Enter the weekly word: ").replace(" ","").lower()
wordspace = []
places = len(word)
while places > 0:
wordspace.append("")
places -= 1
for card in candidates:
wordindex = 0
go = True
theplayer = card["player"]
if maxcards[theplayer] > 0:
for space in wordspace:
if go:
if space == "":
if word[wordindex] in card["card"]:
newspace = word[wordindex].upper() + " " + card["card"] + " – <a href=\"" + card["url"] + "\">" + card["player"] + "</a>"
wordspace[wordindex] = newspace
go = False
theplayer = card["player"]
maxcards[theplayer] -= 1
wordindex += 1
remaining = []
spaceindex = 0
for space in wordspace:
if space == "":
remaining.append(word[spaceindex].upper())
spaceindex += 1
if len(remaining) > 0:
print("Still need " + ", ".join(remaining))
else:
print("\n" + "\n".join(wordspace) + "\n")