Add widget for Atsumeru self-hosted media server

This commit is contained in:
AtsumeruDev 2023-08-21 14:26:44 +03:00
parent dce89f0c01
commit e687b61e9f
45 changed files with 300 additions and 0 deletions

View File

@ -492,6 +492,12 @@
"incident": "Incident", "incident": "Incident",
"m": "m" "m": "m"
}, },
"atsumeru": {
"series": "Series",
"archives": "Archives",
"chapters": "Chapters",
"categories": "Categories"
},
"komga": { "komga": {
"libraries": "Libraries", "libraries": "Libraries",
"series": "Series", "series": "Series",

View File

@ -492,6 +492,12 @@
"incident": "Incident", "incident": "Incident",
"m": "m" "m": "m"
}, },
"atsumeru": {
"series": "Series",
"archives": "Archives",
"chapters": "Chapters",
"categories": "Categories"
},
"komga": { "komga": {
"libraries": "Libraries", "libraries": "Libraries",
"series": "Series", "series": "Series",

View File

@ -492,6 +492,12 @@
"uptime": "Uptime", "uptime": "Uptime",
"incident": "Incident" "incident": "Incident"
}, },
"atsumeru": {
"series": "Series",
"archives": "Archives",
"chapters": "Chapters",
"categories": "Categories"
},
"komga": { "komga": {
"libraries": "Libraries", "libraries": "Libraries",
"series": "Series", "series": "Series",

View File

@ -492,6 +492,12 @@
"incident": "Incident", "incident": "Incident",
"m": "m" "m": "m"
}, },
"atsumeru": {
"series": "Série",
"archives": "Archivy",
"chapters": "Kapitoly",
"categories": "Kategorie"
},
"komga": { "komga": {
"libraries": "Knihovny", "libraries": "Knihovny",
"series": "Série", "series": "Série",

View File

@ -492,6 +492,12 @@
"incident": "Incident", "incident": "Incident",
"m": "m" "m": "m"
}, },
"atsumeru": {
"series": "Series",
"archives": "Archives",
"chapters": "Chapters",
"categories": "Categories"
},
"komga": { "komga": {
"libraries": "Libraries", "libraries": "Libraries",
"series": "Series", "series": "Series",

View File

@ -492,6 +492,12 @@
"incident": "Vorfall", "incident": "Vorfall",
"m": "m" "m": "m"
}, },
"atsumeru": {
"series": "Serie",
"archives": "Archiv",
"chapters": "Kapitel",
"categories": "Kategorien"
},
"komga": { "komga": {
"libraries": "Bibliotheken", "libraries": "Bibliotheken",
"series": "Serie", "series": "Serie",

View File

@ -509,6 +509,12 @@
"incident": "Incident", "incident": "Incident",
"m": "m" "m": "m"
}, },
"atsumeru": {
"series": "Series",
"archives": "Archives",
"chapters": "Chapters",
"categories": "Categories"
},
"komga": { "komga": {
"libraries": "Libraries", "libraries": "Libraries",
"series": "Series", "series": "Series",

View File

@ -579,6 +579,12 @@
"incident": "Incident", "incident": "Incident",
"m": "m" "m": "m"
}, },
"atsumeru": {
"series": "Series",
"archives": "Archives",
"chapters": "Chapters",
"categories": "Categories"
},
"komga": { "komga": {
"libraries": "Libraries", "libraries": "Libraries",
"series": "Series", "series": "Series",

View File

@ -492,6 +492,12 @@
"incident": "Incident", "incident": "Incident",
"m": "m" "m": "m"
}, },
"atsumeru": {
"series": "Series",
"archives": "Archives",
"chapters": "Chapters",
"categories": "Categories"
},
"komga": { "komga": {
"libraries": "Libraries", "libraries": "Libraries",
"series": "Series", "series": "Series",

View File

@ -492,6 +492,12 @@
"incident": "Incidencia", "incident": "Incidencia",
"m": "m" "m": "m"
}, },
"atsumeru": {
"series": "Series",
"archives": "Archivos",
"chapters": "Capítulos",
"categories": "Categorías"
},
"komga": { "komga": {
"libraries": "Librerías", "libraries": "Librerías",
"series": "Series", "series": "Series",

View File

@ -570,6 +570,12 @@
"incident": "Incident", "incident": "Incident",
"m": "m" "m": "m"
}, },
"atsumeru": {
"series": "Series",
"archives": "Archives",
"chapters": "Chapters",
"categories": "Categories"
},
"komga": { "komga": {
"libraries": "Libraries", "libraries": "Libraries",
"series": "Series", "series": "Series",

View File

@ -492,6 +492,12 @@
"incident": "Incident", "incident": "Incident",
"m": "m" "m": "m"
}, },
"atsumeru": {
"series": "Series",
"archives": "Archives",
"chapters": "Chapters",
"categories": "Categories"
},
"komga": { "komga": {
"libraries": "Libraries", "libraries": "Libraries",
"series": "Series", "series": "Series",

View File

@ -492,6 +492,12 @@
"incident": "Incident", "incident": "Incident",
"m": "m" "m": "m"
}, },
"atsumeru": {
"series": "Series",
"archives": "Archives",
"chapters": "Chapters",
"categories": "Categories"
},
"komga": { "komga": {
"libraries": "Librairies", "libraries": "Librairies",
"series": "Séries", "series": "Séries",

View File

@ -492,6 +492,12 @@
"incident": "Incident", "incident": "Incident",
"m": "m" "m": "m"
}, },
"atsumeru": {
"series": "Series",
"archives": "Archives",
"chapters": "Chapters",
"categories": "Categories"
},
"komga": { "komga": {
"libraries": "Libraries", "libraries": "Libraries",
"series": "Series", "series": "Series",

View File

@ -492,6 +492,12 @@
"incident": "Incident", "incident": "Incident",
"m": "m" "m": "m"
}, },
"atsumeru": {
"series": "Series",
"archives": "Archives",
"chapters": "Chapters",
"categories": "Categories"
},
"komga": { "komga": {
"libraries": "Libraries", "libraries": "Libraries",
"series": "Series", "series": "Series",

View File

@ -492,6 +492,12 @@
"incident": "Slučaj", "incident": "Slučaj",
"m": "min" "m": "min"
}, },
"atsumeru": {
"series": "Serije",
"archives": "Archívum",
"chapters": "Fejezetek",
"categories": "Kategóriák"
},
"komga": { "komga": {
"libraries": "Biblioteke", "libraries": "Biblioteke",
"series": "Serije", "series": "Serije",

View File

@ -425,6 +425,12 @@
"incident": "Incident", "incident": "Incident",
"m": "m" "m": "m"
}, },
"atsumeru": {
"series": "Series",
"archives": "Archives",
"chapters": "Chapters",
"categories": "Categories"
},
"komga": { "komga": {
"libraries": "Libraries", "libraries": "Libraries",
"series": "Series", "series": "Series",

View File

@ -492,6 +492,12 @@
"incident": "Incidente", "incident": "Incidente",
"m": "m" "m": "m"
}, },
"atsumeru": {
"series": "Serie",
"archives": "Archivio",
"chapters": "Capitoli",
"categories": "Categorie"
},
"komga": { "komga": {
"libraries": "Librerie", "libraries": "Librerie",
"series": "Serie", "series": "Serie",

View File

@ -492,6 +492,12 @@
"incident": "Incident", "incident": "Incident",
"m": "m" "m": "m"
}, },
"atsumeru": {
"series": "シリーズ",
"archives": "アーカイブス",
"chapters": "各章",
"categories": "カテゴリー"
},
"komga": { "komga": {
"libraries": "ライブラリ", "libraries": "ライブラリ",
"series": "シリーズ", "series": "シリーズ",

View File

@ -513,6 +513,12 @@
"incident": "Incident", "incident": "Incident",
"m": "m" "m": "m"
}, },
"atsumeru": {
"series": "시리즈",
"archives": "아카이브",
"chapters": "챕터",
"categories": "카테고리"
},
"komga": { "komga": {
"libraries": "Libraries", "libraries": "Libraries",
"series": "Series", "series": "Series",

View File

@ -492,6 +492,12 @@
"incident": "Incident", "incident": "Incident",
"m": "m" "m": "m"
}, },
"atsumeru": {
"series": "Series",
"archives": "Archives",
"chapters": "Chapters",
"categories": "Categories"
},
"komga": { "komga": {
"libraries": "Libraries", "libraries": "Libraries",
"series": "Series", "series": "Series",

View File

@ -492,6 +492,12 @@
"incident": "Incident", "incident": "Incident",
"m": "m" "m": "m"
}, },
"atsumeru": {
"series": "Series",
"archives": "Archives",
"chapters": "Chapters",
"categories": "Categories"
},
"komga": { "komga": {
"libraries": "Libraries", "libraries": "Libraries",
"series": "Series", "series": "Series",

View File

@ -492,6 +492,12 @@
"incident": "Incident", "incident": "Incident",
"m": "m" "m": "m"
}, },
"atsumeru": {
"series": "Series",
"archives": "Archives",
"chapters": "Chapters",
"categories": "Categories"
},
"komga": { "komga": {
"libraries": "Libraries", "libraries": "Libraries",
"series": "Series", "series": "Series",

View File

@ -492,6 +492,12 @@
"incident": "Incident", "incident": "Incident",
"m": "m" "m": "m"
}, },
"atsumeru": {
"series": "Serie",
"archives": "Archief",
"chapters": "Hoofdstukken",
"categories": "Categorieën"
},
"komga": { "komga": {
"libraries": "Bibliotheken", "libraries": "Bibliotheken",
"series": "Series", "series": "Series",

View File

@ -492,6 +492,12 @@
"incident": "Incydent", "incident": "Incydent",
"m": "min" "m": "min"
}, },
"atsumeru": {
"series": "Seria",
"archives": "Archiwa",
"chapters": "Rozdziały",
"categories": "Kategorie"
},
"komga": { "komga": {
"libraries": "Biblioteki", "libraries": "Biblioteki",
"series": "Seriale", "series": "Seriale",

View File

@ -492,6 +492,12 @@
"incident": "Incidente", "incident": "Incidente",
"m": "m" "m": "m"
}, },
"atsumeru": {
"series": "Série",
"archives": "Arquivos",
"chapters": "Capítulos",
"categories": "Categorias"
},
"komga": { "komga": {
"libraries": "Bibliotecas", "libraries": "Bibliotecas",
"series": "Séries", "series": "Séries",

View File

@ -501,6 +501,12 @@
"incident": "Incidente", "incident": "Incidente",
"m": "m" "m": "m"
}, },
"atsumeru": {
"series": "Série",
"archives": "Arquivos",
"chapters": "Capítulos",
"categories": "Categorias"
},
"komga": { "komga": {
"libraries": "Bibliotecas", "libraries": "Bibliotecas",
"series": "Séries", "series": "Séries",

View File

@ -492,6 +492,12 @@
"incident": "Incident", "incident": "Incident",
"m": "m" "m": "m"
}, },
"atsumeru": {
"series": "Series",
"archives": "Archives",
"chapters": "Chapters",
"categories": "Categories"
},
"komga": { "komga": {
"libraries": "Libraries", "libraries": "Libraries",
"series": "Series", "series": "Series",

View File

@ -492,6 +492,12 @@
"incident": "Инцидент", "incident": "Инцидент",
"m": "м" "m": "м"
}, },
"atsumeru": {
"series": "Серии",
"archives": "Архивы",
"chapters": "Главы",
"categories": "Категории"
},
"komga": { "komga": {
"libraries": "Библиотеки", "libraries": "Библиотеки",
"series": "Серии", "series": "Серии",

View File

@ -524,6 +524,12 @@
"cpu_usage": "CPU", "cpu_usage": "CPU",
"memory_usage": "Memory" "memory_usage": "Memory"
}, },
"atsumeru": {
"series": "Series",
"archives": "Archives",
"chapters": "Chapters",
"categories": "Categories"
},
"komga": { "komga": {
"libraries": "Libraries", "libraries": "Libraries",
"series": "Series", "series": "Series",

View File

@ -545,6 +545,12 @@
"incident": "Incident", "incident": "Incident",
"m": "m" "m": "m"
}, },
"atsumeru": {
"series": "Serija",
"archives": "Arhivi",
"chapters": "Poglavja",
"categories": "Kategorije"
},
"komga": { "komga": {
"libraries": "Knjižnice", "libraries": "Knjižnice",
"series": "Serije", "series": "Serije",

View File

@ -492,6 +492,12 @@
"incident": "Incident", "incident": "Incident",
"m": "m" "m": "m"
}, },
"atsumeru": {
"series": "Series",
"archives": "Archives",
"chapters": "Chapters",
"categories": "Categories"
},
"komga": { "komga": {
"libraries": "Libraries", "libraries": "Libraries",
"series": "Series", "series": "Series",

View File

@ -492,6 +492,12 @@
"incident": "Incident", "incident": "Incident",
"m": "m" "m": "m"
}, },
"atsumeru": {
"series": "Series",
"archives": "Archives",
"chapters": "Chapters",
"categories": "Categories"
},
"komga": { "komga": {
"libraries": "Libraries", "libraries": "Libraries",
"series": "Series", "series": "Series",

View File

@ -492,6 +492,12 @@
"incident": "Incident", "incident": "Incident",
"m": "m" "m": "m"
}, },
"atsumeru": {
"series": "Series",
"archives": "Archives",
"chapters": "Chapters",
"categories": "Categories"
},
"komga": { "komga": {
"libraries": "Libraries", "libraries": "Libraries",
"series": "Series", "series": "Series",

View File

@ -492,6 +492,12 @@
"incident": "Incident", "incident": "Incident",
"m": "m" "m": "m"
}, },
"atsumeru": {
"series": "Series",
"archives": "Archives",
"chapters": "Chapters",
"categories": "Categories"
},
"komga": { "komga": {
"libraries": "Libraries", "libraries": "Libraries",
"series": "Series", "series": "Series",

View File

@ -492,6 +492,12 @@
"incident": "Incident", "incident": "Incident",
"m": "m" "m": "m"
}, },
"atsumeru": {
"series": "Seri",
"archives": "Arşivler",
"chapters": "Bölümler",
"categories": "Kategoriler"
},
"komga": { "komga": {
"libraries": "Kütüphane", "libraries": "Kütüphane",
"series": "Series", "series": "Series",

View File

@ -492,6 +492,12 @@
"incident": "Інцидент", "incident": "Інцидент",
"m": "хв" "m": "хв"
}, },
"atsumeru": {
"series": "Серії",
"archives": "Архіви",
"chapters": "Глави",
"categories": "Категорії"
},
"komga": { "komga": {
"libraries": "Бібліотеки", "libraries": "Бібліотеки",
"series": "Серії", "series": "Серії",

View File

@ -492,6 +492,12 @@
"incident": "Incident", "incident": "Incident",
"m": "m" "m": "m"
}, },
"atsumeru": {
"series": "Series",
"archives": "Archives",
"chapters": "Chapters",
"categories": "Categories"
},
"komga": { "komga": {
"libraries": "Libraries", "libraries": "Libraries",
"series": "Series", "series": "Series",

View File

@ -492,6 +492,12 @@
"incident": "Incident", "incident": "Incident",
"m": "m" "m": "m"
}, },
"atsumeru": {
"series": "Series",
"archives": "Archives",
"chapters": "Chapters",
"categories": "Categories"
},
"komga": { "komga": {
"libraries": "Libraries", "libraries": "Libraries",
"series": "Series", "series": "Series",

View File

@ -492,6 +492,12 @@
"incident": "严重事件", "incident": "严重事件",
"m": "m" "m": "m"
}, },
"atsumeru": {
"series": "系列",
"archives": "档案",
"chapters": "章节",
"categories": "类别"
},
"komga": { "komga": {
"libraries": "书库", "libraries": "书库",
"series": "系列", "series": "系列",

View File

@ -492,6 +492,12 @@
"incident": "事件", "incident": "事件",
"m": "m" "m": "m"
}, },
"atsumeru": {
"series": "系列",
"archives": "档案",
"chapters": "章节",
"categories": "类别"
},
"komga": { "komga": {
"libraries": "文庫", "libraries": "文庫",
"series": "叢刊", "series": "叢刊",

View File

@ -0,0 +1,36 @@
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation();
const { widget } = service;
const { data: infoData, error: infoError } = useWidgetAPI(widget, "info");
if (infoError) {
return <Container service={service} error={infoError} />;
}
if (!infoData) {
return (
<Container service={service}>
<Block label="atsumeru.series" />
<Block label="atsumeru.archives" />
<Block label="atsumeru.chapters" />
<Block label="atsumeru.categories" />
</Container>
);
}
return (
<Container service={service}>
<Block label="atsumeru.series" value={t("common.number", { value: infoData.stats.total_series })} />
<Block label="atsumeru.archives" value={t("common.number", { value: infoData.stats.total_archives })} />
<Block label="atsumeru.chapters" value={t("common.number", { value: infoData.stats.total_chapters })} />
<Block label="atsumeru.categories" value={t("common.number", { value: infoData.stats.total_categories })} />
</Container>
);
}

View File

@ -0,0 +1,15 @@
import genericProxyHandler from "utils/proxy/handlers/generic";
import { jsonArrayFilter, asJson } from "utils/proxy/api-helpers";
const widget = {
api: "{url}/api/server/{endpoint}",
proxyHandler: genericProxyHandler,
mappings: {
info: {
endpoint: "info"
}
},
};
export default widget;

View File

@ -2,6 +2,7 @@ import dynamic from "next/dynamic";
const components = { const components = {
adguard: dynamic(() => import("./adguard/component")), adguard: dynamic(() => import("./adguard/component")),
atsumeru: dynamic(() => import("./atsumeru/component")),
audiobookshelf: dynamic(() => import("./audiobookshelf/component")), audiobookshelf: dynamic(() => import("./audiobookshelf/component")),
authentik: dynamic(() => import("./authentik/component")), authentik: dynamic(() => import("./authentik/component")),
autobrr: dynamic(() => import("./autobrr/component")), autobrr: dynamic(() => import("./autobrr/component")),

View File

@ -1,4 +1,5 @@
import adguard from "./adguard/widget"; import adguard from "./adguard/widget";
import atsumeru from "./atsumeru/widget";
import audiobookshelf from "./audiobookshelf/widget"; import audiobookshelf from "./audiobookshelf/widget";
import authentik from "./authentik/widget"; import authentik from "./authentik/widget";
import autobrr from "./autobrr/widget"; import autobrr from "./autobrr/widget";
@ -95,6 +96,7 @@ import urbackup from "./urbackup/widget";
const widgets = { const widgets = {
adguard, adguard,
atsumeru,
audiobookshelf, audiobookshelf,
authentik, authentik,
autobrr, autobrr,