Skip to content

Commit 28c76b9

Browse files
committed
apps/schedule/frab_exporter: handle slugification in exporter
1 parent f1442c7 commit 28c76b9

1 file changed

Lines changed: 11 additions & 2 deletions

File tree

apps/schedule/frab_exporter.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import re
12
from collections.abc import Sequence
23
from dataclasses import dataclass, field
34
from datetime import datetime, time, timedelta
@@ -85,6 +86,14 @@ def get_day_start_end(self, dt: datetime, start_time: time = time(4, 0)) -> tupl
8586

8687
return start_dt, end_dt
8788

89+
def slugify(self, title: str) -> str:
90+
title = re.sub(WHITESPACE_REGEX, "-", title)
91+
title = title.lower()
92+
title = unicodedata.normalize("NFD", title).encode("ASCII", "ignore").decode()
93+
title = re.sub(FRAB_SLUG_REGEX, "", title)
94+
title = title.strip("-")
95+
return title
96+
8897
@cached_property
8998
def schedule(self):
9099
# This is basically a reimplementation of get_schedule_item_dicts_flat
@@ -230,7 +239,7 @@ def run(self):
230239
flat_sid["occurrences"][0]["end_date"],
231240
),
232241
"room": room["name"],
233-
"slug": f"""emf{event_year()}-{flat_sid["id"]}-{flat_sid["occurrences"][0]["occurrence_num"]}-{flat_sid["slug"]}""",
242+
"slug": f"""emf{event_year()}-{flat_sid["id"]}-{flat_sid["occurrences"][0]["occurrence_num"]}-{self.slugify(flat_sid["title"])}""",
234243
"url": flat_sid["link"],
235244
"title": flat_sid["title"],
236245
"subtitle": "",
@@ -359,7 +368,7 @@ def add_event(self, room: Element, room_name: str, flat_sid: ScheduleItemDict) -
359368
self._add_sub_with_text(event, "abstract", flat_sid["description"])
360369
self._add_sub_with_text(event, "description", "")
361370

362-
slug = f"""emf{event_year()}-{flat_sid["id"]}-{flat_sid["occurrences"][0]["occurrence_num"]}-{flat_sid["slug"]}"""
371+
slug = f"""emf{event_year()}-{flat_sid["id"]}-{flat_sid["occurrences"][0]["occurrence_num"]}-{self.slugify(flat_sid["title"])}"""
363372
self._add_sub_with_text(event, "slug", slug)
364373

365374
self._add_sub_with_text(event, "subtitle", "")

0 commit comments

Comments
 (0)