diff --git a/src/xmltv.ts b/src/xmltv.ts
index b1288f1..c2d1ca8 100644
--- a/src/xmltv.ts
+++ b/src/xmltv.ts
@@ -88,6 +88,28 @@ export function buildProgramsXml(data: GridApiResponse): string {
if (event.flag.includes("New")) {
xml += ` \n`;
}
+
+ if (event.flag.includes("Live")) {
+ xml += ` \n`;
+ }
+
+ if (event.flag.includes("Premiere")) {
+ xml += ` \n`;
+ }
+
+ if (event.flag.includes("Finale")) {
+ xml += ` \n`;
+ }
+ }
+
+ if (
+ !event.flag ||
+ (event.flag &&
+ event.flag.length > 0 &&
+ !event.flag.includes("New") &&
+ !event.flag.includes("Live"))
+ ) {
+ xml += ` \n`;
}
if (event.tags && event.tags.length > 0) {
@@ -95,33 +117,26 @@ export function buildProgramsXml(data: GridApiResponse): string {
xml += ` \n`;
}
if (event.tags.includes("CC")) {
- xml += ` \n`;
+ xml += ` \n`;
}
}
- if (event.program.season) {
- xml += ` ${escapeXml(
- event.program.season,
- )}\n`;
- }
-
- if (event.program.episode) {
- xml += ` ${escapeXml(
- event.program.episode,
- )}\n`;
- }
-
- if (event.program.seriesId) {
- xml += ` ${escapeXml(
- event.program.seriesId,
- )}\n`;
- }
-
- // S01E01 and S11E22
if (event.program.season && event.program.episode) {
xml += ` ${escapeXml(
`S${event.program.season.padStart(2, "0")}E${event.program.episode.padStart(2, "0")}`,
)}\n`;
+
+ xml += ` ${escapeXml(
+ `S${event.program.season.padStart(2, "0")}E${event.program.episode.padStart(2, "0")}`,
+ )}\n`;
+
+ if (/..\d{8}\d{4}/.test(event.program.id)) {
+ xml += ` ${escapeXml(event.program.id)}\n`;
+ }
+
+ xml += ` ${escapeXml(
+ `${event.program.season} . ${event.program.episode}`,
+ )}.\n`;
}
if (event.thumbnail) {