diff --git a/models/honkai.py b/models/honkai.py index 7ecac2e..6c3f9f1 100644 --- a/models/honkai.py +++ b/models/honkai.py @@ -20,6 +20,7 @@ reward_map = { "Dust of Alacrity": "疾速粉尘", "Condensed Aether": "凝缩以太", "Cosmic Fried Rice": "大宇宙炒饭", + "Travel Encounters": "旅情见闻", } @@ -44,27 +45,20 @@ def parse_code(tr: Tag) -> Code: tds = tr.find_all("td") code = tds[0].text.strip() try: - expire = tds[2].text.strip() - except IndexError: - expire = datetime(1970, 1, 1, 1, 0, 0, 0) + _, expire = str(tds[2]).split("
") + except (IndexError, TypeError): + _, expire = datetime(1970, 1, 1, 1, 0, 0, 0), datetime(2099, 12, 31, 23, 59, 59, 999999) if isinstance(expire, str): - if expire.endswith("?"): + try: + expire = expire.split(": ")[1].replace("", "") + if expire == "Unknown": + expire = datetime(2099, 12, 31, 23, 59, 59, 999999) + else: + expire = datetime.strptime(expire, "%B %d, %Y") + except IndexError: expire = datetime(2099, 12, 31, 23, 59, 59, 999999) - else: - expires = expire.split(" – ") - day = expires[1].split(" ")[-1] - month = expires[0].split(" ")[0] - try: - if " " not in expires[1]: - raise ValueError - month = expires[1].split(" ")[0] - except ValueError: - pass - now = datetime.now() - expire = datetime.strptime(f"{day} {month}", "%d %b") - expire = expire.replace(year=now.year, hour=23, minute=59, second=59, microsecond=999999) - expire = timezone("Asia/Shanghai").localize(expire) - expire = int(expire.timestamp() * 1000) + expire = timezone("Asia/Shanghai").localize(expire) + expire = int(expire.timestamp() * 1000) rewards = [] for reward in str(tds[1]).split("
"): reward = BeautifulSoup(reward, "lxml")