iptv/scripts/commands/api/generate.js

29 lines
700 B
JavaScript
Raw Normal View History

2023-04-27 16:41:54 +02:00
const { logger, db, file } = require('../../core')
2022-02-12 23:40:38 +01:00
const _ = require('lodash')
2022-02-13 09:50:57 +01:00
const PUBLIC_DIR = process.env.PUBLIC_DIR || '.api'
2022-02-12 23:40:38 +01:00
async function main() {
2023-04-27 16:41:54 +02:00
logger.info(`loading streams...`)
2022-02-12 23:40:38 +01:00
await db.streams.load()
2023-04-27 16:41:54 +02:00
2022-02-12 23:40:38 +01:00
let streams = await db.streams.find({})
2022-02-13 08:29:11 +01:00
streams = _.sortBy(streams, 'channel')
2022-02-12 23:40:38 +01:00
streams = streams.map(stream => {
2022-08-13 19:43:40 +02:00
let data = {
2022-02-13 03:42:39 +01:00
channel: stream.channel,
2022-02-12 23:40:38 +01:00
url: stream.url,
2022-02-13 05:16:59 +01:00
http_referrer: stream.http_referrer,
2023-04-27 16:41:54 +02:00
user_agent: stream.user_agent
2022-08-10 02:41:06 +02:00
}
return data
2022-02-12 23:40:38 +01:00
})
2023-04-27 16:41:54 +02:00
logger.info(`found ${streams.length} streams`)
2022-02-12 23:40:38 +01:00
2023-04-27 16:41:54 +02:00
logger.info('saving to .api/streams.json...')
2022-02-12 23:40:38 +01:00
await file.create(`${PUBLIC_DIR}/streams.json`, JSON.stringify(streams))
}
main()