mirror of
https://github.com/karl0ss/homepage.git
synced 2025-05-01 21:13:39 +01:00
extend blueiris widget
This commit is contained in:
parent
7ac5f55d74
commit
4b4bde142c
@ -872,7 +872,8 @@
|
||||
"blueiris": {
|
||||
"serverName": "Server Name",
|
||||
"numberOfActiveCams": "Active Cameras",
|
||||
"numberOfAlerts": "Total Alerts"
|
||||
"numberOfAlerts": "Total Alerts",
|
||||
"numberOfNewAlerts": "New Alerts"
|
||||
},
|
||||
"stash": {
|
||||
"scenes": "Scenes",
|
||||
|
@ -23,6 +23,7 @@ export default function Component({ service }) {
|
||||
<Block label="blueiris.serverName" />
|
||||
<Block label="blueiris.numberOfActiveCams" />
|
||||
<Block label="blueiris.numberOfAlerts" />
|
||||
<Block label="blueiris.numberOfNewAlerts" />
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
@ -32,6 +33,7 @@ export default function Component({ service }) {
|
||||
<Block label="blueiris.serverName" value= {blueirisData.serverName} />
|
||||
<Block label="blueiris.numberOfActiveCams" value={t("common.number", { value: blueirisData.numberOfActiveCams })} />
|
||||
<Block label="blueiris.numberOfAlerts" value={t("common.number", { value: blueirisData.totalNumberOfAlerts })} />
|
||||
<Block label="blueiris.numberOfNewAlerts" value={t("common.number", { value: blueirisData.totalNumberOfNewAlerts })} />
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
|
@ -61,7 +61,7 @@ const activeCamCount = async (widget, session) => {
|
||||
return cameraList;
|
||||
};
|
||||
|
||||
const numberOfAlerts = async (widget, session) => {
|
||||
const getAllAlerts = async (widget, session) => {
|
||||
const res = await activeCamCount(widget, session);
|
||||
const promises = res.map(item => executeCMD(widget.url, `{"cmd":"alertlist", "camera":"${item.optionDisplay}", "session":"${session}"}`));
|
||||
const results = await Promise.all(promises);
|
||||
@ -69,16 +69,25 @@ const numberOfAlerts = async (widget, session) => {
|
||||
return alerts;
|
||||
};
|
||||
|
||||
const getNewAlerts = async (widget, session) => {
|
||||
const res = await activeCamCount(widget, session);
|
||||
const promises = res.map(item => executeCMD(widget.url, `{"cmd":"alertlist", "camera":"${item.optionDisplay}", "session":"${session}", "view":"new"}`));
|
||||
const results = await Promise.all(promises);
|
||||
const alerts = results.reduce((acc, r) => acc + r.data.length, 0);
|
||||
return alerts;
|
||||
};
|
||||
|
||||
export default async function blueirisProxyHandler(req, res) {
|
||||
const widget = await getWidget(req);
|
||||
const globalUserData = await userLogin(widget);
|
||||
const activeCams = await activeCamCount(widget, globalUserData.session);
|
||||
const alerts = await numberOfAlerts(widget, globalUserData.session);
|
||||
const allAlerts = await getAllAlerts(widget, globalUserData.session);
|
||||
const newAlerts = await getNewAlerts(widget, globalUserData.session);
|
||||
const data = {
|
||||
"serverName":globalUserData.serverName,
|
||||
"numberOfActiveCams":activeCams.length,
|
||||
"totalNumberOfAlerts":alerts,
|
||||
"totalNumberOfAlerts":allAlerts,
|
||||
"totalNumberOfNewAlerts":newAlerts
|
||||
};
|
||||
return res.status(200).send(data);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user