diff --git a/services/generate-xmltv.ts b/services/generate-xmltv.ts index c7fd221..b4c9427 100644 --- a/services/generate-xmltv.ts +++ b/services/generate-xmltv.ts @@ -4,6 +4,23 @@ import moment from 'moment'; import { db } from './database'; +const formatCategories = categories => { + const tagList = []; + for (const category of categories){ + tagList.push({ + category: [ + { + _attr: { + 'lang': 'en', + }, + }, + category + ] + }); + } + return tagList; +} + export const generateXml = async (numChannels: number, startChannel: number) => { const wrap: any = { tv: [ @@ -81,9 +98,10 @@ export const generateXml = async (numChannels: number, startChannel: number) => }, ], }, + ...formatCategories((entry as any).categories) ], }); } return xml(wrap); -} \ No newline at end of file +} diff --git a/services/get-events.ts b/services/get-events.ts index 16203fd..a567fda 100644 --- a/services/get-events.ts +++ b/services/get-events.ts @@ -3,6 +3,16 @@ import moment from 'moment'; import { db } from './database'; +const parseCategories = event => { + const categories = ['Sports']; + for (const classifier of [event.category, event.subcategory, event.sport, event.league]){ + if (classifier !== null && classifier.name !== null){ + categories.push(classifier.name); + } + } + return [...new Set(categories)]; +} + const parseAirings = async events => { for (const event of events) { const entryExists = await db.entries.findOne({id: event.id}); @@ -18,6 +28,7 @@ const parseAirings = async events => { end: moment(event.startDateTime).add(event.duration, 'seconds').valueOf(), feed: event.feedName, image: event.image?.url, + categories: parseCategories(event) }); } }