From 0133cb28b02a1c780c2d11d4a6b232e5ccdcb99b Mon Sep 17 00:00:00 2001 From: Aleksandr Statciuk Date: Wed, 19 Jan 2022 16:28:49 +0300 Subject: [PATCH] Delete xml.js --- scripts/core/index.js | 1 - scripts/core/xml.js | 102 ------------------------------------------ 2 files changed, 103 deletions(-) delete mode 100644 scripts/core/xml.js diff --git a/scripts/core/index.js b/scripts/core/index.js index c72476e8..d6ac705f 100644 --- a/scripts/core/index.js +++ b/scripts/core/index.js @@ -3,5 +3,4 @@ exports.logger = require('./logger') exports.file = require('./file') exports.parser = require('./parser') exports.timer = require('./timer') -exports.xml = require('./xml') exports.markdown = require('./markdown') diff --git a/scripts/core/xml.js b/scripts/core/xml.js deleted file mode 100644 index 6e9eca22..00000000 --- a/scripts/core/xml.js +++ /dev/null @@ -1,102 +0,0 @@ -const _ = require('lodash') -const dayjs = require('dayjs') -const utc = require('dayjs/plugin/utc') -dayjs.extend(utc) - -const xml = {} - -xml.create = function ({ channels, programs }) { - let output = `\n` - for (let channel of channels) { - output += `` - output += `${escapeString(channel.name)}` - if (channel.logo) output += `` - if (channel.site) output += `https://${channel.site}` - output += `\n` - } - - for (let program of programs) { - if (!program) continue - - const start = program.start ? dayjs.unix(program.start).utc().format('YYYYMMDDHHmmss ZZ') : '' - const stop = program.stop ? dayjs.unix(program.stop).utc().format('YYYYMMDDHHmmss ZZ') : '' - - if (start && stop) { - output += `` - - program.title.forEach(title => { - output += `${escapeString(title.value)}` - }) - - program.description.forEach(description => { - output += `${escapeString(description.value)}` - }) - - program.categories.forEach(category => { - output += `${escapeString(category.value)}` - }) - - if (program.season && program.episode) { - const episodeNum = { - xmltv_ns: createXMLTVNS(program.season, program.episode), - onscreen: createOnScreen(program.season, program.episode) - } - - for (const [system, value] of Object.entries(episodeNum)) { - output += `${value}` - } - } - - if (program.image) output += `` - - output += '\n' - } - } - - output += '' - - return output -} - -module.exports = xml - -function escapeString(string, defaultValue = '') { - if (!string) return defaultValue - - const regex = new RegExp( - '((?:[\0-\x08\x0B\f\x0E-\x1F\uFFFD\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]))|([\\x7F-\\x84]|[\\x86-\\x9F]|[\\uFDD0-\\uFDEF]|(?:\\uD83F[\\uDFFE\\uDFFF])|(?:\\uD87F[\\uDF' + - 'FE\\uDFFF])|(?:\\uD8BF[\\uDFFE\\uDFFF])|(?:\\uD8FF[\\uDFFE\\uDFFF])|(?:\\uD93F[\\uDFFE\\uD' + - 'FFF])|(?:\\uD97F[\\uDFFE\\uDFFF])|(?:\\uD9BF[\\uDFFE\\uDFFF])|(?:\\uD9FF[\\uDFFE\\uDFFF])' + - '|(?:\\uDA3F[\\uDFFE\\uDFFF])|(?:\\uDA7F[\\uDFFE\\uDFFF])|(?:\\uDABF[\\uDFFE\\uDFFF])|(?:\\' + - 'uDAFF[\\uDFFE\\uDFFF])|(?:\\uDB3F[\\uDFFE\\uDFFF])|(?:\\uDB7F[\\uDFFE\\uDFFF])|(?:\\uDBBF' + - '[\\uDFFE\\uDFFF])|(?:\\uDBFF[\\uDFFE\\uDFFF])(?:[\\0-\\t\\x0B\\f\\x0E-\\u2027\\u202A-\\uD7FF\\' + - 'uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|' + - '(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]))', - 'g' - ) - - string = String(string || '').replace(regex, '') - - return string - .replace(/&/g, '&') - .replace(//g, '>') - .replace(/"/g, '"') - .replace(/'/g, ''') - .replace(/\n|\r/g, ' ') - .replace(/ +/g, ' ') - .trim() -} - -function createXMLTVNS(s, e) { - return `${s - 1}.${e - 1}.0/1` -} - -function createOnScreen(s, e) { - s = _.padStart(s, 2, '0') - e = _.padStart(e, 2, '0') - - return `S${s}E${e}` -}