diff --git a/public/locales/en/common.json b/public/locales/en/common.json
index dd4d3c2a..03b4325b 100755
--- a/public/locales/en/common.json
+++ b/public/locales/en/common.json
@@ -872,7 +872,8 @@
"blueiris": {
"serverName": "Server Name",
"numberOfActiveCams": "Active Cameras",
- "numberOfAlerts": "Total Alerts"
+ "numberOfAlerts": "Total Alerts",
+ "numberOfNewAlerts": "New Alerts"
},
"stash": {
"scenes": "Scenes",
diff --git a/src/widgets/blueiris/component.jsx b/src/widgets/blueiris/component.jsx
index ee61fc75..62312955 100644
--- a/src/widgets/blueiris/component.jsx
+++ b/src/widgets/blueiris/component.jsx
@@ -23,6 +23,7 @@ export default function Component({ service }) {
+
);
}
@@ -32,6 +33,7 @@ export default function Component({ service }) {
+
);
}
diff --git a/src/widgets/blueiris/proxy.js b/src/widgets/blueiris/proxy.js
index 225838ba..7bd226a1 100644
--- a/src/widgets/blueiris/proxy.js
+++ b/src/widgets/blueiris/proxy.js
@@ -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);