@@ -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