index.js: play selected channel with cvlc

This commit is contained in:
He4eT 2023-12-25 17:30:57 +01:00
commit 82da03b01d

View file

@ -1,7 +1,9 @@
#!/usr/bin/env node #!/usr/bin/env node
const xml2js = require('xml2js')
const inquirer = require('inquirer') const inquirer = require('inquirer')
const xml2js = require('xml2js')
const { exec } = require('child_process');
inquirer.registerPrompt('search-list', require('inquirer-search-list')) inquirer.registerPrompt('search-list', require('inquirer-search-list'))
const channelsUrl = 'https://somafm.com/channels.xml' const channelsUrl = 'https://somafm.com/channels.xml'
@ -22,7 +24,7 @@ const extractChannels = (json) =>
const fuzzySelect = (choices) => const fuzzySelect = (choices) =>
inquirer.prompt([{ inquirer.prompt([{
type: "search-list", type: "search-list",
message: "Select SomaFM channel", message: "SomaFM channel",
name: "channel", name: "channel",
choices, choices,
}]) }])
@ -38,9 +40,8 @@ const shapeChannels = (channels) =>
value: channel.highestpls[0]['_'], value: channel.highestpls[0]['_'],
})) }))
const playChannel = ({channel}) => { const playChannel = ({channel}) =>
console.log(channel) exec(`cvlc ${channel}`)
}
downloadChannelsXML(channelsUrl) downloadChannelsXML(channelsUrl)
.then(xml2js.parseStringPromise) .then(xml2js.parseStringPromise)