pages.js 9.9 KB

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