pages.js 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241
  1. const chalk = require('chalk');
  2. const common = require('../lib/common');
  3. const inquirer = require('../lib/inquirer');
  4. const files = require('../lib/files')
  5. const logger = require('perfect-logger');
  6. const Language = require("@shypes/language-translator");
  7. const adb = require('../lib/adb');
  8. logger.info(process.platform + " detected")
  9. if (process.platform === 'win32' || process.platform === 'win64') {
  10. adbRun = 'adb'
  11. } else {
  12. adbRun = './adb'
  13. }
  14. logger.initialize('RunTIme', {
  15. logLevelFile: 0, // Log level for file
  16. logLevelConsole: -1, // Log level for STDOUT/STDERR
  17. logDirectory: 'data/', // Log directory
  18. });
  19. module.exports = {
  20. oneClick: async () => {
  21. common.log('main-menu-item-1')
  22. common.header('main-menu-item-1')
  23. common.print('remove-xiaomi-apps', 'whiteBright')
  24. const removalPackagesList = files.loadPackageList()
  25. for (let package of removalPackagesList.apps) {
  26. await adb.removeXiaomiApk(package)
  27. }
  28. common.print('removal-complete', 'green')
  29. await common.pause(2000)
  30. common.log('removal-complete')
  31. common.log('compatible-apps')
  32. await common.clearApkFolder()
  33. const compatibleApps = await common.getCompatibleAppsList()
  34. console.log(chalk.whiteBright('----------'))
  35. common.print('downloading-compatible-apps', 'whiteBright')
  36. for (const package of compatibleApps) {
  37. if (package.Klean === "X") {
  38. try {
  39. newPacakgeName = package.name.replace(/\s/g, '');
  40. await common.downloadFile(package.url, './data/apps/' + newPacakgeName + '.apk')
  41. logger.info(await Language.get('downloading-latest', 'en') + ' ' + package.name + ' ' + chalk.green(await Language.get('complete', 'en')))
  42. console.log(await Language.get('downloading-latest') + ' ' + package.name + ' ' + await Language.get('complete'))
  43. } catch (error) {
  44. logger.info(await Language.get('downloading-latest', 'en') + ' ' + package.name + ' ' + chalk.red(await Language.get('failed', 'en')))
  45. console.log(await Language.get('downloading-latest') + ' ' + package.name + ' ' + await Language.get('failed'))
  46. }
  47. }
  48. }
  49. const apkList = await files.getListOfAPk('./data/apps')
  50. console.log(chalk.whiteBright('----------'))
  51. common.print('installing-apps', 'whiteBright')
  52. for (let element of apkList) {
  53. await adb.installApk(element)
  54. }
  55. common.dualLog('compatible-apps-installed', 'green')
  56. await common.pause(2000)
  57. module.exports.mainMenu()
  58. },
  59. removeXiaomiApps: async () => {
  60. common.header('main-menu-item-2')
  61. common.log('main-menu-item-2')
  62. const value = await inquirer.removeAppsList();
  63. for (let package of value.removeAppsList) {
  64. await adb.removeXiaomiApk(package)
  65. }
  66. common.dualLog('removal-complete', 'green')
  67. await common.pause(2000)
  68. module.exports.mainMenu()
  69. },
  70. restoreXiaomiApps: async () => {
  71. common.header('main-menu-item-3')
  72. common.log('main-menu-item-3')
  73. const value = await inquirer.removeAppsList();
  74. for (let package of value.removeAppsList) {
  75. await adb.restoreXiaomiApk(package)
  76. }
  77. common.dualLog('restoring-apps-complete', 'green')
  78. await common.pause(2000)
  79. module.exports.mainMenu()
  80. },
  81. installCompatibleApps: async () => {
  82. common.header('main-menu-item-4')
  83. common.log('main-menu-item-4')
  84. const compatibleApps = await common.getCompatibleAppsList()
  85. const value = await inquirer.compatibleApps();
  86. await common.clearApkFolder()
  87. for (let element of value.removeAppsList) {
  88. for (let element2 of compatibleApps) {
  89. if (element === element2.name) {
  90. newName = element.replace(/\s/g, '');
  91. await common.downloadFile(element2.url, './data/apps/' + newName + '.apk')
  92. }
  93. }
  94. }
  95. const apkList = await files.getListOfAPk('./data/apps')
  96. for (let package of apkList) {
  97. common.dualLog('installing', 'whiteBright')
  98. await adb.installApk(package)
  99. }
  100. common.dualLog('compatible-apps-installed', 'green')
  101. await common.pause(2000)
  102. module.exports.mainMenu()
  103. },
  104. restoreAnyApp: async () => {
  105. common.header('main-menu-item-5')
  106. common.log('main-menu-item-5')
  107. const value = await inquirer.restoreAnyApp();
  108. await adb.restoreAnyApk(value)
  109. common.dualLog('restoring-apps-complete', 'green')
  110. await common.pause(2000)
  111. module.exports.mainMenu()
  112. },
  113. removeAnyApp: async () => {
  114. common.header('main-menu-item-6')
  115. common.log('main-menu-item-6')
  116. const value = await inquirer.restoreAnyApp();
  117. await adb.restoreAnyApk(value)
  118. common.dualLog('removing-apps-complete', 'green')
  119. await common.pause(2000)
  120. module.exports.mainMenu()
  121. },
  122. batchInstallApps: async () => {
  123. common.header('main-menu-item-7')
  124. common.log('main-menu-item-7')
  125. let apkList = await files.getListOfAPk('./my-apk/')
  126. await files.renameLocalApk(apkList)
  127. apkList = await files.getListOfAPk('./my-apk/')
  128. for (let element of apkList) {
  129. console.log(await Language.get('installing') + ' ' + element)
  130. logger.info(await Language.get('installing') + ' ' + element)
  131. await adb.installApk(element)
  132. }
  133. common.dualLog('batch-install-apps-complete', 'green')
  134. await common.pause(2000)
  135. module.exports.mainMenu()
  136. },
  137. batchRemoveInstalledApps: async () => {
  138. common.header('main-menu-item-8')
  139. common.log('main-menu-item-8')
  140. value = await adb.getInstalledPacakges()
  141. for (let element of value.removeAppsList) {
  142. console.log(await Language.get('removing') + ' ' + element)
  143. logger.info(await Language.get('removing') + ' ' + element)
  144. const package = element.substring(8)
  145. await adb.removeApk(package)
  146. }
  147. common.dualLog('remove-selected-user-apps', 'green')
  148. await common.pause(2000)
  149. module.exports.mainMenu()
  150. },
  151. connectWatch: async () => {
  152. common.header('connect-to-watch')
  153. common.log('connect-to-watch')
  154. const value = await inquirer.connectionType()
  155. connected = await adb.watchConnection(value)
  156. if (connected != true) {
  157. module.exports.connectWatch()
  158. } else {
  159. module.exports.mainMenu()
  160. }
  161. },
  162. selectLanguage: async () => {
  163. common.header('Select Language')
  164. common.log('Select Language')
  165. const v = await inquirer.LanguageSelect()
  166. return v
  167. },
  168. mainMenu: async () => {
  169. common.header('Main Menu')
  170. const mainMenuSelection = await inquirer.mainMenu();
  171. menu_1 = await Language.get('main-menu-item-1')
  172. menu_2 = await Language.get('main-menu-item-2')
  173. menu_3 = await Language.get('main-menu-item-3')
  174. menu_4 = await Language.get('main-menu-item-4')
  175. menu_5 = await Language.get('main-menu-item-5')
  176. menu_6 = await Language.get('main-menu-item-6')
  177. menu_7 = await Language.get('main-menu-item-7')
  178. menu_8 = await Language.get('main-menu-item-8')
  179. menu_9 = await Language.get('main-menu-item-9')
  180. menu_10 = await Language.get('main-menu-item-10')
  181. switch (mainMenuSelection.mainMenu) {
  182. case menu_1.toLowerCase():
  183. module.exports.oneClick()
  184. break;
  185. case menu_2.toLowerCase():
  186. module.exports.removeXiaomiApps()
  187. break;
  188. case menu_3.toLowerCase():
  189. module.exports.restoreXiaomiApps()
  190. break;
  191. case menu_4.toLowerCase():
  192. module.exports.installCompatibleApps()
  193. break;
  194. case menu_5.toLowerCase():
  195. module.exports.restoreAnyApp()
  196. break;
  197. case menu_6.toLowerCase():
  198. module.exports.removeAnyApp()
  199. break;
  200. case menu_7.toLowerCase():
  201. module.exports.batchInstallApps()
  202. break;
  203. case menu_8.toLowerCase():
  204. module.exports.batchRemoveInstalledApps()
  205. break;
  206. case menu_9.toLowerCase():
  207. module.exports.connectWatch()
  208. break;
  209. case menu_10.toLowerCase():
  210. break;
  211. default:
  212. // code block
  213. }
  214. }
  215. };