mirror of
https://github.com/karl0ss/homepage.git
synced 2025-07-05 07:19:09 +01:00
Update homebridge, autobrr, truenas, tubearchivist, watchtower, pyload widgets
This commit is contained in:
parent
f473d324df
commit
00163d2f44
@ -13,8 +13,9 @@ export default function Component({ service }) {
|
|||||||
const { data: filtersData, error: filtersError } = useWidgetAPI(widget, "filters");
|
const { data: filtersData, error: filtersError } = useWidgetAPI(widget, "filters");
|
||||||
const { data: indexersData, error: indexersError } = useWidgetAPI(widget, "indexers");
|
const { data: indexersData, error: indexersError } = useWidgetAPI(widget, "indexers");
|
||||||
|
|
||||||
if (statsError || filtersError || indexersError) {
|
if (statsError || statsData?.error || filtersError || filtersData?.error || indexersError || indexersData?.error) {
|
||||||
return <Container error={t("widget.api_error")} />;
|
const finalError = statsError ?? statsData?.error ?? filtersError ?? filtersData?.error ?? indexersError ?? indexersData?.error;
|
||||||
|
return <Container error={finalError} />;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!statsData || !filtersData || !indexersData) {
|
if (!statsData || !filtersData || !indexersData) {
|
||||||
|
@ -7,6 +7,10 @@ const widget = {
|
|||||||
mappings: {
|
mappings: {
|
||||||
stats: {
|
stats: {
|
||||||
endpoint: "release/stats",
|
endpoint: "release/stats",
|
||||||
|
validate: [
|
||||||
|
"push_approved_count",
|
||||||
|
"push_rejected_count"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
filters: {
|
filters: {
|
||||||
endpoint: "filters",
|
endpoint: "filters",
|
||||||
|
@ -12,7 +12,8 @@ export default function Component({ service }) {
|
|||||||
const { data: homebridgeData, error: homebridgeError } = useWidgetAPI(widget, "info");
|
const { data: homebridgeData, error: homebridgeError } = useWidgetAPI(widget, "info");
|
||||||
|
|
||||||
if (homebridgeError || homebridgeData?.error) {
|
if (homebridgeError || homebridgeData?.error) {
|
||||||
return <Container error={t("widget.api_error")} />;
|
const finalError = homebridgeError ?? homebridgeData.error;
|
||||||
|
return <Container error={finalError} />;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!homebridgeData) {
|
if (!homebridgeData) {
|
||||||
|
@ -84,9 +84,9 @@ export default async function pyloadProxyHandler(req, res) {
|
|||||||
|
|
||||||
if (data?.error || status !== 200) {
|
if (data?.error || status !== 200) {
|
||||||
try {
|
try {
|
||||||
return res.status(status).send(Buffer.from(data).toString());
|
return res.status(status).send({error: {message: "HTTP error communicating with Plex API", data: Buffer.from(data).toString()}});
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
return res.status(status).send(data);
|
return res.status(status).send({error: {message: "HTTP error communicating with Plex API", data}});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -95,7 +95,7 @@ export default async function pyloadProxyHandler(req, res) {
|
|||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
logger.error(e);
|
logger.error(e);
|
||||||
return res.status(500).send(e.toString());
|
return res.status(500).send({error: {message: `Error communicating with Plex API: ${e.toString()}`}});
|
||||||
}
|
}
|
||||||
|
|
||||||
return res.status(400).json({ error: 'Invalid proxy service type' });
|
return res.status(400).json({ error: 'Invalid proxy service type' });
|
||||||
|
@ -41,8 +41,9 @@ export default function Component({ service }) {
|
|||||||
const { data: alertData, error: alertError } = useWidgetAPI(widget, "alerts");
|
const { data: alertData, error: alertError } = useWidgetAPI(widget, "alerts");
|
||||||
const { data: statusData, error: statusError } = useWidgetAPI(widget, "status");
|
const { data: statusData, error: statusError } = useWidgetAPI(widget, "status");
|
||||||
|
|
||||||
if (alertError || statusError) {
|
if (alertError || alertData?.error || statusError || statusData?.error) {
|
||||||
return <Container error={t("widget.api_error")} />;
|
const finalError = alertError ?? alertData?.error ?? statusError ?? statusData?.error;
|
||||||
|
return <Container error={finalError} />;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!alertData || !statusData) {
|
if (!alertData || !statusData) {
|
||||||
|
@ -14,6 +14,10 @@ const widget = {
|
|||||||
},
|
},
|
||||||
status: {
|
status: {
|
||||||
endpoint: "system/info",
|
endpoint: "system/info",
|
||||||
|
validate: [
|
||||||
|
"loadavg",
|
||||||
|
"uptime_seconds"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
@ -14,8 +14,9 @@ export default function Component({ service }) {
|
|||||||
const { data: channelsData, error: channelsError } = useWidgetAPI(widget, "channels");
|
const { data: channelsData, error: channelsError } = useWidgetAPI(widget, "channels");
|
||||||
const { data: playlistsData, error: playlistsError } = useWidgetAPI(widget, "playlists");
|
const { data: playlistsData, error: playlistsError } = useWidgetAPI(widget, "playlists");
|
||||||
|
|
||||||
if (downloadsError || videosError || channelsError || playlistsError) {
|
if (downloadsError || downloadsData?.error || videosError || videosData?.error || channelsError || channelsData?.error || playlistsError || playlistsData?.error) {
|
||||||
return <Container error={t("widget.api_error")} />;
|
const finalError = downloadsError ?? downloadsData?.error ?? videosError ?? videosData?.error ?? channelsError ?? channelsData?.error ?? playlistsError ?? playlistsData?.error;
|
||||||
|
return <Container error={finalError} />;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!downloadsData || !videosData || !channelsData || !playlistsData) {
|
if (!downloadsData || !videosData || !channelsData || !playlistsData) {
|
||||||
|
@ -7,15 +7,27 @@ const widget = {
|
|||||||
mappings: {
|
mappings: {
|
||||||
downloads: {
|
downloads: {
|
||||||
endpoint: "download",
|
endpoint: "download",
|
||||||
|
validate: [
|
||||||
|
"paginate",
|
||||||
|
]
|
||||||
},
|
},
|
||||||
videos: {
|
videos: {
|
||||||
endpoint: "video",
|
endpoint: "video",
|
||||||
|
validate: [
|
||||||
|
"paginate",
|
||||||
|
]
|
||||||
},
|
},
|
||||||
channels: {
|
channels: {
|
||||||
endpoint: "channel",
|
endpoint: "channel",
|
||||||
|
validate: [
|
||||||
|
"paginate",
|
||||||
|
]
|
||||||
},
|
},
|
||||||
playlists: {
|
playlists: {
|
||||||
endpoint: "playlist",
|
endpoint: "playlist",
|
||||||
|
validate: [
|
||||||
|
"paginate",
|
||||||
|
]
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
@ -12,8 +12,9 @@ export default function Component({ service }) {
|
|||||||
|
|
||||||
const { data: watchData, error: watchError } = useWidgetAPI(widget, "watchtower");
|
const { data: watchData, error: watchError } = useWidgetAPI(widget, "watchtower");
|
||||||
|
|
||||||
if (watchError || !watchData) {
|
if (watchError || watchData?.error) {
|
||||||
return <Container error={t("widget.api_error")} />;
|
const finalError = watchError ?? watchData?.error;
|
||||||
|
return <Container error={finalError} />;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!watchData) {
|
if (!watchData) {
|
||||||
|
@ -33,15 +33,16 @@ export default async function watchtowerProxyHandler(req, res) {
|
|||||||
|
|
||||||
if (status !== 200 || !data) {
|
if (status !== 200 || !data) {
|
||||||
logger.error("Error getting data from WatchTower: %d. Data: %s", status, data);
|
logger.error("Error getting data from WatchTower: %d. Data: %s", status, data);
|
||||||
|
return res.status(status).json({error: {message: `HTTP Error ${status}`, url, data}});
|
||||||
}
|
}
|
||||||
|
|
||||||
const cleanData = data.toString().split("\n").filter(s => s.startsWith("watchtower"))
|
const cleanData = data.toString().split("\n").filter(s => s.startsWith("watchtower"));
|
||||||
const jsonRes = {}
|
const jsonRes = {}
|
||||||
|
|
||||||
cleanData.map(e => e.split(" ")).forEach(strArray => {
|
cleanData.map(e => e.split(" ")).forEach(strArray => {
|
||||||
const [key, value] = strArray
|
const [key, value] = strArray
|
||||||
jsonRes[key] = value
|
jsonRes[key] = value
|
||||||
})
|
});
|
||||||
|
|
||||||
if (contentType) res.setHeader("Content-Type", contentType);
|
if (contentType) res.setHeader("Content-Type", contentType);
|
||||||
return res.status(status).send(jsonRes);
|
return res.status(status).send(jsonRes);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user