ui.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. // const radiomanifest = require('radiomanifest.js')
  2. function updateNow(radio) {
  3. var box = document.querySelector('#now-info')
  4. const show = radio.getSchedule().getNowShow()
  5. try {
  6. var showText = show.getName() + '\nfeed: ' + show.getWebsite()
  7. } catch (e) {
  8. var showText = String(show)
  9. }
  10. var text = radio.getName() + ' - ' + radio.getDescription() + ' -- ' + showText
  11. box.textContent = text
  12. }
  13. async function fai () {
  14. const radio = await radiomanifest.get('https://radiomanifest.degenerazione.xyz/v0.2/examples/full-ondarossa')
  15. console.log('radio?', radio)
  16. const s = radio.getStreaming()
  17. console.log(s.sources)
  18. console.log(s.getOptions())
  19. console.log(s.getSource(s.getOptions()[0]))
  20. console.log(s.getSource())
  21. var audioEl = document.querySelector('#player audio')
  22. var urls = await s.pickURLs()
  23. console.log('audios', urls)
  24. urls.forEach( function(url) {
  25. var srcEl = document.createElement("source")
  26. srcEl.setAttribute('src', url)
  27. console.log('src', srcEl, url)
  28. audioEl.appendChild(srcEl)
  29. })
  30. const showList = document.querySelector('#shows > ul')
  31. for (const show of radio.getShows()) {
  32. const item = document.createElement('li')
  33. const link = document.createElement('a')
  34. link.dataset['show'] = show.getName()
  35. link.textContent = show.getName()
  36. link.setAttribute('href', show.getWebsite())
  37. item.appendChild(link)
  38. showList.appendChild(item)
  39. }
  40. showList.addEventListener('mouseenter', function (evt) {
  41. if (evt.target.dataset['show'] === undefined)
  42. return;
  43. const info = document.querySelector('#show-info')
  44. info.textContent = radio.getShowByName(evt.target.dataset['show']).getFeed()
  45. }, true)
  46. updateNow(radio)
  47. console.log(radio.getSchedule())
  48. setInterval(function() { updateNow(radio) }, 2000)
  49. }
  50. fai()