diff --git a/scripts/core/cid.js b/scripts/core/cid.js new file mode 100644 index 0000000000..7be12caf3b --- /dev/null +++ b/scripts/core/cid.js @@ -0,0 +1,41 @@ +const file = require('./file') +const transliteration = require('transliteration') + +const cid = {} + +cid.generate = function (title, filepath) { + const name = parseChannelName(title) + const code = parseCountryCode(filepath) + + if (name && code) { + const slug = transliteration + .transliterate(name) + .replace(/\+/gi, 'Plus') + .replace(/[^a-z\d]+/gi, '') + + return `${slug}.${code.toLowerCase()}` + } + + return null +} + +module.exports = cid + +function parseCountryCode(filepath) { + if (!filepath) return null + const basename = file.basename(filepath) + const [code] = basename.split('_') || [null] + + return code +} + +function parseChannelName(title) { + return title + .trim() + .split(' ') + .map(s => s.trim()) + .filter(s => { + return !/\[|\]/i.test(s) && !/\((\d+)P\)/i.test(s) + }) + .join(' ') +}