parent
8047cb67fe
commit
4638069e51
|
@ -13,8 +13,7 @@ def get_events(filepath: str) -> list[Event]:
|
||||||
date=item["from"],
|
date=item["from"],
|
||||||
end_date=item["to"],
|
end_date=item["to"],
|
||||||
name="accommodation",
|
name="accommodation",
|
||||||
title="🧳"
|
title=(
|
||||||
+ (
|
|
||||||
f'{item["location"]} Airbnb'
|
f'{item["location"]} Airbnb'
|
||||||
if item.get("operator") == "airbnb"
|
if item.get("operator") == "airbnb"
|
||||||
else item["name"]
|
else item["name"]
|
||||||
|
|
|
@ -42,7 +42,7 @@ def get_birthdays(from_date: date, filepath: str) -> list[Event]:
|
||||||
Event(
|
Event(
|
||||||
date=bday.replace(year=bday.year + offset),
|
date=bday.replace(year=bday.year + offset),
|
||||||
name="birthday",
|
name="birthday",
|
||||||
title=f'🎈 {entity["label"]} ({display_age})',
|
title=f'{entity["label"]} ({display_age})',
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -36,7 +36,7 @@ def build_events(events: list[Event]) -> list[dict[str, typing.Any]]:
|
||||||
assert e.title and e.end_date
|
assert e.title and e.end_date
|
||||||
item = {
|
item = {
|
||||||
"allDay": True,
|
"allDay": True,
|
||||||
"title": e.display_title,
|
"title": e.title_with_emoji,
|
||||||
"start": e.as_date.isoformat(),
|
"start": e.as_date.isoformat(),
|
||||||
"end": (e.end_as_date + one_day).isoformat(),
|
"end": (e.end_as_date + one_day).isoformat(),
|
||||||
"url": e.url,
|
"url": e.url,
|
||||||
|
@ -66,7 +66,7 @@ def build_events(events: list[Event]) -> list[dict[str, typing.Any]]:
|
||||||
end = (e.end_as_date if e.end_date else e.as_date) + one_day
|
end = (e.end_as_date if e.end_date else e.as_date) + one_day
|
||||||
item = {
|
item = {
|
||||||
"allDay": not e.has_time,
|
"allDay": not e.has_time,
|
||||||
"title": e.display_title,
|
"title": e.title_with_emoji,
|
||||||
"start": e.date.isoformat(),
|
"start": e.date.isoformat(),
|
||||||
"end": end.isoformat(),
|
"end": end.isoformat(),
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,7 +51,7 @@ def get_list(filepath: str) -> list[Event]:
|
||||||
name="conference",
|
name="conference",
|
||||||
date=conf.start,
|
date=conf.start,
|
||||||
end_date=conf.end,
|
end_date=conf.end,
|
||||||
title=f"🎤 {conf.display_name}",
|
title=conf.display_name,
|
||||||
url=conf.url,
|
url=conf.url,
|
||||||
going=conf.going,
|
going=conf.going,
|
||||||
)
|
)
|
||||||
|
|
|
@ -363,7 +363,7 @@ async def get_data(
|
||||||
if not dt:
|
if not dt:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
rocket_name = f'🚀{launch["rocket"]}: {launch["mission_name"] or "[no mission]"}'
|
rocket_name = f'{launch["rocket"]}: {launch["mission_name"] or "[no mission]"}'
|
||||||
e = Event(name="rocket", date=dt, title=rocket_name)
|
e = Event(name="rocket", date=dt, title=rocket_name)
|
||||||
events.append(e)
|
events.append(e)
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@ def get_events(data_dir: str) -> list[Event]:
|
||||||
date=start,
|
date=start,
|
||||||
end_date=end,
|
end_date=end,
|
||||||
name="meetup",
|
name="meetup",
|
||||||
title="👥" + item_event["title"],
|
title=item_event["title"],
|
||||||
url=item_event["eventUrl"],
|
url=item_event["eventUrl"],
|
||||||
)
|
)
|
||||||
events.append(e)
|
events.append(e)
|
||||||
|
|
|
@ -93,6 +93,23 @@ class Holiday:
|
||||||
date: datetime.date
|
date: datetime.date
|
||||||
|
|
||||||
|
|
||||||
|
emojis = {
|
||||||
|
"market": "🧺",
|
||||||
|
"us_presidential_election": "🗳️🇺🇸",
|
||||||
|
"bus_route_closure": "🚌❌",
|
||||||
|
"meetup": "👥",
|
||||||
|
"dinner": "🍷",
|
||||||
|
"party": "🍷",
|
||||||
|
"ba_voucher": "✈️",
|
||||||
|
"accommodation": "🏨", # alternative: 🧳
|
||||||
|
"flight": "✈️",
|
||||||
|
"conference": "🎤",
|
||||||
|
"rocket": "🚀",
|
||||||
|
"birthday": "🎈",
|
||||||
|
"waste_schedule": "🗑️",
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class Event:
|
class Event:
|
||||||
"""Event."""
|
"""Event."""
|
||||||
|
@ -182,3 +199,17 @@ class Event:
|
||||||
def display_title(self) -> str:
|
def display_title(self) -> str:
|
||||||
"""Name for display."""
|
"""Name for display."""
|
||||||
return self.title or self.name
|
return self.title or self.name
|
||||||
|
|
||||||
|
@property
|
||||||
|
def emoji(self) -> str | None:
|
||||||
|
"""Emoji."""
|
||||||
|
return emojis.get(self.name)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def title_with_emoji(self) -> str | None:
|
||||||
|
"""Title with optional emoji at the start."""
|
||||||
|
title = self.title or self.name
|
||||||
|
if title is None:
|
||||||
|
return None
|
||||||
|
emoji = self.emoji
|
||||||
|
return f"{emoji} {title}" if emoji else title
|
||||||
|
|
|
@ -95,7 +95,7 @@ def parse(root: lxml.html.HtmlElement) -> list[Event]:
|
||||||
Event(
|
Event(
|
||||||
name="waste_schedule",
|
name="waste_schedule",
|
||||||
date=uk_time(d, time(6, 30)),
|
date=uk_time(d, time(6, 30)),
|
||||||
title="🗑️ Backwell: " + ", ".join(services),
|
title="Backwell: " + ", ".join(services),
|
||||||
)
|
)
|
||||||
for d, services in by_date.items()
|
for d, services in by_date.items()
|
||||||
]
|
]
|
||||||
|
@ -208,6 +208,6 @@ async def get_bristol_gov_uk(
|
||||||
by_date[d].append(service)
|
by_date[d].append(service)
|
||||||
|
|
||||||
return [
|
return [
|
||||||
Event(name="waste_schedule", date=d, title="🗑️ Bristol: " + ", ".join(services))
|
Event(name="waste_schedule", date=d, title="Bristol: " + ", ".join(services))
|
||||||
for d, services in by_date.items()
|
for d, services in by_date.items()
|
||||||
]
|
]
|
||||||
|
|
|
@ -184,7 +184,7 @@
|
||||||
<div class="col-md-7 text-start">
|
<div class="col-md-7 text-start">
|
||||||
{% if event.url %}<a href="{{ event.url }}">{% endif %}
|
{% if event.url %}<a href="{{ event.url }}">{% endif %}
|
||||||
{{ event_labels.get(event.name) or event.name }}
|
{{ event_labels.get(event.name) or event.name }}
|
||||||
{%- if event.title -%}: {{ event.title }}{% endif %}
|
{%- if event.title -%}: {{ event.title_with_emoji }}{% endif %}
|
||||||
{% if event.url %}</a>{% endif %}
|
{% if event.url %}</a>{% endif %}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-1{{ cell_bg }}">
|
<div class="col-md-1{{ cell_bg }}">
|
||||||
|
|
Loading…
Reference in a new issue