parent
3c73b000df
commit
c6d8668e69
@ -1,6 +1,50 @@
|
|||||||
import Emby from "./emby";
|
import useSWR from "swr";
|
||||||
|
import { useTranslation } from "react-i18next";
|
||||||
|
|
||||||
|
import Widget from "../widget";
|
||||||
|
import Block from "../block";
|
||||||
|
|
||||||
|
import { formatApiUrl } from "utils/api-helpers";
|
||||||
|
|
||||||
// Jellyfin and Emby share the same API, so proxy the Emby widget to Jellyfin.
|
|
||||||
export default function Jellyfin({ service }) {
|
export default function Jellyfin({ service }) {
|
||||||
return <Emby service={service} />;
|
const { t } = useTranslation();
|
||||||
|
|
||||||
|
const config = service.widget;
|
||||||
|
|
||||||
|
const { data: sessionsData, error: sessionsError } = useSWR(formatApiUrl(config, "Sessions"));
|
||||||
|
|
||||||
|
if (sessionsError) {
|
||||||
|
return <Widget error={t("widget.api_error")} />;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!sessionsData) {
|
||||||
|
return (
|
||||||
|
<Widget>
|
||||||
|
<Block label={t("emby.playing")} />
|
||||||
|
<Block label={t("emby.transcoding")} />
|
||||||
|
<Block label={t("emby.bitrate")} />
|
||||||
|
</Widget>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(sessionsData);
|
||||||
|
|
||||||
|
const playing = sessionsData.filter((session) => session?.NowPlayingItem);
|
||||||
|
const transcoding = sessionsData.filter(
|
||||||
|
(session) => session?.PlayState && session.PlayState.PlayMethod === "Transcode"
|
||||||
|
);
|
||||||
|
|
||||||
|
const bitrate = playing.reduce(
|
||||||
|
(acc, session) =>
|
||||||
|
acc + session.NowPlayingQueueFullItems[0].MediaSources.reduce((acb, source) => acb + source.Bitrate, 0),
|
||||||
|
0
|
||||||
|
);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Widget>
|
||||||
|
<Block label={t("emby.playing")} value={playing.length} />
|
||||||
|
<Block label={t("emby.transcoding")} value={transcoding.length} />
|
||||||
|
<Block label={t("emby.bitrate")} value={t("common.bitrate", { value: bitrate })} />
|
||||||
|
</Widget>
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in new issue