common.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. const chalk = require('chalk');
  2. const clear = require('clear');
  3. const figlet = require('figlet');
  4. const fs = require('fs')
  5. var pjson = require('../package.json');
  6. const fetch = require('node-fetch');
  7. var shell = require('shelljs');
  8. const logger = require('perfect-logger');
  9. const Language = require("@shypes/language-translator");
  10. // var remote = require('remote-file-size')
  11. const globalVariables = require('../lib/globalVars');
  12. var chalkRainbow = require('chalk-rainbow')
  13. module.exports = {
  14. header: async (page) => {
  15. clear();
  16. console.log(
  17. chalkRainbow(
  18. figlet.textSync('MiWatch Kleaner', {
  19. horizontalLayout: 'full'
  20. })
  21. )
  22. );
  23. console.log(chalk.red(' ' + pjson.version));
  24. console.log();
  25. console.log(
  26. chalk.red(
  27. '-------------------------------------------------------------------------------------------------------'
  28. )
  29. )
  30. console.log(chalk.blue(await Language.get(page)))
  31. module.exports.connectionCheck()
  32. console.log(chalk.red('----------'))
  33. },
  34. pause: async (time) => {
  35. await new Promise(resolve => setTimeout(resolve, time));
  36. },
  37. connectionCheck: async () => {
  38. if (globalVariables.localUSB === "X") {
  39. console.log(chalk.white('MiWatch: ') + chalk.green(await Language.get('connected-via-usb')))
  40. }
  41. if (globalVariables.miWatchIpaddress != "") {
  42. console.log(chalk.white('MiWatch: ') + chalk.green(await Language.get('connected-via-wifi') + ' ' + chalk.white(globalVariables.miWatchIpaddress)))
  43. }
  44. if (globalVariables.localUSB === "" && globalVariables.miWatchIpaddress === "") {
  45. console.log(chalk.white('MiWatch: ') + chalk.red(await Language.get('not-connected')))
  46. }
  47. },
  48. downloadFile: async (url, path) => {
  49. const res = await fetch(url);
  50. // await module.exports.downloadSize(url)
  51. await new Promise(async (resolve, reject) => {
  52. const fileStream = fs.createWriteStream(path);
  53. res.body.pipe(fileStream);
  54. res.body.on("error", (err) => {
  55. reject(err);
  56. });
  57. fileStream.on("finish", function () {
  58. resolve();
  59. });
  60. });
  61. },
  62. downloadSize: async (url) => {
  63. remote(url, function (err, o) {
  64. console.log(o)
  65. console.log(err)
  66. })
  67. },
  68. getCompatibleAppsList: async () => {
  69. let settings = { method: "Get" };
  70. const response = await fetch("http://kithub.cf/Karl/MiWatchKleaner-APKs/raw/master/compatibleApps.json", settings)
  71. .then(res => res.json())
  72. return response
  73. },
  74. clearApkFolder: async () => {
  75. await shell.rm('-rf', './data/apps/*.apk');
  76. },
  77. log: async (item) => {
  78. logger.info(await Language.get(item, 'en'))
  79. },
  80. print: async (item, colour) => {
  81. switch (colour) {
  82. case 'green':
  83. console.log(chalk.green(await Language.get(item)))
  84. break;
  85. case 'red':
  86. console.log(chalk.redBright(await Language.get(item)))
  87. break;
  88. case 'whiteBright':
  89. console.log(chalk.whiteBright(await Language.get(item)))
  90. break;
  91. default:
  92. console.log(chalk.white(await Language.get(item)))
  93. break;
  94. }
  95. },
  96. dualLog: async (item, colour) => {
  97. await module.exports.log(item)
  98. await module.exports.print(item, colour)
  99. }
  100. }