From bf4e96263a106a2dced8bfb9e6341df6a03e196f Mon Sep 17 00:00:00 2001 From: Mez Date: Sat, 9 Aug 2025 23:46:50 +0100 Subject: [PATCH] Add weekly acrostics function --- weekly.py | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 weekly.py diff --git a/weekly.py b/weekly.py new file mode 100644 index 0000000..28500f0 --- /dev/null +++ b/weekly.py @@ -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"] + " – " + card["player"] + "" + 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") +