homepage/src/utils/api-helpers.js

50 lines
1.7 KiB
JavaScript
Raw Normal View History

const formats = {
emby: `{url}/emby/{endpoint}?api_key={key}`,
2022-09-05 08:19:50 +03:00
jellyfin: `{url}/emby/{endpoint}?api_key={key}`,
pihole: `{url}/admin/{endpoint}`,
radarr: `{url}/api/v3/{endpoint}?apikey={key}`,
sonarr: `{url}/api/v3/{endpoint}?apikey={key}`,
speedtest: `{url}/api/{endpoint}`,
tautulli: `{url}/api/v2?apikey={key}&cmd={endpoint}`,
traefik: `{url}/api/{endpoint}`,
portainer: `{url}/api/endpoints/{env}/{endpoint}`,
rutorrent: `{url}/plugins/httprpc/action.php`,
transmission: `{url}/transmission/rpc`,
qbittorrent: `{url}/api/v2/{endpoint}`,
jellyseerr: `{url}/api/v1/{endpoint}`,
2022-09-11 17:24:33 +03:00
overseerr: `{url}/api/v1/{endpoint}`,
ombi: `{url}/api/v1/{endpoint}`,
npm: `{url}/api/{endpoint}`,
2022-09-14 19:30:51 -07:00
lidarr: `{url}/api/v1/{endpoint}?apikey={key}`,
2022-09-11 19:49:18 -07:00
readarr: `{url}/api/v1/{endpoint}?apikey={key}`,
2022-09-14 16:15:26 -07:00
bazarr: `{url}/api/{endpoint}/wanted?apikey={key}`,
2022-09-11 19:49:18 -07:00
sabnzbd: `{url}/api/?apikey={key}&output=json&mode={endpoint}`,
2022-09-12 12:38:50 +03:00
coinmarketcap: `https://pro-api.coinmarketcap.com/{endpoint}`,
2022-09-11 04:11:02 +01:00
gotify: `{url}/{endpoint}`,
2022-09-12 17:56:04 +01:00
prowlarr: `{url}/api/v1/{endpoint}`,
2022-09-16 14:05:56 +03:00
jackett: `{url}/api/v2.0/{endpoint}?apikey={key}&configured=true`,
adguard: `{url}/control/{endpoint}`,
2022-09-20 04:41:56 +02:00
strelaysrv: `{url}/{endpoint}`,
2022-09-20 03:41:10 +02:00
mastodon: `{url}/api/v1/{endpoint}`,
};
export function formatApiCall(api, args) {
2022-09-07 16:53:24 +03:00
const find = /\{.*?\}/g;
const replace = (match) => {
const key = match.replace(/\{|\}/g, "");
return args[key];
};
2022-09-07 16:53:24 +03:00
return formats[api].replace(find, replace);
}
export function formatApiUrl(widget, endpoint) {
const params = new URLSearchParams({
type: widget.type,
group: widget.service_group,
service: widget.service_name,
endpoint,
});
return `/api/services/proxy?${params.toString()}`;
}