Include URL in live.yaml

This commit is contained in:
Edward Betts 2025-08-04 20:44:30 +01:00
parent aa22d76699
commit ff0d81f32c
2 changed files with 21 additions and 19 deletions

View file

@ -7,6 +7,7 @@ import os
import re
import smtplib
import warnings
from dataclasses import dataclass
from datetime import date
from email.mime.text import MIMEText
from email.utils import formatdate, make_msgid
@ -168,20 +169,15 @@ def parse_opengraph_tags(html: str) -> dict[str, str]:
return og_tags
@dataclass
class Conference:
"""Conference."""
name: str
src_url: str
year: int
response: None | requests.models.Response
def __init__(self, name: str, src_url: str, year: int):
"""Init."""
self.name = name
self.src_url = src_url
self.year = year
self.response = None
response: requests.models.Response | None = None
redirect_to_url: str | None = None
@property
def url(self) -> str:
@ -246,6 +242,7 @@ class Conference:
):
body = f"{self.name}\n{self.url}\n"
else:
self.redirect_to_url = redirect_to_url
body = f"{self.name}\n{self.url} redirects to {redirect_to_url}\n"
body += f"Web page title: {msg}{og}" ""
@ -277,12 +274,6 @@ def send_mail(subject: str, body: str) -> None:
s.quit()
def check(name: str, src_url: str, year: int) -> bool:
"""Check to see if conference site is live."""
conf = Conference(name, src_url, year)
return conf.check_web_site()
def find_new_conference_web_sites(
today: date, live: list[LiveConference]
) -> list[LiveConference]:
@ -293,11 +284,21 @@ def find_new_conference_web_sites(
live_set = {(c["conference"], c["year"]) for c in live}
for name, src_url in load_yaml("conferences").items():
new += [
{"conference": name, "year": year, "live": today}
for year in (this_year, this_year + 1)
if (name, year) not in live_set and check(name, src_url, year)
]
for year in (this_year, this_year + 1):
if (name, year) in live_set:
continue
conf = Conference(name, src_url, year)
if not conf.check_web_site():
continue
c: LiveConference = {
"conference": name,
"year": year,
"live": today,
"url": conf.url,
}
if conf.redirect_to_url:
c["redirect_to_url"] = conf.redirect_to_url
new.append(c)
return new

View file

@ -28,6 +28,7 @@ class LiveConference(typing.TypedDict, total=False):
year: int
live: date
url: str | None
redirect_to_url: str | None
def load_yaml(name: str) -> typing.Any: