| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224 |
- // 获取任务
- const server = "http://xjf.lianyou.fun:8095/v1";
- const computer = "hema2";//hema 4005 yunshouji 9991
- const index = 1;
- const game_id = 4008;
- const StatusModifyDevice = 2;//獲取賬號
- const StatusGetStartButtonOfSpirit = 6; //获取按键小精灵开始脚本按钮
- const StatusStartSpirit = 7; //开始脚本
- const StatusPushSuperUserFile = 8; //推送root权限文件
- var NET_TIMEOUT_START_TIME_MINUTE=0;//统计网络失败的开始时间是第几分钟
- var SIMULATOR_NAME = "";
- var ACCOUNT = "";
- var URL_GET_TASK = util.format("%s/task/get_task?computer_name=%s&game_id=%d", server, computer, game_id);
- var URL_GET_ACCOUNT = util.format("%s/task/get_account?computer_name=%s&game_id=%d", server, computer, game_id);
- var URL_GET_RUN_STATUS = util.format("%s/pc_simulator/get_status?game_id=%d&simulator_name=", server, game_id);
- var URL_SET_RUN_STATUS = util.format("%s/pc_simulator/set_status", server);
- var URL_ADD_SIMULATOR = util.format("%s/pc_simulator/add", server);
- var URL_LOG = util.format("%s/device/setAccountLog?game_id=%d", server, game_id);
- function Task() {
- let packageNameSpirit;
- let deviceAccount;
- let simulator_name;
- let urlGetRunningStatus
- this.main = function () {
- if (this.checkRunning()) {//正在執行
- return
- }
- if (!this.getTask()) {//獲取任務
- return
- }
- if (!this.getDeviceAccount()) {//獲取賬號
- return
- }
- this.stopPackage(this.packageNameSpirit);
- this.home();//
- this.addSimulator();
- this.pushAccount();//推送模擬器名稱到硬盤
- this.luanchSpirit();//啟動按鍵精靈app
-
- sleep(1000 * 50)
- this.startSpirit();//點擊音量小
- }
- this.getTask = function GetTask() {
- let task = this.httpGet(URL_GET_TASK);
- if (!task) {
- return false
- }
- if (task.Status == "stop") {
- return false
- }
- toastLog(task.Status + task.PackageNameSpirit);
- this.packageNameSpirit = task.PackageNameSpirit;
- return true
- }
- this.getDeviceAccount = function () {
- let deviceAccount = this.httpGet(URL_GET_ACCOUNT);
- if (!deviceAccount) {
- return false
- }
- this.simulator_name = util.format("%s_%d_%d_%s", computer, index, game_id, deviceAccount.account);
- this.urlGetRunningStatus = URL_GET_RUN_STATUS + this.simulator_name
- SIMULATOR_NAME = this.simulator_name
- ACCOUNT = deviceAccount.account
- this.setRunningStatus(StatusModifyDevice);
- return true
- }
- this.checkRunning = function () {
- this.log("check_running", "");
- this.urlGetRunningStatus = URL_GET_RUN_STATUS + SIMULATOR_NAME
- let runStatus = this.httpGet(this.urlGetRunningStatus)
- if (!runStatus) {
- return false
- }
- if (runStatus.Status == "stop") {
- return false
- }
- if (runStatus.Status == "") {
- return false
- }
- return true
- }
- this.setRunningStatus = function (status) {
- let url = util.format("%s?status=%d&simulator_name=%s", URL_SET_RUN_STATUS, status, SIMULATOR_NAME);
- this.httpGet(url);
- }
- this.addSimulator = function () {
- let url = util.format("%s?simulator_name=%s", URL_ADD_SIMULATOR, SIMULATOR_NAME);
- this.httpGet(url);
- }
- this.log = function (action, action_result) {
- let url = util.format("%s&account=%s&action=%s&action_result=%s", URL_LOG, ACCOUNT, action, action_result);
- this.httpGet(url);
- }
- this.pushAccount = function () {
- files.write("/sdcard/simulator_uuid.txt", this.simulator_name);
- this.setRunningStatus(StatusPushSuperUserFile);
- this.log("push_account", "");
- }
- this.luanchSpirit = function () {
- app.launchPackage(this.packageNameSpirit)
- this.setRunningStatus(StatusGetStartButtonOfSpirit);
- this.log("spirit_launch", "");
- }
- this.startSpirit = function () {
- // shell("input keyevent KEYCODE_VOLUME_DOWN", true);
- this.tap(349, 1214);//启动 349,1214
- sleep(3000)
- this.tap(712, 399);//旁边 712,399
- sleep(1000)
- this.tap(273, 405);//伸出来 273,405
- this.setRunningStatus(StatusStartSpirit);
- this.log("spirit_start", "");
- }
- this.tap = function (x, y) {
- let cmd = util.format("input tap %d %d", x, y);
- shell(cmd, true);
- }
- this.stopPackage = function (package) {
- let cmd = util.format("am force-stop %s", package);
- shell(cmd, true);
- this.log("spirit_stop", "");
- }
- this.home = function () {
- shell("input keyevent KEYCODE_HOME", true);
- this.log("home", "");
- }
- this.changeDevice = function () {
- this.exec()
- sleep(10000)
- }
- this.changeIP = function () {
- this.exec()
- sleep(10000)
- }
- /*-------公共使用函数--------*/
- this.httpGet = function (url) {
- console.info(url);
- let obj;//
- let res;
- try{
- res = http.get(url);
- } catch (error) {
- console.error(error);
- if (this.checkIfChangeVPN()){
- console.info("要切换VPN");
- this.changeVPN();
- NET_TIMEOUT_START_TIME_MINUTE=0;
- }else{
- console.info("还不需要切换VPN");
- }
- return false;
- }
- NET_TIMEOUT_START_TIME_MINUTE=0;
- try {
- if (res.statusCode != 200) {
- toast("请求失败: " + res.statusCode + " " + res.statusMessage);
- return false;
- }
- obj = res.body.json();
- } catch (error) {
- console.error(error);
- return false;
- }
- console.log(obj);
- return obj;
- }
- this.checkIfChangeVPN=function(){
- let minute=new Date().getMinutes();
- console.info("检测是否切换VPN");
- console.info(minute);
- console.info(NET_TIMEOUT_START_TIME_MINUTE);
- if (NET_TIMEOUT_START_TIME_MINUTE==0){
- NET_TIMEOUT_START_TIME_MINUTE=minute
- return false;
- }
- if (minute-NET_TIMEOUT_START_TIME_MINUTE<4){
- return false;
- }
- return true;
- }
- this.changeVPN=function(){
- shell("ipclient 2a521e4f7bf54ffb9dad5368c48dd783 0", true);
- console.info("关闭VPN");
- sleep(3000);
- shell("ipclient 2a521e4f7bf54ffb9dad5368c48dd783 1", true);
- console.info("切换VPN");
- sleep(2000);
- }
- this.exec = function (cmd) {
- var result = shell(cmd, true);
- log(result);
- console.show();
- if (result.code == 0) {
- toast("执行成功");
- } else {
- toast("执行失败!请到控制台查看错误信息");
- }
- }
- }
- module.exports = Task
|