-
-
Notifications
You must be signed in to change notification settings - Fork 985
/
component.jsx
55 lines (46 loc) · 1.87 KB
/
component.jsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import { useTranslation } from "next-i18next";
import Block from "components/services/widget/block";
import Container from "components/services/widget/container";
import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation();
const { widget } = service;
const { data: listTVResult } = useWidgetAPI(widget, "SubscribeList", {
refreshInterval: 60000,
media_type: "TV",
});
const { data: listMovieResult } = useWidgetAPI(widget, "SubscribeList", {
refreshInterval: 60000,
media_type: "Movie",
});
const result = useWidgetAPI(widget, "GetSites", {
refreshInterval: 60000,
});
const sites = result.data?.data || [];
const SitesOverview = useWidgetAPI(widget, "SitesOverview", {
refreshInterval: 60000,
});
const subingTVList = listTVResult?.data.filter((item) => item.status === 0) || 0;
const subingMovieList = listMovieResult?.data.filter((item) => item.status === 0) || 0;
const todayUp = SitesOverview.data?.data?.today_up || 0;
const todayDl = SitesOverview.data?.data?.today_dl || 0;
const normalSites = sites.filter((s) => s.status === 1).length || 0;
const errorSites = sites.filter((s) => s.status === 0).length || 0;
return (
<Container service={service}>
<Block label="moviebot.subscribe" value={subingTVList.length + subingMovieList.length} />
<Block
label="moviebot.sites"
value={errorSites ? t("moviebot.errorSites", { errorSites }) : t("moviebot.normalSites", { normalSites })}
/>
<Block
label="moviebot.todayUp"
value={`${todayUp > 1000 ? `${(todayUp / 1000).toFixed(2)} GB` : `${Math.floor(todayUp)} MB`}`}
/>
<Block
label="moviebot.todayDl"
value={`${todayDl > 1000 ? `${(todayDl / 1000).toFixed(2)} GB` : `${Math.floor(todayDl)} MB`}`}
/>
</Container>
);
}