bambu-cli
Version:
Bambulabs CLI for printers
49 lines (40 loc) • 1.26 kB
JavaScript
/*
This file pulls the latest HMS errors file and stores it
for use when checking MQTT data.
*/
const fs = require('fs');
const path = require('path');
const https = require('https');
const { parse } = require('url');
const pretty = require('prettysize');
const BASE = `https://e.bambulab.com/query.php?lang=en`;
const OUT = path.join(__dirname, '../data/hms.json');
const u = parse(BASE);
u.headers = {
'user-agent': 'bambu-cli'
};
const req = https.get(u, (res) => {
const status = res.statusCode;
let data = '';
res.on('data', d => {return data += d;});
res.on('end', () => {
if (status !== 200) {
console.error(`Failed to fetch JSON data, status: ${status}`);
return;
}
try {
const json = JSON.parse(data);
fs.writeFileSync(OUT, JSON.stringify(json, null, 4) + '\n', 'utf8');
const stat = fs.statSync(OUT);
console.log(`Fetched latest HMS error JSON, saved to file: ${pretty(stat.size)}`);
} catch (e) {
console.error(`Failed to parse JSON`);
console.error(e);
}
});
});
req.on('error', (e) => {
console.error(`Failed to fetch HMS data.`);
console.error(e);
});