MiWatchKleaner/lib/common.js

108 lines
4.0 KiB
JavaScript
Raw Normal View History

2020-04-24 21:40:03 +01:00
const chalk = require('chalk');
const clear = require('clear');
const figlet = require('figlet');
2020-04-25 10:22:47 +01:00
const fs = require('fs')
2020-04-25 11:08:50 +01:00
var pjson = require('../package.json');
2020-08-26 17:22:06 +01:00
const fetch = require('node-fetch');
2020-08-27 17:10:47 +01:00
var shell = require('shelljs');
2020-08-28 16:59:05 +01:00
const logger = require('perfect-logger');
const Language = require("@shypes/language-translator");
2020-08-27 16:45:49 +01:00
const globalVariables = require('../lib/globalVars');
2020-09-15 10:58:04 +01:00
const settings = require("settings-store");
2020-08-29 11:20:45 +01:00
var chalkRainbow = require('chalk-rainbow')
2020-04-24 21:40:03 +01:00
module.exports = {
2020-08-28 16:59:05 +01:00
header: async (page) => {
2020-09-15 10:58:04 +01:00
Language.setActiveLang(await settings.value("Lang"))
2020-04-24 21:40:03 +01:00
clear();
console.log(
2020-08-29 11:20:45 +01:00
chalkRainbow(
2020-04-24 21:40:03 +01:00
figlet.textSync('MiWatch Kleaner', {
horizontalLayout: 'full'
})
)
);
2020-04-25 11:08:50 +01:00
console.log(chalk.red(' ' + pjson.version));
console.log();
2020-04-24 21:40:03 +01:00
console.log(
chalk.red(
'-------------------------------------------------------------------------------------------------------'
)
)
2020-08-28 16:59:05 +01:00
console.log(chalk.blue(await Language.get(page)))
2020-08-27 16:45:49 +01:00
module.exports.connectionCheck()
2020-04-24 22:55:00 +01:00
console.log(chalk.red('----------'))
2020-04-24 22:20:41 +01:00
},
pause: async (time) => {
await new Promise(resolve => setTimeout(resolve, time));
2020-04-24 22:55:00 +01:00
},
2020-08-27 16:45:49 +01:00
connectionCheck: async () => {
2020-08-29 12:34:02 +01:00
Language.setActiveLang(globalVariables.language)
2020-08-27 16:45:49 +01:00
if (globalVariables.localUSB === "X") {
2020-08-28 17:50:31 +01:00
console.log(chalk.white('MiWatch: ') + chalk.green(await Language.get('connected-via-usb')))
2020-08-27 16:45:49 +01:00
}
if (globalVariables.miWatchIpaddress != "") {
2020-08-28 17:50:31 +01:00
console.log(chalk.white('MiWatch: ') + chalk.green(await Language.get('connected-via-wifi') + ' ' + chalk.white(globalVariables.miWatchIpaddress)))
2020-08-27 16:45:49 +01:00
}
if (globalVariables.localUSB === "" && globalVariables.miWatchIpaddress === "") {
2020-08-28 17:50:31 +01:00
console.log(chalk.white('MiWatch: ') + chalk.red(await Language.get('not-connected')))
2020-04-24 22:55:00 +01:00
}
2020-08-26 17:22:06 +01:00
},
2020-08-27 10:28:54 +01:00
downloadFile: async (url, path) => {
2020-08-29 12:34:02 +01:00
Language.setActiveLang(globalVariables.language)
2020-08-27 10:28:54 +01:00
const res = await fetch(url);
2020-08-29 11:20:45 +01:00
// await module.exports.downloadSize(url)
await new Promise(async (resolve, reject) => {
2020-08-27 16:45:49 +01:00
const fileStream = fs.createWriteStream(path);
res.body.pipe(fileStream);
res.body.on("error", (err) => {
reject(err);
});
fileStream.on("finish", function () {
resolve();
});
2020-08-27 10:28:54 +01:00
});
},
2020-08-29 11:20:45 +01:00
downloadSize: async (url) => {
remote(url, function (err, o) {
console.log(o)
console.log(err)
})
},
2020-08-27 10:28:54 +01:00
getCompatibleAppsList: async () => {
2020-08-26 17:22:06 +01:00
let settings = { method: "Get" };
2020-09-07 15:29:33 +01:00
const response = await fetch("https://raw.githubusercontent.com/karl0ss/MiWatchKleaner-APKs/master/compatibleApps.json", settings)
2020-08-27 16:45:49 +01:00
.then(res => res.json())
return response
2020-08-27 10:28:54 +01:00
},
2020-08-27 17:10:47 +01:00
clearApkFolder: async () => {
await shell.rm('-rf', './data/apps/*.apk');
},
2020-08-28 16:59:05 +01:00
log: async (item) => {
logger.info(await Language.get(item, 'en'))
},
print: async (item, colour) => {
2020-08-29 12:34:02 +01:00
Language.setActiveLang(globalVariables.language)
2020-08-28 16:59:05 +01:00
switch (colour) {
case 'green':
console.log(chalk.green(await Language.get(item)))
break;
case 'red':
console.log(chalk.redBright(await Language.get(item)))
break;
case 'whiteBright':
console.log(chalk.whiteBright(await Language.get(item)))
break;
2020-08-29 12:34:02 +01:00
case 'rainbow':
console.log(chalkRainbow(await Language.get(item)))
break;
2020-08-28 16:59:05 +01:00
default:
console.log(chalk.white(await Language.get(item)))
break;
}
},
dualLog: async (item, colour) => {
await module.exports.log(item)
await module.exports.print(item, colour)
}
2020-04-24 21:40:03 +01:00
}