const _ = require('lodash') module.exports = async function (streams = []) { streams = _.filter(streams, stream => stream.is_nsfw === false) let languages = [] streams.forEach(stream => { languages = languages.concat(stream.languages) }) languages = _.uniqBy(languages, 'code') languages = _.sortBy(languages, 'name') const output = [] for (const language of languages) { let items = _.filter(streams, { languages: [{ code: language.code }] }) if (items.length) { output.push({ filepath: `languages/${language.code}.m3u`, items }) } } let items = _.filter(streams, stream => !stream.languages.length) output.push({ filepath: 'languages/undefined.m3u', items }) return output }