Selaa lähdekoodia

fix navidrome nothing playing, simplify widget params

Michael Shamoon 2 vuotta sitten
vanhempi
commit
31b644c939
2 muutettua tiedostoa jossa 13 lisäystä ja 5 poistoa
  1. 12 4
      src/widgets/navidrome/component.jsx
  2. 1 1
      src/widgets/navidrome/widget.js

+ 12 - 4
src/widgets/navidrome/component.jsx

@@ -11,11 +11,11 @@ export default function Component({ service }) {
 
 
   const { data: navidromeData, error: navidromeError } = useWidgetAPI(widget, "getNowPlaying");
   const { data: navidromeData, error: navidromeError } = useWidgetAPI(widget, "getNowPlaying");
 
 
-  if (navidromeError) {
+  if (navidromeError || navidromeData?.error || navidromeData?.["subsonic-response"]?.error) {
     return <Container error={t("widget.api_error")} />;
     return <Container error={t("widget.api_error")} />;
   }
   }
 
 
-  if (!navidromeData || Object.keys(navidromeData["subsonic-response"].nowPlaying).length === 0) {
+  if (!navidromeData) {
     return (
     return (
       <Container service={service}>
       <Container service={service}>
         <Block label="navidrome.user" />
         <Block label="navidrome.user" />
@@ -26,10 +26,18 @@ export default function Component({ service }) {
     );
     );
   }
   }
 
 
-  const nowPlaying = Object.values(navidromeData["subsonic-response"].nowPlaying.entry);
+  const nowPlaying = navidromeData["subsonic-response"].nowPlaying;
+  if (!nowPlaying.entry) {
+    // nothing playing
+    return (
+      <Container service={service} />
+    );
+  }
+
+  const nowPlayingEntries = Object.values(nowPlaying.entry);
   const songList = [];
   const songList = [];
 
 
-  nowPlaying.forEach(userPlay => {
+  nowPlayingEntries.forEach(userPlay => {
       const playing = (
       const playing = (
         <Container service={service}>
         <Container service={service}>
           <Block label="navidrome.user" value={userPlay.username} />
           <Block label="navidrome.user" value={userPlay.username} />

+ 1 - 1
src/widgets/navidrome/widget.js

@@ -1,7 +1,7 @@
 import genericProxyHandler from "utils/proxy/handlers/generic";
 import genericProxyHandler from "utils/proxy/handlers/generic";
 
 
 const widget = {
 const widget = {
-  api: "{url}/rest/{endpoint}?u={user}&t={token}&s={salt}&v={version}&c={client}&f=json",
+  api: "{url}/rest/{endpoint}?u={user}&t={token}&s={salt}&v=1.16.1&c=homepage&f=json",
   proxyHandler: genericProxyHandler,
   proxyHandler: genericProxyHandler,
 
 
   mappings: {
   mappings: {