Skip to content

Commit 6e6fa26

Browse files
committed
fix: series and episode info
Related to #58
1 parent 421d0ad commit 6e6fa26

File tree

1 file changed

+34
-19
lines changed

1 file changed

+34
-19
lines changed

src/xmltv.ts

Lines changed: 34 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -88,40 +88,55 @@ export function buildProgramsXml(data: GridApiResponse): string {
8888
if (event.flag.includes("New")) {
8989
xml += ` <new />\n`;
9090
}
91+
92+
if (event.flag.includes("Live")) {
93+
xml += ` <live />\n`;
94+
}
95+
96+
if (event.flag.includes("Premiere")) {
97+
xml += ` <premiere />\n`;
98+
}
99+
100+
if (event.flag.includes("Finale")) {
101+
xml += ` <last-chance />\n`;
102+
}
103+
}
104+
105+
if (
106+
!event.flag ||
107+
(event.flag &&
108+
event.flag.length > 0 &&
109+
!event.flag.includes("New") &&
110+
!event.flag.includes("Live"))
111+
) {
112+
xml += ` <previously-shown />\n`;
91113
}
92114

93115
if (event.tags && event.tags.length > 0) {
94116
if (event.tags.includes("Stereo")) {
95117
xml += ` <audio type="stereo" />\n`;
96118
}
97119
if (event.tags.includes("CC")) {
98-
xml += ` <audio type="cc" />\n`;
120+
xml += ` <subtitles type="teletext" />\n`;
99121
}
100122
}
101123

102-
if (event.program.season) {
103-
xml += ` <episode-num system="season">${escapeXml(
104-
event.program.season,
124+
if (event.program.season && event.program.episode) {
125+
xml += ` <episode-num system="onscreen">${escapeXml(
126+
`S${event.program.season.padStart(2, "0")}E${event.program.episode.padStart(2, "0")}`,
105127
)}</episode-num>\n`;
106-
}
107128

108-
if (event.program.episode) {
109-
xml += ` <episode-num system="episode">${escapeXml(
110-
event.program.episode,
129+
xml += ` <episode-num system="common">${escapeXml(
130+
`S${event.program.season.padStart(2, "0")}E${event.program.episode.padStart(2, "0")}`,
111131
)}</episode-num>\n`;
112-
}
113132

114-
if (event.program.seriesId) {
115-
xml += ` <episode-num system="series">${escapeXml(
116-
event.program.seriesId,
117-
)}</episode-num>\n`;
118-
}
133+
if (/..\d{8}\d{4}/.test(event.program.id)) {
134+
xml += ` <episode-num system="dd_progid">${escapeXml(event.program.id)}</episode-num>\n`;
135+
}
119136

120-
// S01E01 and S11E22
121-
if (event.program.season && event.program.episode) {
122-
xml += ` <episode-num system="onscreen">${escapeXml(
123-
`S${event.program.season.padStart(2, "0")}E${event.program.episode.padStart(2, "0")}`,
124-
)}</episode-num>\n`;
137+
xml += ` <episode-num system="xmltv_ns">${escapeXml(
138+
`${event.program.season} . ${event.program.episode}`,
139+
)}.</episode-num>\n`;
125140
}
126141

127142
if (event.thumbnail) {

0 commit comments

Comments
 (0)