iptv/scripts/commands/database/cleanup.js

26 lines
630 B
JavaScript
Raw Normal View History

2022-02-12 23:38:07 +01:00
const { db, logger } = require('../../core')
2022-02-13 08:22:50 +01:00
const _ = require('lodash')
2022-02-12 23:38:07 +01:00
async function main() {
logger.info(`loading streams...`)
await db.streams.load()
let streams = await db.streams.find({})
logger.info(`removing broken links...`)
let removed = 0
2022-02-13 08:22:50 +01:00
const failed = _.filter(streams, { status: 'error' })
for (const stream of failed) {
const hasDuplicate = _.find(streams, s => s.channel === stream.channel && s.status !== 'error')
if (hasDuplicate) {
2022-02-12 23:38:07 +01:00
await db.streams.remove({ _id: stream._id })
removed++
}
}
2022-02-13 08:22:50 +01:00
2022-02-12 23:38:07 +01:00
db.streams.compact()
logger.info(`removed ${removed} links`)
}
main()