diff --git a/src/dlhdhr/epg/program.py b/src/dlhdhr/epg/program.py index 1c51573..056d120 100644 --- a/src/dlhdhr/epg/program.py +++ b/src/dlhdhr/epg/program.py @@ -1,5 +1,5 @@ import datetime -from dataclasses import dataclass +from dataclasses import dataclass, field from xml.etree.ElementTree import Element, SubElement from dlhdhr.dlhd import DLHDChannel @@ -17,13 +17,14 @@ class Program: end_time: datetime.datetime title: str description: str - tags: list[str] - subtitle: str | None - thumbnail: str | None - season: int | None - episode: int | None - rating: Rating | None - release_year: str | None + tags: list[str] = field(default_factory=list) + subtitle: str | None = None + thumbnail: str | None = None + season: int | None = None + episode: int | None = None + rating: Rating | None = None + release_year: str | None = None + dd_progid: str | None = None @property def duration_minutes(self) -> int: @@ -54,14 +55,16 @@ class Program: if self.thumbnail: SubElement(programme, "icon", attrib={"src": self.thumbnail}) - if self.season or self.episode: - season_id = self.season or "" - episode_id = self.episode or "" - SubElement(programme, "episode-num", attrib={"system": "xmltv_ns"}).text = f"{season_id}.{episode_id}." + if self.season and self.episode: if self.season and self.episode: + SubElement( + programme, "episode-num", attrib={"system": "xmltv_ns"} + ).text = f"{self.season}.{self.episode}." SubElement( programme, "episode-num", attrib={"system": "onscreen"} ).text = f"S{self.season} E{self.episode}" + if self.dd_progid: + SubElement(programme, "episode-num", attrib={"system": "dd_progid"}).text = self.dd_progid if self.rating: rating = SubElement(programme, "rating", attrib={"system": self.rating.system}) diff --git a/src/dlhdhr/epg/zap2it.py b/src/dlhdhr/epg/zap2it.py index 1cdf1b9..96bcee6 100644 --- a/src/dlhdhr/epg/zap2it.py +++ b/src/dlhdhr/epg/zap2it.py @@ -107,8 +107,9 @@ class Zap2it: title=evt_data["program"]["title"], subtitle=evt_data["program"].get("episodeTitle") or None, description=evt_data["program"]["shortDesc"], - season=evt_data["program"]["season"], - episode=evt_data["program"]["episode"], + season=evt_data["program"]["season"] or None, + episode=evt_data["program"]["episode"] or None, + dd_progid=evt_data["program"].get("tmsId"), tags=evt_data["tags"], release_year=evt_data["program"]["releaseYear"], thumbnail=f"https://zap2it.tmsimg.com/assets/{evt_data['thumbnail']}.jpg?w=165",