26 lines
		
	
	
		
			730 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			730 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 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
 | |
| }
 |