From d0ec7b06b38ffa2dd1fce60dcc0caab8f277270f Mon Sep 17 00:00:00 2001 From: Georges-Antoine Assi Date: Fri, 25 Aug 2023 10:55:56 -0400 Subject: [PATCH] Switch to new opds stats endpoint --- src/widgets/calibreweb/component.jsx | 17 +++++++---------- src/widgets/calibreweb/proxy.js | 10 +--------- src/widgets/calibreweb/widget.js | 10 ++-------- 3 files changed, 10 insertions(+), 27 deletions(-) diff --git a/src/widgets/calibreweb/component.jsx b/src/widgets/calibreweb/component.jsx index 450297af..f680938f 100644 --- a/src/widgets/calibreweb/component.jsx +++ b/src/widgets/calibreweb/component.jsx @@ -8,16 +8,13 @@ export default function Component({ service }) { const { t } = useTranslation(); const { widget } = service; - const { data: booksData, error: booksError } = useWidgetAPI(widget, "books"); - const { data: authorsData, error: authorsError } = useWidgetAPI(widget, "authors"); - const { data: seriesData, error: seriesError } = useWidgetAPI(widget, "series"); + const { data, error } = useWidgetAPI(widget, "stats"); - if (booksError || authorsError || seriesError) { - const finalError = booksError ?? authorsError ?? seriesError; - return ; + if (error) { + return ; } - if (!booksData || !authorsData || !seriesData) { + if (!data) { return ( @@ -29,9 +26,9 @@ export default function Component({ service }) { return ( - - - + + + ); } diff --git a/src/widgets/calibreweb/proxy.js b/src/widgets/calibreweb/proxy.js index 4328e43c..366833c4 100644 --- a/src/widgets/calibreweb/proxy.js +++ b/src/widgets/calibreweb/proxy.js @@ -1,5 +1,3 @@ -import { xml2json } from "xml-js"; - import { formatApiCall } from "utils/proxy/api-helpers"; import { httpProxy } from "utils/proxy/http"; import getServiceWidget from "utils/config/service-helpers"; @@ -45,13 +43,7 @@ async function apiCall(widget, endpoint) { return { status, contentType, data: null }; } - try { - const dataDecoded = xml2json(data.toString(), { compact: true }); - return {status, data: JSON.parse(dataDecoded), contentType}; - } catch (e) { - logger.error("Error decoding CalibreWeb API data. Data: %s", data.toString()); - return {status, data: null, contentType}; - } + return {status, data: JSON.parse(data), contentType}; } export default async function calibreWebProxyHandler(req, res) { diff --git a/src/widgets/calibreweb/widget.js b/src/widgets/calibreweb/widget.js index ea898dd1..a2730056 100644 --- a/src/widgets/calibreweb/widget.js +++ b/src/widgets/calibreweb/widget.js @@ -5,14 +5,8 @@ const widget = { proxyHandler: calibreWebProxyHandler, mappings: { - books: { - endpoint: "opds/books/letter/00", - }, - authors: { - endpoint: "opds/author/letter/00", - }, - series: { - endpoint: "opds/series/letter/00", + stats: { + endpoint: "opds/stats", }, }, };