Compare commits

...

2 Commits

View File

@ -19,7 +19,7 @@ function getVersion() {
let token = process.env.HASSIO_TOKEN;
let status = statusTools.getStatus();
let option = {
headers: { "X-HASSIO-KEY": token },
headers: { "Authorization": `Bearer ${token}` },
responseType: "json",
};
@ -50,7 +50,7 @@ function getAddonList() {
let token = process.env.HASSIO_TOKEN;
let status = statusTools.getStatus();
let option = {
headers: { "X-HASSIO-KEY": token },
headers: { "Authorization": `Bearer ${token}` },
responseType: "json",
};
@ -97,6 +97,8 @@ function getAddonToBackup() {
if (!excluded_addon.includes(addon.slug))
slugs.push(addon.slug)
}
logger.debug("Addon to backup:")
logger.debug(slugs)
resolve(slugs)
})
.catch(() => reject());
@ -136,6 +138,8 @@ function getFolderToBackup() {
if (!excluded_folder.includes(folder.slug))
slugs.push(folder.slug)
}
logger.debug("Folders to backup:");
logger.debug(slugs)
return slugs;
}
@ -144,11 +148,11 @@ function getSnapshots() {
let token = process.env.HASSIO_TOKEN;
let status = statusTools.getStatus();
let option = {
headers: { "X-HASSIO-KEY": token },
headers: { "Authorization": `Bearer ${token}` },
responseType: "json",
};
got("http://hassio/snapshots", option)
got("http://hassio/backups", option)
.then((result) => {
if (status.error_code === 1) {
status.status = "idle";
@ -156,7 +160,7 @@ function getSnapshots() {
status.error_code = null;
statusTools.setStatus(status);
}
let snaps = result.body.data.snapshots;
let snaps = result.body.data.backups;
resolve(snaps);
})
.catch((error) => {
@ -184,11 +188,11 @@ function downloadSnapshot(id) {
status.progress = 0;
statusTools.setStatus(status);
let option = {
headers: { "X-HASSIO-KEY": token },
headers: { "Authorization": `Bearer ${token}` },
};
pipeline(
got.stream.get(`http://hassio/snapshots/${id}/download`, option)
got.stream.get(`http://hassio/backups/${id}/download`, option)
.on("downloadProgress", (e) => {
let percent = Math.round(e.percent * 100) / 100;
if (status.progress !== percent) {
@ -233,11 +237,11 @@ function dellSnap(id) {
let token = process.env.HASSIO_TOKEN;
let option = {
headers: { "X-HASSIO-KEY": token },
headers: { "Authorization": `Bearer ${token}` },
responseType: "json",
};
got.post(`http://hassio/snapshots/${id}/remove`, option)
got.post(`http://hassio/backups/${id}/remove`, option)
.then(() => resolve())
.catch(() => reject());
})
@ -251,11 +255,11 @@ function checkSnap(id) {
return new Promise((resolve, reject) => {
let token = process.env.HASSIO_TOKEN;
let option = {
headers: { "X-HASSIO-KEY": token },
headers: { "Authorization": `Bearer ${token}` },
responseType: "json",
};
got(`http://hassio/snapshots/${id}/info`, option)
got(`http://hassio/backups/${id}/info`, option)
.then((result) => {
logger.debug(`Snapshot size: ${result.body.data.size}`);
resolve();
@ -275,7 +279,7 @@ function createNewBackup(name) {
getAddonToBackup().then((addons) => {
let folders = getFolderToBackup();
let option = {
headers: { "X-HASSIO-KEY": token },
headers: { "Authorization": `Bearer ${token}` },
responseType: "json",
timeout: create_snap_timeout,
json: {
@ -288,7 +292,7 @@ function createNewBackup(name) {
option.json.password = settingsTools.getSettings().password_protect_value
}
got.post(`http://hassio/snapshots/new/partial`, option)
got.post(`http://hassio/backups/new/partial`, option)
.then((result) => {
logger.info(`Snapshot created with id ${result.body.data.slug}`);
resolve(result.body.data.slug);
@ -354,11 +358,11 @@ function uploadSnapshot(path) {
body: form,
username: this.username,
password: this.password,
headers: { "X-HASSIO-KEY": token },
headers: { "Authorization": `Bearer ${token}` },
};
got.stream
.post(`http://hassio/snapshots/new/upload`, options)
.post(`http://hassio/backups/new/upload`, options)
.on("uploadProgress", (e) => {
let percent = e.percent;
if (status.progress !== percent) {
@ -413,7 +417,7 @@ function stopAddons() {
let promises = [];
let token = process.env.HASSIO_TOKEN;
let option = {
headers: { "X-HASSIO-KEY": token },
headers: { "Authorization": `Bearer ${token}` },
responseType: "json",
};
let addons_slug = settingsTools.getSettings().auto_stop_addon
@ -496,72 +500,72 @@ function startAddons() {
function publish_state(state){
let data_error_sensor = {
state: state.status == "error" ? "on" : "off",
attributes: {
friendly_name: "Nexcloud Backup Error",
device_class: "problem",
error_code: state.error_code,
message: state.message,
icon: state.status == "error" ? "mdi:cloud-alert" : "mdi:cloud-check"
},
}
// let data_error_sensor = {
// state: state.status == "error" ? "on" : "off",
// attributes: {
// friendly_name: "Nexcloud Backup Error",
// device_class: "problem",
// error_code: state.error_code,
// message: state.message,
// icon: state.status == "error" ? "mdi:cloud-alert" : "mdi:cloud-check"
// },
// }
let token = process.env.HASSIO_TOKEN;
let option = {
headers: { "Authorization": `Bearer ${token}` },
responseType: "json",
json: data_error_sensor
};
got.post(`http://hassio/core/api/states/binary_sensor.nextcloud_backup_error`, option)
.then((result) => {
logger.debug('Home assistant sensor updated (error status)');
})
.catch((error) => {
logger.error(error);
});
// let token = process.env.HASSIO_TOKEN;
// let option = {
// headers: { "Authorization": `Bearer ${token}` },
// responseType: "json",
// json: data_error_sensor
// };
// got.post(`http://hassio/core/api/states/binary_sensor.nextcloud_backup_error`, option)
// .then((result) => {
// logger.debug('Home assistant sensor updated (error status)');
// })
// .catch((error) => {
// logger.error(error);
// });
let icon = ""
switch(state.status){
case "error":
icon = "mdi:cloud-alert";
break;
case "download":
case "download-b":
icon = "mdi:cloud-download";
break;
case "upload":
case "upload-b":
icon = "mdi:cloud-upload";
break;
case "idle":
icon = "mdi:cloud-check";
break;
default:
icon = "mdi:cloud-sync";
break;
}
// let icon = ""
// switch(state.status){
// case "error":
// icon = "mdi:cloud-alert";
// break;
// case "download":
// case "download-b":
// icon = "mdi:cloud-download";
// break;
// case "upload":
// case "upload-b":
// icon = "mdi:cloud-upload";
// break;
// case "idle":
// icon = "mdi:cloud-check";
// break;
// default:
// icon = "mdi:cloud-sync";
// break;
// }
let data_state_sensor = {
state: state.status,
attributes: {
friendly_name: "Nexcloud Backup Status",
error_code: state.error_code,
message: state.message,
icon: icon,
last_backup: state.last_backup == null || state.last_backup == "" ? "" : new Date(state.last_backup).toISOString(),
next_backup: state.next_backup == null || state.next_backup == "" ? "" : new Date(state.next_backup).toISOString()
},
}
option.json = data_state_sensor
got.post(`http://hassio/core/api/states/sensor.nextcloud_backup_status`, option)
.then((result) => {
logger.debug('Home assistant sensor updated (status)');
})
.catch((error) => {
logger.error(error);
});
// let data_state_sensor = {
// state: state.status,
// attributes: {
// friendly_name: "Nexcloud Backup Status",
// error_code: state.error_code,
// message: state.message,
// icon: icon,
// last_backup: state.last_backup == null || state.last_backup == "" ? "" : new Date(state.last_backup).toISOString(),
// next_backup: state.next_backup == null || state.next_backup == "" ? "" : new Date(state.next_backup).toISOString()
// },
// }
// option.json = data_state_sensor
// got.post(`http://hassio/core/api/states/sensor.nextcloud_backup_status`, option)
// .then((result) => {
// logger.debug('Home assistant sensor updated (status)');
// })
// .catch((error) => {
// logger.error(error);
// });
}
exports.getVersion = getVersion;