ui.js 1.9 KB

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