iptv/scripts/commands/update-playlists.js
2022-02-07 09:25:14 +03:00

28 lines
736 B
JavaScript

const _ = require('lodash')
const { create: createPlaylist } = require('../core/playlist')
const { db, logger, file } = require('../core')
async function main() {
await db.streams.load()
let items = await db.streams
.find({})
.sort({ name: 1, 'status.level': 1, 'resolution.height': -1, url: 1 })
const files = _.groupBy(items, 'filepath')
for (const filepath in files) {
let items = files[filepath]
items = items.sort(naturalOrder)
const playlist = createPlaylist(items, { public: false })
await file.create(filepath, playlist.toString())
}
}
main()
function naturalOrder(a, b) {
return a.channel_name.localeCompare(b.channel_name, undefined, {
numeric: true,
sensitivity: 'base'
})
}