const { create: createPlaylist } = require('../../core/playlist') const { db, logger, file } = require('../../core') const { orderBy } = require('natural-orderby') const _ = require('lodash') async function main() { await db.streams.load() let streams = await db.streams.find({}) const levels = { online: 1, blocked: 2, timeout: 3, error: 4, default: 5 } streams = orderBy( streams, [ 'channel', s => (s.channel ? '' : s.title), s => levels[s.status] || levels['default'], 'height', 'frame_rate', 'url' ], ['asc', 'asc', 'asc', 'desc', 'desc', 'asc'] ) const files = _.groupBy(streams, 'filepath') for (const filepath in files) { const playlist = createPlaylist(files[filepath], { public: false }) await file.create(filepath, playlist.toString()) } } main()