|
|
ÎްģʽautoÌÔ±¦Ç§Å£×Ô¶¯·¢»õϵͳ
- // =============================================================================
- // ÌÔ±¦Ç§Å£×Ô¶¯·¢»õϵͳ v3.0£¨¾«¼ò°æ£©
- // ½öÖ§³ÖÎްģʽ£¨auto£©£¬Ê¹ÓÃÍêÕûÉÌÆ·±êÌ⾫׼ƥÅä
- // ¹¦ÄÜ£º24Сʱ¼à¿ØÇ§Å£´ý·¢»õÁÐ±í ¡ú Æ¥ÅäÉÌÆ·±êÌâ ¡ú ·¢ËÍ¿¨ÃÜ/ÍøÅÌÁ´½Ó
- // ÊÊÓãºAIWROK °²×¿×Ô¶¯»¯Æ½Ì¨£¬ES5/Rhino ÒýÇæ
- // =============================================================================
- importClass(java.io.File);
- importClass(java.io.FileWriter);
- importClass(java.io.BufferedReader);
- importClass(java.io.InputStreamReader);
- importClass(java.io.FileInputStream);
- importClass(java.io.FileOutputStream);
- importClass(java.io.OutputStreamWriter);
- // =============================================================================
- // µÚÒ»²¿·Ö£ºÈ«¾ÖÅäÖÃ
- // =============================================================================
- var CONFIG = {
- ǧţ°üÃû: "com.taobao.qianniu",
- ÂÖѯ¼ä¸ô: 30, // ¼ì²éж©µ¥¼ä¸ô£¨Ã룩
- ×î´óÖØÊÔ: 3,
- ²Ù×÷ÑÓʱ: 2, // ÿ²½²Ù×÷ºóµÈ´ý£¨Ã룩
- // ¿¨ÃÜ·þÎñÆ÷API£¨Áô¿ÕÔòÓñ¾µØÎļþ£©
- ·þÎñÆ÷µØÖ·: "",
- ·þÎñÆ÷ÃÜÔ¿: "",
- ʹÓ÷þÎñÆ÷: false,
- ¿¨ÃÜĿ¼: "/sdcard/¿¨Ãֿܲâ/",
- ·¢»õ¼Ç¼Îļþ: "/sdcard/·¢»õ¼Ç¼.txt",
- ÆôÓñ£»î: true,
- ±£»î¼ä¸ô: 300,
- ÆôÓÃÐü¸¡´°: true,
- // debug=Ö»Êä³ö½ÚµãÕªÒª²»·¢»õ; test=´¦ÀíÒ»¸öÕæÊµ¶©µ¥²âÊÔ; false=Õý³£¼à¿Ø
- µ÷ÊÔģʽ: "debug",
- };
- // =============================================================================
- // µÚ¶þ²¿·Ö£ºÉÌÆ·ÅäÖã¨ÓÃÍêÕûÉÌÆ·±êÌ⣬¾«×¼Æ¥Å䣩
- // =============================================================================
- /**
- * ÅäÖÃ˵Ã÷£º
- * ÉÌÆ·±êÌâ: ÌÔ±¦ÉÌÆ·µÄÍêÕû±êÌ⣬ÓÃÓÚÔÚ¶©µ¥ÁбíÖо«×¼Æ¥Åä
- * ·¢»õÀàÐÍ: "¿¨ÃÜ" / "ÍøÅÌ" / "¿¨ÃÜ+ÍøÅÌ"
- * ¿¨ÃÜÎļþ: ±¾µØ¿¨ÃÜÎļþ·¾¶£¨Ã¿ÐÐÒ»¸ö¿¨ÃÜ£¬ÓùýµÄ×Ô¶¯É¾³ý£©
- * ÍøÅÌÁ´½Ó: ¸ÃÉÌÆ·¶ÔÓ¦µÄÍøÅÌÁ´½Ó
- * ·¢»õ»°Êõ: ·¢Ë͸øÂò¼ÒµÄ»°Êõ£¬{¿¨ÃÜ}ºÍ{ÍøÅÌ}×Ô¶¯Ìæ»»
- */
- var ÉÌÆ·ÅäÖÃ = {
- "¶þÄê¼¶Êýѧ±ØË¢ÌâÉϲáÈ˽̰æ¿ÚËãÌ⿨ÌìÌìÁ·": {
- ·¢»õÀàÐÍ: "¿¨ÃÜ",
- ¿¨ÃÜÎļþ: "/sdcard/¿¨Ãֿܲâ/¶þÄê¼¶Êýѧ±ØË¢Ìâ.txt",
- ÍøÅÌÁ´½Ó: "",
- ·¢»õ»°Êõ: "ÄúºÃ£¬Äú¹ºÂòµÄ¡¾¶þÄê¼¶Êýѧ±ØË¢Ìâ¡¿ÒÑ·¢»õ£¡\n¿¨ÃÜ£º{¿¨ÃÜ}\nÇë´ò¿ªAPPÊäÈ뿨Ãܼ¤»îʹÓã¬ÓÐÎÊÌâËæÊ±ÁªÏµ~"
- },
- "Сѧµ¥Î»»»ËãÁ·Ï°Ôª½Ç·Ö³¤¶Èµ¥Î»×¨ÏîѵÁ·": {
- ·¢»õÀàÐÍ: "ÍøÅÌ",
- ¿¨ÃÜÎļþ: "",
- ÍøÅÌÁ´½Ó: "https://pan.baidu.com/s/1aBcDeFgH ÌáÈ¡Âë: x1y2",
- ·¢»õ»°Êõ: "ÄúºÃ£¬Äú¹ºÂòµÄ¡¾Ð¡Ñ§µ¥Î»»»ËãÁ·Ï°¡¿ÒÑ·¢»õ£¡\nÍøÅÌÏÂÔØÁ´½Ó£º{ÍøÅÌ}\nÇë¸´ÖÆÁ´½Óµ½ä¯ÀÀÆ÷ÏÂÔØ£¬ÓÐÎÊÌâËæÊ±ÁªÏµ~"
- },
- "Ò»Äê¼¶¼Ó¼õ¿ÚËãÁ·Ï°²á10ÒÔÄÚ20ÒÔÄÚ´ÕÊ®·¨": {
- ·¢»õÀàÐÍ: "¿¨ÃÜ+ÍøÅÌ",
- ¿¨ÃÜÎļþ: "/sdcard/¿¨Ãֿܲâ/Ò»Äê¼¶¼Ó¼õ¿ÚËã.txt",
- ÍøÅÌÁ´½Ó: "https://pan.baidu.com/s/2bCdEfGhI ÌáÈ¡Âë: a3b4",
- ·¢»õ»°Êõ: "ÄúºÃ£¬Äú¹ºÂòµÄ¡¾Ò»Äê¼¶¼Ó¼õ¿ÚËã¡¿ÒÑ·¢»õ£¡\n¼¤»î¿¨ÃÜ£º{¿¨ÃÜ}\nÍøÅÌÁ´½Ó£º{ÍøÅÌ}\nÇëÏÈÏÂÔØAPP£¬ÊäÈ뿨Ãܼ¤»îʹÓÃ~"
- }
- // ¼ÌÐøÌí¼ÓÉÌÆ·...°ÑÍêÕûµÄÌÔ±¦ÉÌÆ·±êÌâÌî½øÀ´¼´¿É
- };
- // =============================================================================
- // µÚÈý²¿·Ö£ºÎްģʽ²Ù×÷·â×°£¨½öauto£¬ÎÞģʽ·ÖÖ§£©
- // =============================================================================
- var ActionAdapter = {
- // ================================================================
- // »ù´¡²Ù×÷£¨Ö±½Óµ÷Óà auto ¶ÔÏó£©
- // ================================================================
- init: function() {
- if (typeof auto !== 'undefined') {
- logger.log("ÎްģʽÒѾÍÐ÷");
- return true;
- }
- logger.err("auto¶ÔÏó²»´æÔÚ£¬Ç뿪ÆôÎÞÕϰ·þÎñ");
- return false;
- },
- click: function(x, y) {
- try {
- auto.clickPoint(x, y);
- return true;
- } catch (e) {
- logger.err("µã»÷ʧ°Ü: " + e);
- return false;
- }
- },
- clickPercent: function(px, py) {
- try {
- auto.clickPercent(px, py);
- return true;
- } catch (e) {
- logger.err("°Ù·Ö±Èµã»÷ʧ°Ü: " + e);
- return false;
- }
- },
- swipe: function(x1, y1, x2, y2, duration) {
- duration = duration || 500;
- try {
- auto.swip(x1, y1, x2, y2, duration, 0);
- return true;
- } catch (e) {
- logger.err("»¬¶¯Ê§°Ü: " + e);
- return false;
- }
- },
- swipePercent: function(px1, py1, px2, py2, duration) {
- duration = duration || 500;
- var w = screen.getScreenWidth();
- var h = screen.getScreenHeight();
- return this.swipe(
- Math.floor(px1 * w), Math.floor(py1 * h),
- Math.floor(px2 * w), Math.floor(py2 * h), duration
- );
- },
- back: function() {
- try { auto.back(); return true; } catch (e) { return false; }
- },
- home: function() {
- try { auto.home(); return true; } catch (e) { return false; }
- },
- // ================================================================
- // ºËÐÄ£ºauto.getXml() ½Úµã½âÎö
- // ǧţºÜ¶à°´Å¥ÎÄ×ÖÔÚ desc ÊôÐÔÀ±ØÐëͬʱƥÅä text ºÍ desc
- // ================================================================
- getXml: function() {
- try {
- if (typeof auto !== 'undefined' && typeof auto.getXml === 'function') {
- return auto.getXml();
- }
- } catch (e) {
- logger.err("getXmlʧ°Ü: " + e);
- }
- return "";
- },
- /**
- * ´ÓXMLÖвéÕÒ°üº¬Ö¸¶¨ÎÄ×ֵĽڵ㣨ͬʱƥÅä text ºÍ desc£©
- */
- findNodes: function(xml, keyword) {
- var results = [];
- if (!xml || !keyword) return results;
- var pattern = /<node\s+([^>]+?)(?:\/>|>)/g;
- var match;
- while ((match = pattern.exec(xml)) !== null) {
- var attrs = match[1];
- var textVal = "";
- var descVal = "";
- var tm = attrs.match(/text="([^"]*)"/);
- if (tm) textVal = tm[1];
- var dm = attrs.match(/desc="([^"]*)"/);
- if (dm) descVal = dm[1];
- if (textVal.indexOf(keyword) !== -1 || descVal.indexOf(keyword) !== -1) {
- results.push(this._parseNode(attrs, textVal, descVal));
- }
- }
- return results;
- },
- /**
- * ½âÎöXMLÖÐËùÓнڵ㣨²»¹ýÂ˹ؼü´Ê£¬ÓÃÓÚµ÷ÊԺ͸¸½Úµã²éÕÒ£©
- */
- findAllNodes: function(xml) {
- var results = [];
- if (!xml) return results;
- var pattern = /<node\s+([^>]+?)(?:\/>|>)/g;
- var match;
- while ((match = pattern.exec(xml)) !== null) {
- var attrs = match[1];
- var tm = attrs.match(/text="([^"]*)"/);
- var dm = attrs.match(/desc="([^"]*)"/);
- results.push(this._parseNode(attrs, tm ? tm[1] : "", dm ? dm[1] : ""));
- }
- return results;
- },
- /**
- * ½âÎöµ¥¸ö½ÚµãÊôÐÔ£¨ÄÚ²¿·½·¨£©
- */
- _parseNode: function(attrs, textVal, descVal) {
- var cpm = attrs.match(/centerPercent="\[([0-9.]+),([0-9.]+)\]"/);
- var cm = attrs.match(/center="\[(\d+),(\d+)\]"/);
- var clm = attrs.match(/clickable="([^"]*)"/);
- var idm = attrs.match(/id="([^"]*)"/);
- var bm = attrs.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
- var clsm = attrs.match(/class="([^"]*)"/);
- return {
- text: textVal,
- desc: descVal,
- x: cm ? parseInt(cm[1]) : 0,
- y: cm ? parseInt(cm[2]) : 0,
- px: cpm ? parseFloat(cpm[1]) : 0,
- py: cpm ? parseFloat(cpm[2]) : 0,
- clickable: clm ? clm[1] : "false",
- id: idm ? idm[1] : "",
- bounds: bm ? [parseInt(bm[1]), parseInt(bm[2]), parseInt(bm[3]), parseInt(bm[4])] : null,
- class: clsm ? clsm[1] : ""
- };
- },
- /**
- * ²éÕÒ²»¿Éµã»÷½ÚµãµÄ×î½ü¿Éµã»÷¸¸½Úµã
- */
- findClickableParent: function(node, xml) {
- if (!node || !node.bounds) return null;
- var allNodes = this.findAllNodes(xml);
- var nodeArea = (node.bounds[2] - node.bounds[0]) * (node.bounds[3] - node.bounds[1]);
- var bestParent = null;
- var bestArea = 999999999;
- for (var i = 0; i < allNodes.length; i++) {
- var p = allNodes[i];
- if (p.clickable !== "true" || !p.bounds) continue;
- // ¸¸½Úµã±ØÐë°üº¬Ä¿±ê½Úµã
- if (p.bounds[0] <= node.bounds[0] && p.bounds[1] <= node.bounds[1] &&
- p.bounds[2] >= node.bounds[2] && p.bounds[3] >= node.bounds[3]) {
- var pArea = (p.bounds[2] - p.bounds[0]) * (p.bounds[3] - p.bounds[1]);
- // Ñ¡Ãæ»ý×îСµÄ¿Éµã»÷¸¸½Úµã£¨×î½üµÄ£©
- if (pArea < bestArea && pArea >= nodeArea) {
- bestArea = pArea;
- bestParent = p;
- }
- }
- }
- return bestParent;
- },
- /**
- * ÕÒÎÄ×Ö²¢µã»÷£¨ºËÐÄ·½·¨£©
- * 1. ²éÕÒ°üº¬ÎÄ×ֵĽڵã
- * 2. ÓÅÏȵã»÷ clickable=true µÄ½Úµã
- * 3. ²»¿Éµã»÷µÄÕÒ¸¸½Úµãµã»÷
- */
- findTextAndClick: function(text, timeout) {
- timeout = timeout || 3000;
- var startTime = new Date().getTime();
- while (new Date().getTime() - startTime < timeout) {
- var xml = this.getXml();
- if (!xml) { sleep.millisecond(ºÁÃë = 300); continue; }
- var result = this._findBestNode(xml, text);
- if (result) {
- if (result.clickable === "true") {
- this.clickPercent(result.px, result.py);
- } else {
- // ²»¿Éµã»÷ ¡ú ÕÒ×î½ü¿Éµã»÷¸¸½Úµã
- var parent = this.findClickableParent(result, xml);
- if (parent) {
- logger.log("½Úµã²»¿Éµã»÷£¬Ê¹Óø¸½Úµã: [" + result.text + "|" + result.desc + "] -> px=" + parent.px + " py=" + parent.py);
- this.clickPercent(parent.px, parent.py);
- } else {
- this.clickPercent(result.px, result.py);
- }
- }
- sleep.millisecond(ºÁÃë = 500);
- logger.log("ÕÒµ½²¢µã»÷: " + text + " (text=" + result.text + " desc=" + result.desc + ")", true);
- return true;
- }
- sleep.millisecond(ºÁÃë = 300);
- }
- logger.warn("δÕÒµ½ÎÄ×Ö: " + text);
- return false;
- },
- /**
- * ²éÕÒ×î¼Ñ½Úµã£¨ÓÅÏȿɵã»÷µÄ£©
- */
- _findBestNode: function(xml, text) {
- var nodes = this.findNodes(xml, text);
- if (nodes.length === 0) return null;
- // ÓÅÏÈ·µ»Ø clickable=true
- for (var i = 0; i < nodes.length; i++) {
- if (nodes[i].clickable === "true") return nodes[i];
- }
- return nodes[0];
- },
- /**
- * ÕÒÎÄ×Ö£¨·µ»Ø½ÚµãÐÅÏ¢£¬²»µã»÷£©
- */
- findText: function(text) {
- var xml = this.getXml();
- if (!xml) return null;
- return this._findBestNode(xml, text);
- },
- hasText: function(text) {
- return this.findText(text) !== null;
- },
- hasAnyText: function(texts) {
- for (var i = 0; i < texts.length; i++) {
- if (this.findText(texts[i])) return true;
- }
- return false;
- },
- /**
- * Êä³öµ±Ç°Ò³ÃæËùÓÐÓÐÒâÒå½ÚµãµÄÕªÒª£¨µ÷ÊÔÓã©
- */
- dumpPageSummary: function() {
- var xml = this.getXml();
- if (!xml) { logger.warn("ÎÞ·¨»ñÈ¡Ò³ÃæXML"); return; }
- var nodes = this.findAllNodes(xml);
- var count = 0;
- logger.log("====== Ò³Ãæ½ÚµãÕªÒª ======");
- for (var i = 0; i < nodes.length; i++) {
- var n = nodes[i];
- // ¹ýÂ˵ô¿Õ°×½Úµã
- if (n.text === "" && n.desc === "") continue;
- logger.log(" [" + (n.clickable === "true" ? "¿Éµã»÷" : " ²»¿É") + "] text=\"" + n.text + "\" desc=\"" + n.desc + "\" px=" + n.px + " py=" + n.py);
- count++;
- }
- logger.log("====== ¹² " + count + " ¸öÓÐÒâÒå½Úµã ======");
- },
- /**
- * ÊäÈëÎÄ×Ö£¨Í¨¹ý¼ôÌù°åÕ³Ìù£¬¼æÈÝÖÐÎÄ£©
- */
- inputText: function(text) {
- try {
- if (typeof Clipboard !== 'undefined' && Clipboard.copy) {
- Clipboard.copy(text);
- sleep.millisecond(ºÁÃë = 300);
- }
- // ³¢ÊÔÕ³Ìù
- try {
- var node = auto.nodeSearch(3000).focused(true);
- if (node && typeof node.getNode === 'function') {
- var n = node.getNode(0);
- if (n && typeof n.paste === 'function') {
- n.paste();
- }
- }
- } catch (pe) {}
- sleep.second(Ãë = 1);
- logger.log("ÒÑÊäÈëÎÄ×Ö: " + text.substring(0, 20) + (text.length > 20 ? "..." : ""));
- return true;
- } catch (e) {
- logger.err("ÊäÈëÎÄ×Öʧ°Ü: " + e);
- return false;
- }
- },
- /**
- * µÈ´ýÖ¸¶¨ÎÄ×Ö³öÏÖ
- */
- backToText: function(text, timeout) {
- timeout = timeout || 10000;
- var startTime = new Date().getTime();
- while (new Date().getTime() - startTime < timeout) {
- if (this.hasText(text)) return true;
- sleep.millisecond(ºÁÃë = 500);
- }
- return false;
- }
- };
- // =============================================================================
- // µÚËIJ¿·Ö£ºÈÕ־ϵͳ£¨Ðü¸¡´° + Toast + print.log/err/warn£©
- // =============================================================================
- var logger = {
- Ðü¸¡´°ÊµÀý: null,
- ±êÌâ¿Ø¼þ: null,
- ÄÚÈݿؼþ: null,
- ״̬¿Ø¼þ: null,
- ÈÕÖ¾»º³å: [],
- ×î´óÐÐÊý: 12,
- ͳ¼Æ: { ÂÖ´Î: 0, ·¢»õ: 0, ´íÎó: 0, Æô¶¯Ê±¼ä: null },
- init: function() {
- this.ͳ¼Æ.Æô¶¯Ê±¼ä = new Date();
- if (!CONFIG.ÆôÓÃÐü¸¡´°) return;
- try {
- this.Ðü¸¡´°ÊµÀý = new floatUI();
- this.Ðü¸¡´°ÊµÀý.loadXML(
- '<LinearLayout orientation="vertical" w="400" h="280" gravity="top" id="log_main" background="#CC000000">' +
- ' <LinearLayout orientation="horizontal" w="400" h="30" gravity="center_vertical" background="#FF1a1a2e">' +
- ' <TextView id="log_title" textColor="#FFD700" textSize="13sp" padding="8dp" layout_weight="1" text="📦 ÌÔ±¦×Ô¶¯·¢»õv3" />' +
- ' </LinearLayout>' +
- ' <LinearLayout orientation="horizontal" w="400" h="24" gravity="center_vertical" background="#FF16213e">' +
- ' <TextView id="log_status" textColor="#00FFFF" textSize="10sp" padding="6dp" layout_weight="1" text="״̬: ³õʼ»¯ÖÐ..." />' +
- ' </LinearLayout>' +
- ' <TextView id="log_content" textColor="#00FF00" textSize="10sp" padding="6dp" layout_weight="1" text="µÈ´ýÆô¶¯...\n" />' +
- '</LinearLayout>'
- );
- this.±êÌâ¿Ø¼þ = this.Ðü¸¡´°ÊµÀý.findViewById('log_title');
- this.״̬¿Ø¼þ = this.Ðü¸¡´°ÊµÀý.findViewById('log_status');
- this.ÄÚÈݿؼþ = this.Ðü¸¡´°ÊµÀý.findViewById('log_content');
- var self = this;
- setTimeout(function() {
- if (self.Ðü¸¡´°ÊµÀý) self.Ðü¸¡´°ÊµÀý.setPosition(5, 5);
- }, 200);
- } catch (e) {}
- },
- _time: function() {
- var now = new Date();
- var h = now.getHours(), m = now.getMinutes(), s = now.getSeconds();
- return (h < 10 ? "0" : "") + h + ":" + (m < 10 ? "0" : "") + m + ":" + (s < 10 ? "0" : "") + s;
- },
- _¸üÐÂ״̬: function() {
- if (!this.״̬¿Ø¼þ) return;
- try {
- var runtime = "";
- if (this.ͳ¼Æ.Æô¶¯Ê±¼ä) {
- var diff = Math.floor((new Date() - this.ͳ¼Æ.Æô¶¯Ê±¼ä) / 1000);
- var h = Math.floor(diff / 3600);
- var m = Math.floor((diff % 3600) / 60);
- var s = diff % 60;
- runtime = " ÔËÐÐ" + (h > 0 ? h + "h" : "") + m + "m" + s + "s";
- }
- this.״̬¿Ø¼þ.setText("ÂÖ´Î:" + this.ͳ¼Æ.ÂÖ´Î + " | ·¢»õ:" + this.ͳ¼Æ.·¢»õ + " | ´íÎó:" + this.ͳ¼Æ.´íÎó + runtime);
- } catch (e) {}
- },
- _toast: function(msg) {
- try {
- if (typeof toast !== 'undefined' && toast.show) toast.show("" + msg);
- } catch (e) {}
- },
- _output: function(level, msg, showToast) {
- var timeStr = this._time();
- var levelTag = "";
- if (level === "ÐÅÏ¢") { levelTag = "ℹ"; }
- else if (level === "³É¹¦") { levelTag = "✅"; }
- else if (level === "¾¯¸æ") { levelTag = "⚠"; }
- else if (level === "´íÎó") { levelTag = "❌"; this.ͳ¼Æ.´íÎó++; }
- var line = timeStr + " " + levelTag + " " + msg;
- // °´¼¶±ðµ÷Óà AIWROK ƽ̨ÔÉú·½·¨
- try {
- if (level === "´íÎó" && typeof print !== 'undefined' && print.err) {
- print.err(line);
- } else if (level === "¾¯¸æ" && typeof print !== 'undefined' && print.warn) {
- print.warn(line);
- } else if (typeof print !== 'undefined' && print.log) {
- print.log(line);
- } else if (typeof printl === 'function') {
- printl(line);
- }
- } catch (e) {}
- // Ðü¸¡´°
- this.ÈÕÖ¾»º³å.push(line);
- if (this.ÈÕÖ¾»º³å.length > this.×î´óÐÐÊý) this.ÈÕÖ¾»º³å.shift();
- if (this.ÄÚÈݿؼþ) {
- try { this.ÄÚÈݿؼþ.setText(this.ÈÕÖ¾»º³å.join("\n")); } catch (e) {}
- }
- this._¸üÐÂ״̬();
- if (showToast) this._toast(levelTag + " " + msg);
- },
- log: function(msg, toast) { this._output("ÐÅÏ¢", msg, toast); },
- warn: function(msg, toast) { this._output("¾¯¸æ", msg, toast); },
- err: function(msg, toast) { this._output("´íÎó", msg, toast); },
- success: function(msg, toast) { this._output("³É¹¦", msg, toast); },
- addShip: function() { this.ͳ¼Æ.·¢»õ++; this._¸üÐÂ״̬(); },
- addRound: function() { this.ͳ¼Æ.ÂÖ´Î++; this._¸üÐÂ״̬(); }
- };
- // =============================================================================
- // µÚÎ岿·Ö£º¿¨ÃܹÜÀí
- // =============================================================================
- var ¿¨ÃܹÜÀí = {
- È¡±¾µØ¿¨ÃÜ: function(Îļþ·¾¶) {
- try {
- var file = new File(Îļþ·¾¶);
- if (!file.exists()) {
- logger.err("¿¨ÃÜÎļþ²»´æÔÚ: " + Îļþ·¾¶);
- return null;
- }
- var reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8"));
- var lines = [], line;
- while ((line = reader.readLine()) !== null) {
- line = line.trim();
- if (line !== "" && line.indexOf("#") !== 0) lines.push(line);
- }
- reader.close();
- if (lines.length === 0) {
- logger.warn("¿¨ÃÜÎļþÒÑ¿Õ: " + Îļþ·¾¶);
- return null;
- }
- var ¿¨ÃÜ = lines[0];
- logger.log("È¡³ö¿¨ÃÜ: " + ¿¨ÃÜ + " (Ê£Óà " + (lines.length - 1) + " ¸ö)");
- var remaining = lines.slice(1);
- var writer = new OutputStreamWriter(new FileOutputStream(file), "UTF-8");
- for (var i = 0; i < remaining.length; i++) writer.write(remaining[i] + "\n");
- writer.close();
- return ¿¨ÃÜ;
- } catch (e) {
- logger.err("¶ÁÈ¡¿¨ÃÜʧ°Ü: " + e);
- return null;
- }
- },
- È¡·þÎñÆ÷¿¨ÃÜ: function(ÉÌÆ·ID) {
- try {
- var url = CONFIG.·þÎñÆ÷µØÖ· + "?action=get&product=" + ÉÌÆ·ID + "&key=" + CONFIG.·þÎñÆ÷ÃÜÔ¿;
- logger.log("´Ó·þÎñÆ÷»ñÈ¡¿¨ÃÜ: " + url);
- var response = http.get(url);
- if (!response) { logger.err("·þÎñÆ÷ÎÞÏìÓ¦"); return null; }
- try {
- var json = JSON.parse(response);
- if (json.code === 0 && json.data) {
- logger.log("·þÎñÆ÷·µ»Ø¿¨ÃÜ: " + json.data);
- return json.data;
- }
- logger.err("·þÎñÆ÷·µ»Ø´íÎó: " + (json.msg || json.message || response));
- } catch (e) {
- if (response && response.length > 0) {
- logger.log("·þÎñÆ÷·µ»Ø¿¨ÃÜ: " + response);
- return response;
- }
- }
- } catch (e) {
- logger.err("·þÎñÆ÷»ñÈ¡¿¨ÃÜʧ°Ü: " + e);
- }
- return null;
- },
- Éϱ¨ÒÑʹÓÃ: function(ÉÌÆ·ID, ¿¨ÃÜ, ¶©µ¥ºÅ) {
- try {
- var url = CONFIG.·þÎñÆ÷µØÖ· + "?action=report&product=" + ÉÌÆ·ID + "&key=" + ¿¨ÃÜ + "&order=" + ¶©µ¥ºÅ;
- var response = http.get(url);
- logger.log("·þÎñÆ÷Éϱ¨½á¹û: " + response);
- } catch (e) {
- logger.err("·þÎñÆ÷Éϱ¨Ê§°Ü: " + e);
- }
- },
- È¡¿¨ÃÜ: function(ÉÌÆ·) {
- if (CONFIG.ʹÓ÷þÎñÆ÷) return this.È¡·þÎñÆ÷¿¨ÃÜ(ÉÌÆ·.Ãû³Æ || "");
- return this.È¡±¾µØ¿¨ÃÜ(ÉÌÆ·.¿¨ÃÜÎļþ);
- },
- ¼ì²é¿â´æ: function(ÉÌÆ·) {
- if (CONFIG.ʹÓ÷þÎñÆ÷) return -1;
- try {
- var file = new File(ÉÌÆ·.¿¨ÃÜÎļþ);
- if (!file.exists()) return 0;
- var reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8"));
- var count = 0, line;
- while ((line = reader.readLine()) !== null) {
- line = line.trim();
- if (line !== "" && line.indexOf("#") !== 0) count++;
- }
- reader.close();
- return count;
- } catch (e) { return -1; }
- }
- };
- // =============================================================================
- // µÚÁù²¿·Ö£º·¢»õ¼Ç¼
- // =============================================================================
- var ·¢»õ¼Ç¼ = {
- ÒÑ·¢»õ: function(¶©µ¥ºÅ) {
- try {
- var file = new File(CONFIG.·¢»õ¼Ç¼Îļþ);
- if (!file.exists()) return false;
- var reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8"));
- var line;
- while ((line = reader.readLine()) !== null) {
- if (line.indexOf(¶©µ¥ºÅ) !== -1) { reader.close(); return true; }
- }
- reader.close();
- } catch (e) {}
- return false;
- },
- ¼Ç¼: function(¶©µ¥ºÅ, ÉÌÆ·Ãû, ·¢»õÄÚÈÝ) {
- try {
- var writer = new OutputStreamWriter(new FileOutputStream(CONFIG.·¢»õ¼Ç¼Îļþ, true), "UTF-8");
- var now = new Date();
- var dateStr = now.getFullYear() + "-" + (now.getMonth() + 1) + "-" + now.getDate() + " " + logger._time();
- writer.write(dateStr + " | " + ¶©µ¥ºÅ + " | " + ÉÌÆ·Ãû + " | " + ·¢»õÄÚÈÝ + "\n");
- writer.close();
- logger.log("ÒѼǼ·¢»õ: " + ¶©µ¥ºÅ + " -> " + ÉÌÆ·Ãû);
- } catch (e) {
- logger.err("¼Ç¼·¢»õʧ°Ü: " + e);
- }
- },
- ½ñÈÕÊýÁ¿: function() {
- try {
- var file = new File(CONFIG.·¢»õ¼Ç¼Îļþ);
- if (!file.exists()) return 0;
- var reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8"));
- var now = new Date();
- var today = now.getFullYear() + "-" + (now.getMonth() + 1) + "-" + now.getDate();
- var count = 0, line;
- while ((line = reader.readLine()) !== null) {
- if (line.indexOf(today) !== -1) count++;
- }
- reader.close();
- return count;
- } catch (e) { return 0; }
- }
- };
- // =============================================================================
- // µÚÆß²¿·Ö£ºÇ§Å£×Ô¶¯»¯²Ù×÷
- // =============================================================================
- var ǧţ²Ù×÷ = {
- Æô¶¯Ç§Å£: function() {
- logger.log("Æô¶¯Ç§Å£...", true);
- try {
- app.openApp(CONFIG.ǧţ°üÃû);
- for (var i = 8; i > 0; i--) {
- sleep.second(Ãë = 1);
- }
- logger.success("ǧţÒÑÆô¶¯");
- return true;
- } catch (e) {
- logger.err("Æô¶¯Ç§Å£Ê§°Ü: " + e);
- return false;
- }
- },
- È·±£ÔËÐÐ: function() {
- // ÎްģʽûÓÐshell£¬Ö±½ÓÓÃapp.openAppÈ·±£ÔËÐÐ
- app.openApp(CONFIG.ǧţ°üÃû);
- sleep.second(Ãë = 3);
- },
- /**
- * ¼ì²éÊÇ·ñÔÚ¶©µ¥¹ÜÀíÒ³Ãæ
- */
- ÔÚ¶©µ¥¹ÜÀíÒ³: function() {
- return ActionAdapter.hasText("´ý·¢»õ") || ActionAdapter.hasText("´ý¸¶¿î") ||
- ActionAdapter.hasText("ÒÑ·¢»õ") || ActionAdapter.hasText("´ß·¢»õ");
- },
- /**
- * ¼ì²é´ý·¢»õ±êÇ©ÊÇ·ñÒÑÑ¡ÖÐ
- */
- ´ý·¢»õÒÑÑ¡ÖÐ: function() {
- var xml = ActionAdapter.getXml();
- if (!xml) return false;
- var nodes = ActionAdapter.findNodes(xml, "´ý·¢»õ");
- for (var i = 0; i < nodes.length; i++) {
- // selected=true ±íʾÒÑÑ¡ÖÐ
- var pattern = /<node\s+([^>]+?)(?:\/>|>)/g;
- var match;
- while ((match = pattern.exec(xml)) !== null) {
- var attrs = match[1];
- if ((attrs.indexOf("´ý·¢»õ") !== -1) && attrs.indexOf('selected="true"') !== -1) {
- return true;
- }
- }
- }
- return false;
- },
- /**
- * ½øÈë´ý·¢»õ¶©µ¥Áбí
- * ¶àÌõ·¾¶£ºÖ±½ÓÕÒ"´ý·¢»õ"±êÇ© ¡ú ÕÒ"¶©µ¥¹ÜÀí"Èë¿Ú ¡ú Ê×Ò³ÖØÊÔ
- */
- ½øÈë´ý·¢»õÁбí: function() {
- logger.log("½øÈë´ý·¢»õ¶©µ¥Áбí...", true);
- // ·¾¶1£ºÖ±½Óµã»÷"´ý·¢»õ"±êÇ©
- if (ActionAdapter.findTextAndClick("´ý·¢»õ", 3000)) {
- sleep.second(Ãë = CONFIG.²Ù×÷ÑÓʱ);
- if (this.ÔÚ¶©µ¥¹ÜÀíÒ³()) {
- logger.log("ÒÑÔÚ´ý·¢»õÁбíÒ³Ãæ");
- return true;
- }
- }
- // ·¾¶2£ºÕÒ"¶©µ¥¹ÜÀí"Èë¿Ú
- if (ActionAdapter.findTextAndClick("¶©µ¥¹ÜÀí", 2000)) {
- sleep.second(Ãë = CONFIG.²Ù×÷ÑÓʱ);
- if (ActionAdapter.findTextAndClick("´ý·¢»õ", 3000)) {
- sleep.second(Ãë = CONFIG.²Ù×÷ÑÓʱ);
- if (this.ÔÚ¶©µ¥¹ÜÀíÒ³()) return true;
- }
- }
- // ·¾¶3£º´ÓÊ×Ò³ÕÒ¶©µ¥Èë¿Ú
- ActionAdapter.home();
- sleep.second(Ãë = 2);
- if (ActionAdapter.findTextAndClick("¶©µ¥", 3000)) {
- sleep.second(Ãë = CONFIG.²Ù×÷ÑÓʱ);
- ActionAdapter.findTextAndClick("´ý·¢»õ", 3000);
- sleep.second(Ãë = CONFIG.²Ù×÷ÑÓʱ);
- if (this.ÔÚ¶©µ¥¹ÜÀíÒ³()) return true;
- }
- logger.warn("δÄܽøÈë´ý·¢»õÁбí");
- return false;
- },
- /**
- * ¼ì²éÊÇ·ñÓÐж©µ¥£¨¿Õ״̬Ïûʧ = Óж©µ¥£©
- */
- ÓÐж©µ¥: function() {
- // ¿Õ״̬Ìáʾ
- if (ActionAdapter.hasText("»¹Ã»ÓÐÏà¹Ø¶©µ¥") || ActionAdapter.hasText("ÔÝÎÞ")) {
- return false;
- }
- // Óж©µ¥Ê±µÄÌØÕ÷ÎÄ×Ö
- var ¶©µ¥ÌØÕ÷ = ["Á¢¼´·¢»õ", "È¥·¢»õ", "Âò¼ÒÒѸ¶¿î", "ÁªÏµÂò¼Ò"];
- for (var i = 0; i < ¶©µ¥ÌØÕ÷.length; i++) {
- if (ActionAdapter.hasText(¶©µ¥ÌØÕ÷[i])) {
- logger.log("¼ì²âµ½´ý·¢»õ¶©µ¥: " + ¶©µ¥ÌØÕ÷[i], true);
- return true;
- }
- }
- // ¼ì²éÊÇ·ñÓж©µ¥ºÅ¸ñʽµÄÊý×Ö
- var xml = ActionAdapter.getXml();
- if (xml) {
- var allNodes = ActionAdapter.findAllNodes(xml);
- for (var j = 0; j < allNodes.length; j++) {
- if (allNodes[j].text && /^\d{15,20}$/.test(allNodes[j].text)) {
- logger.log("¼ì²âµ½¶©µ¥ºÅ: " + allNodes[j].text, true);
- return true;
- }
- }
- }
- return false;
- },
- /**
- * Æ¥ÅäÉÌÆ·£¨ÓÃÍêÕûÉÌÆ·±êÌ⾫׼ƥÅ䣩
- * ±éÀúÉÌÆ·ÅäÖã¬ÔÚÒ³ÃæXMLÖвéÕÒÄĸöÉÌÆ·±êÌâ³öÏÖÁË
- * @return {object|null} {Ãû³Æ, ÅäÖÃ, ½Úµã}
- */
- Æ¥ÅäÉÌÆ·: function() {
- var xml = ActionAdapter.getXml();
- if (!xml) xml = "";
- for (var ÉÌÆ·±êÌâ in ÉÌÆ·ÅäÖÃ) {
- // Ö±½ÓÓÃÍêÕû±êÌâÈ¥XMLÀïÕÒ
- var nodes = ActionAdapter.findNodes(xml, ÉÌÆ·±êÌâ);
- if (nodes.length > 0) {
- logger.success("¾«×¼Æ¥Åäµ½ÉÌÆ·: " + ÉÌÆ·±êÌâ, true);
- logger.log(" ½Úµã: text=[" + nodes[0].text + "] desc=[" + nodes[0].desc + "] px=" + nodes[0].px + " py=" + nodes[0].py);
- return {
- Ãû³Æ: ÉÌÆ·±êÌâ,
- ÅäÖÃ: ÉÌÆ·ÅäÖÃ[ÉÌÆ·±êÌâ],
- ½Úµã: nodes[0]
- };
- }
- }
- // Èç¹ûÍêÕû±êÌâûƥÅäµ½£¬³¢ÊÔÄ£ºýÆ¥Å䣨±êÌâǰ6¸ö×Ö£©
- for (var ±êÌâ in ÉÌÆ·ÅäÖÃ) {
- var ¶Ì±êÌâ = ±êÌâ.substring(0, 6);
- var nodes2 = ActionAdapter.findNodes(xml, ¶Ì±êÌâ);
- if (nodes2.length > 0) {
- logger.log("Ä£ºýÆ¥Åäµ½ÉÌÆ·: " + ±êÌâ + " (¹Ø¼ü´Ê: " + ¶Ì±êÌâ + ")", true);
- return {
- Ãû³Æ: ±êÌâ,
- ÅäÖÃ: ÉÌÆ·ÅäÖÃ[±êÌâ],
- ½Úµã: nodes2[0]
- };
- }
- }
- logger.warn("δƥÅäµ½ÈκÎÉÌÆ·");
- return null;
- },
- /**
- * »ñÈ¡µ±Ç°¶©µ¥ºÅ
- */
- »ñÈ¡¶©µ¥ºÅ: function() {
- var xml = ActionAdapter.getXml();
- if (xml) {
- var patterns = [
- /¶©µ¥ºÅ[£º:]\s*(\d{10,20})/,
- /¶©µ¥±àºÅ[£º:]\s*(\d{10,20})/,
- /"(\d{15,20})"/
- ];
- for (var i = 0; i < patterns.length; i++) {
- var m = xml.match(patterns[i]);
- if (m && m[1]) {
- logger.log("ÌáÈ¡µ½¶©µ¥ºÅ: " + m[1]);
- return m[1];
- }
- }
- }
- var ÁÙʱºÅ = "TEMP" + new Date().getTime();
- logger.warn("δÄÜÌáÈ¡¶©µ¥ºÅ£¬Ê¹ÓÃÁÙʱºÅ: " + ÁÙʱºÅ);
- return ÁÙʱºÅ;
- },
- /**
- * µã»÷¶©µ¥½øÈëÏêÇéÒ³
- */
- µã»÷½øÈë¶©µ¥: function(ÉÌÆ·½Úµã) {
- if (!ÉÌÆ·½Úµã) {
- ActionAdapter.clickPercent(0.5, 0.4);
- sleep.second(Ãë = CONFIG.²Ù×÷ÑÓʱ);
- } else {
- var node = ÉÌÆ·½Úµã.½Úµã || ÉÌÆ·½Úµã;
- if (node.px > 0 && node.py > 0) {
- ActionAdapter.clickPercent(node.px, node.py);
- } else {
- ActionAdapter.clickPercent(0.5, 0.4);
- }
- sleep.second(Ãë = CONFIG.²Ù×÷ÑÓʱ);
- }
- // ÑéÖ¤ÊÇ·ñ½øÈë¶©µ¥ÏêÇé
- if (ActionAdapter.hasText("¶©µ¥ÏêÇé") || ActionAdapter.hasText("¶©µ¥ºÅ") ||
- ActionAdapter.hasText("ÁªÏµÂò¼Ò") || ActionAdapter.hasText("·¢»õ") ||
- ActionAdapter.hasText("°¢ÀïÍúÍú") || ActionAdapter.hasText("ÍúÍú")) {
- logger.success("ÒѽøÈë¶©µ¥ÏêÇé");
- return true;
- }
- if (ActionAdapter.hasText("È·ÈÏ·¢»õ") || ActionAdapter.hasText("ÎïÁ÷")) {
- logger.success("ÒѽøÈë·¢»õÒ³Ãæ");
- return true;
- }
- logger.warn("δÄܽøÈë¶©µ¥ÏêÇé");
- return false;
- },
- /**
- * ½øÈëÂò¼ÒÁÄÌì½çÃæ£¨µã°¢ÀïÍúÍú£©
- */
- ½øÈëÁÄÌì: function() {
- logger.log("½øÈëÂò¼ÒÁÄÌì½çÃæ...");
- var °´Å¥ÎÄ×Ö = ["°¢ÀïÍúÍú", "ÍúÍú", "ÁªÏµÂò¼Ò", "·¢ÏûÏ¢", "ÁªÏµ", "ÁôÑÔ"];
- for (var i = 0; i < °´Å¥ÎÄ×Ö.length; i++) {
- if (ActionAdapter.findTextAndClick(°´Å¥ÎÄ×Ö[i], 2000)) {
- sleep.second(Ãë = CONFIG.²Ù×÷ÑÓʱ);
- logger.success("ÒѽøÈëÁÄÌì½çÃæ: " + °´Å¥ÎÄ×Ö[i]);
- return true;
- }
- }
- logger.warn("δÄܽøÈëÁÄÌì½çÃæ");
- return false;
- },
- /**
- * ÔÚÁÄÌì½çÃæ·¢ËÍÏûÏ¢
- */
- ·¢ËÍÏûÏ¢: function(ÏûÏ¢ÄÚÈÝ) {
- logger.log("×¼±¸·¢ËÍÏûÏ¢...", true);
- // ²½Öè1£ºµã»÷ÁÄÌìÊäÈë¿ò
- ActionAdapter.clickPercent(0.5, 0.92);
- sleep.second(Ãë = 1);
- // ²½Öè2£ºÍ¨¹ý¼ôÌù°åÕ³Ìù
- ActionAdapter.inputText(ÏûÏ¢ÄÚÈÝ);
- sleep.second(Ãë = 1);
- // ²½Öè3£ºµã»÷·¢ËͰ´Å¥
- var ·¢ËͰ´Å¥ÎÄ×Ö = ["·¢ËÍ", "Send", "·¢ËÍÏûÏ¢"];
- var ·¢Ëͳɹ¦ = false;
- for (var i = 0; i < ·¢ËͰ´Å¥ÎÄ×Ö.length; i++) {
- if (ActionAdapter.findTextAndClick(·¢ËͰ´Å¥ÎÄ×Ö[i], 2000)) {
- sleep.second(Ãë = 1);
- ·¢Ëͳɹ¦ = true;
- break;
- }
- }
- // °Ù·Ö±Èµã»÷·¢ËͰ´Å¥£¨Í¨³£ÔÚÓÒϽǣ©
- if (!·¢Ëͳɹ¦) {
- ActionAdapter.clickPercent(0.95, 0.92);
- sleep.second(Ãë = 1);
- ·¢Ëͳɹ¦ = true;
- }
- if (·¢Ëͳɹ¦) logger.success("ÏûÏ¢ÒÑ·¢ËÍ", true);
- return ·¢Ëͳɹ¦;
- },
- /**
- * ·µ»Ø´ý·¢»õ¶©µ¥Áбí
- */
- ·µ»ØÁбí: function() {
- logger.log("·µ»Ø¶©µ¥Áбí...");
- ActionAdapter.back();
- sleep.second(Ãë = CONFIG.²Ù×÷ÑÓʱ);
- ActionAdapter.back();
- sleep.second(Ãë = CONFIG.²Ù×÷ÑÓʱ);
- if (!this.ÔÚ¶©µ¥¹ÜÀíÒ³()) {
- sleep.second(Ãë = 1);
- if (!this.ÔÚ¶©µ¥¹ÜÀíÒ³()) {
- logger.warn("·µ»Øºó²»ÔÚ¶©µ¥¹ÜÀíÒ³£¬ÖØÐ½øÈë");
- this.½øÈë´ý·¢»õÁбí();
- }
- }
- },
- /**
- * Ö´Ðз¢»õ£¨ÍêÕûÁ÷³Ì£©
- * ÔÚ¶©µ¥ÏêÇéÒ³µã»÷"·¢»õ" ¡ú ½øÈë·¢»õÒ³Ãæ ¡ú Ñ¡"ÎÞÐèÎïÁ÷" ¡ú Ìîд·¢»õÁôÑÔ ¡ú È·ÈÏ·¢»õ
- * @param {object} ·¢»õÄÚÈÝ - {ÏûÏ¢, ÕªÒª, ¿¨ÃÜ}
- * @return {boolean} ÊÇ·ñ·¢»õ³É¹¦
- */
- Ö´Ðз¢»õ: function(·¢»õÄÚÈÝ) {
- logger.log("===== ¿ªÊ¼Ö´Ðз¢»õ²Ù×÷ =====", true);
- // ²½Öè1£ºÔÚ¶©µ¥ÏêÇéÒ³µã»÷"·¢»õ"°´Å¥
- var ·¢»õ°´Å¥ = ["Á¢¼´·¢»õ", "È¥·¢»õ", "·¢»õ"];
- var µã»÷³É¹¦ = false;
- for (var i = 0; i < ·¢»õ°´Å¥.length; i++) {
- if (ActionAdapter.findTextAndClick(·¢»õ°´Å¥[i], 3000)) {
- sleep.second(Ãë = CONFIG.²Ù×÷ÑÓʱ);
- logger.log("Òѵã»÷·¢»õ°´Å¥: " + ·¢»õ°´Å¥[i]);
- µã»÷³É¹¦ = true;
- break;
- }
- }
- if (!µã»÷³É¹¦) {
- // ¿ÉÄÜÒѾÔÚ·¢»õÒ³ÃæÁË
- if (ActionAdapter.hasText("È·ÈÏ·¢»õ") || ActionAdapter.hasText("ÎÞÐèÎïÁ÷")) {
- logger.log("ÒÑÔÚ·¢»õÒ³Ãæ");
- µã»÷³É¹¦ = true;
- } else {
- logger.err("δÕÒµ½·¢»õ°´Å¥");
- return false;
- }
- }
- // ²½Öè2£ºµÈ´ý·¢»õÒ³Ãæ¼ÓÔØ£¬¼ì²éÒ³ÃæÌØÕ÷
- sleep.second(Ãë = 2);
- var ÔÚ·¢»õÒ³ = ActionAdapter.hasText("È·ÈÏ·¢»õ") ||
- ActionAdapter.hasText("ÎÞÐèÎïÁ÷") ||
- ActionAdapter.hasText("ÎïÁ÷¹«Ë¾") ||
- ActionAdapter.hasText("·¢»õ·½Ê½");
- if (!ÔÚ·¢»õÒ³) {
- logger.log("·¢»õÒ³ÃæÎ´¼ÓÔØ£¬ÔÙµÈÒ»ÏÂ...");
- sleep.second(Ãë = 2);
- ÔÚ·¢»õÒ³ = ActionAdapter.hasText("È·ÈÏ·¢»õ") ||
- ActionAdapter.hasText("ÎÞÐèÎïÁ÷") ||
- ActionAdapter.hasText("ÎïÁ÷¹«Ë¾");
- }
- if (ÔÚ·¢»õÒ³) {
- logger.log("ÒѽøÈë·¢»õÒ³Ãæ");
- ActionAdapter.dumpPageSummary();
- }
- // ²½Öè3£ºÑ¡Ôñ"ÎÞÐèÎïÁ÷"£¨ÐéÄâÉÌÆ·²»ÐèÒª¿ìµÝ£©
- var ÎïÁ÷Ñ¡Ïî = ["ÎÞÐèÎïÁ÷", "×Ô¼ºÁªÏµÎïÁ÷", "ÐéÄâÉÌÆ·", "µç×ÓÆ¾Ö¤", "²»ÐèÒªÎïÁ÷"];
- var Ñ¡ÁËÎïÁ÷ = false;
- for (var j = 0; j < ÎïÁ÷Ñ¡Ïî.length; j++) {
- if (ActionAdapter.findTextAndClick(ÎïÁ÷Ñ¡Ïî[j], 2000)) {
- sleep.second(Ãë = 1);
- logger.log("ÒÑÑ¡Ôñ: " + ÎïÁ÷Ñ¡Ïî[j]);
- Ñ¡ÁËÎïÁ÷ = true;
- break;
- }
- }
- if (!Ñ¡ÁËÎïÁ÷) {
- logger.log("δÕÒµ½'ÎÞÐèÎïÁ÷'Ñ¡Ï¿ÉÄÜĬÈÏÒÑÑ¡»òÒ³Ãæ²»Í¬");
- // Êä³öÒ³Ãæ½Úµã°ïÖúÅŲé
- ActionAdapter.dumpPageSummary();
- }
- // ²½Öè4£ºÌîд·¢»õÁôÑÔ/±¸×¢£¨°Ñ¿¨ÃÜ/ÍøÅÌÐÅÏ¢Ìî½øÈ¥£©
- var ÁôÑÔ×Ö¶Î = ["·¢»õÁôÑÔ", "Âô¼Ò·¢»õ±¸×¢", "·¢»õ±¸×¢", "ÁôÑÔ", "±¸×¢", "¸øÂò¼ÒÁôÑÔ"];
- var ÌîÁËÁôÑÔ = false;
- for (var k = 0; k < ÁôÑÔ×Ö¶Î.length; k++) {
- if (ActionAdapter.findTextAndClick(ÁôÑÔ×Ö¶Î[k], 1500)) {
- sleep.second(Ãë = 1);
- // µã»÷ºó¿ÉÄܳöÏÖÊäÈë¿ò£¬ÌîÈë·¢»õÄÚÈÝ
- ActionAdapter.inputText(·¢»õÄÚÈÝ.ÏûÏ¢);
- sleep.second(Ãë = 1);
- logger.log("ÒÑÌîд·¢»õÁôÑÔ: " + ÁôÑÔ×Ö¶Î[k]);
- ÌîÁËÁôÑÔ = true;
- break;
- }
- }
- if (!ÌîÁËÁôÑÔ) {
- // ³¢ÊÔÕÒÊäÈë¿òÖ±½ÓÌîд
- logger.log("δÕÒµ½ÁôÑÔ×ֶΣ¬³¢ÊÔÖ±½ÓÕÒÊäÈë¿ò...");
- // ·¢»õÒ³ÃæµÄÊäÈë¿òͨ³£ÔÚÖв¿
- ActionAdapter.clickPercent(0.5, 0.5);
- sleep.second(Ãë = 1);
- ActionAdapter.inputText(·¢»õÄÚÈÝ.ÏûÏ¢);
- sleep.second(Ãë = 1);
- }
- // ²½Öè5£ºµã»÷"È·ÈÏ·¢»õ"°´Å¥
- logger.log("ѰÕÒÈ·ÈÏ·¢»õ°´Å¥...");
- var È·Èϰ´Å¥ = ["È·ÈÏ·¢»õ", "È·¶¨·¢»õ", "Ìá½»", "È·¶¨"];
- var È·Èϳɹ¦ = false;
- for (var m = 0; m < È·Èϰ´Å¥.length; m++) {
- if (ActionAdapter.findTextAndClick(È·Èϰ´Å¥[m], 3000)) {
- sleep.second(Ãë = CONFIG.²Ù×÷ÑÓʱ);
- logger.log("Òѵã»÷: " + È·Èϰ´Å¥[m]);
- È·Èϳɹ¦ = true;
- break;
- }
- }
- if (!È·Èϳɹ¦) {
- // ³¢ÊÔµã»÷ÓÒϽǵÄÈ·Èϰ´Å¥£¨³£¼ûλÖã©
- logger.log("δÕÒµ½È·Èϰ´Å¥ÎÄ×Ö£¬³¢ÊÔµã»÷ÓÒϽÇ...");
- ActionAdapter.clickPercent(0.85, 0.9);
- sleep.second(Ãë = CONFIG.²Ù×÷ÑÓʱ);
- }
- // ²½Öè6£ºÑéÖ¤·¢»õÊÇ·ñ³É¹¦
- sleep.second(Ãë = 2);
- var ·¢»õ³É¹¦ = ActionAdapter.hasText("·¢»õ³É¹¦") ||
- ActionAdapter.hasText("ÒÑ·¢»õ") ||
- ActionAdapter.hasText("·¢»õÍê³É") ||
- ActionAdapter.hasText("Ìá½»³É¹¦");
- // Èç¹ûûÓÐÃ÷È·µÄ³É¹¦Ìáʾ£¬¼ì²éÊÇ·ñ»Øµ½Á˶©µ¥ÏêÇé»òÁбí
- if (!·¢»õ³É¹¦) {
- if (ActionAdapter.hasText("¶©µ¥ÏêÇé") || ActionAdapter.hasText("´ý·¢»õ") ||
- ActionAdapter.hasText("ÒÑ·¢»õ") || ActionAdapter.hasText("´ß·¢»õ")) {
- logger.log("ÒÑ·µ»Ø¶©µ¥Ò³Ãæ£¬ÍÆ¶Ï·¢»õ³É¹¦");
- ·¢»õ³É¹¦ = true;
- }
- }
- // ´¦Àí¿ÉÄܵĶþ´ÎÈ·Èϵ¯´°
- if (ActionAdapter.hasText("È·¶¨") || ActionAdapter.hasText("È·ÈÏ")) {
- var µ¯´°°´Å¥ = ["È·¶¨", "È·ÈÏ", "ÊÇ"];
- for (var n = 0; n < µ¯´°°´Å¥.length; n++) {
- if (ActionAdapter.findTextAndClick(µ¯´°°´Å¥[n], 1500)) {
- sleep.second(Ãë = 1);
- logger.log("ÒÑÈ·Èϵ¯´°: " + µ¯´°°´Å¥[n]);
- break;
- }
- }
- sleep.second(Ãë = 2);
- // Ôٴμì²é
- if (!·¢»õ³É¹¦) {
- ·¢»õ³É¹¦ = ActionAdapter.hasText("·¢»õ³É¹¦") ||
- ActionAdapter.hasText("ÒÑ·¢»õ") ||
- ActionAdapter.hasText("·¢»õÍê³É");
- }
- }
- if (·¢»õ³É¹¦) {
- logger.success("·¢»õ²Ù×÷Íê³É£¡", true);
- } else {
- logger.warn("δÄÜÈ·ÈÏ·¢»õÊÇ·ñ³É¹¦£¬ÇëÊÖ¶¯¼ì²é");
- ActionAdapter.dumpPageSummary();
- }
- return ·¢»õ³É¹¦;
- },
- /**
- * ±ê¼Ç·¢»õ£¨¾É·½·¨±£Áô£¬½ö×÷Ϊºó±¸£©
- */
- ±ê¼Ç·¢»õ: function() {
- logger.log("³¢ÊÔ±ê¼Ç¶©µ¥·¢»õ...");
- var ·¢»õ°´Å¥ = ["·¢»õ", "È·ÈÏ·¢»õ", "Ò»¼ü·¢»õ"];
- for (var i = 0; i < ·¢»õ°´Å¥.length; i++) {
- if (ActionAdapter.findTextAndClick(·¢»õ°´Å¥[i], 2000)) {
- sleep.second(Ãë = CONFIG.²Ù×÷ÑÓʱ);
- logger.success("Òѱê¼Ç·¢»õ");
- return true;
- }
- }
- logger.warn("δÕÒµ½·¢»õ°´Å¥");
- return false;
- }
- };
- // =============================================================================
- // µÚ°Ë²¿·Ö£º·¢»õºËÐÄÁ÷³Ì
- // =============================================================================
- var ·¢»õÁ÷³Ì = {
- /**
- * ´¦ÀíÒ»¸ö¶©µ¥µÄÍêÕûÁ÷³Ì
- * Æ¥ÅäÉÌÆ· ¡ú ½øÏêÇé ¡ú Ö´Ðз¢»õ(Ñ¡ÎÞÐèÎïÁ÷+È·ÈÏ) ¡ú µãÍúÍú ¡ú ·¢ÏûÏ¢ ¡ú ·µ»ØÁбí
- */
- ´¦Àí¶©µ¥: function() {
- logger.log("========== ¿ªÊ¼´¦Àí¶©µ¥ ==========");
- // ²½Öè1£ºÆ¥ÅäÉÌÆ·
- var ÉÌÆ· = ǧţ²Ù×÷.Æ¥ÅäÉÌÆ·();
- if (!ÉÌÆ·) {
- logger.warn("δƥÅäµ½ÉÌÆ·£¬Ìø¹ý");
- return false;
- }
- // ²½Öè2£º»ñÈ¡¶©µ¥ºÅ
- var ¶©µ¥ºÅ = ǧţ²Ù×÷.»ñÈ¡¶©µ¥ºÅ();
- // ²½Öè3£º¼ì²éÊÇ·ñÒÑ·¢»õ
- if (·¢»õ¼Ç¼.ÒÑ·¢»õ(¶©µ¥ºÅ)) {
- logger.log("¶©µ¥ " + ¶©µ¥ºÅ + " ÒÑ·¢¹ý»õ£¬Ìø¹ý");
- ActionAdapter.swipePercent(0.5, 0.6, 0.5, 0.3, 500);
- sleep.second(Ãë = 1);
- return false;
- }
- // ²½Öè4£º×¼±¸·¢»õÄÚÈÝ
- var ·¢»õÄÚÈÝ = this.×¼±¸·¢»õÄÚÈÝ(ÉÌÆ·);
- if (!·¢»õÄÚÈÝ) {
- logger.err("×¼±¸·¢»õÄÚÈÝʧ°Ü");
- return false;
- }
- // ²½Öè5£ºµã»÷¶©µ¥½øÈëÏêÇé
- if (!ǧţ²Ù×÷.µã»÷½øÈë¶©µ¥(ÉÌÆ·.½Úµã)) {
- logger.err("½øÈë¶©µ¥ÏêÇéʧ°Ü");
- return false;
- }
- // ²½Öè6£ºÖ´Ðз¢»õ£¨µã·¢»õ ¡ú Ñ¡ÎÞÐèÎïÁ÷ ¡ú ÌîÁôÑÔ ¡ú È·ÈÏ·¢»õ£©
- var ·¢»õ½á¹û = ǧţ²Ù×÷.Ö´Ðз¢»õ(·¢»õÄÚÈÝ);
- if (·¢»õ½á¹û) {
- logger.success("¶©µ¥ÒÑ·¢»õ: " + ¶©µ¥ºÅ, true);
- } else {
- logger.warn("·¢»õ²Ù×÷δÄÜÈ·Èϳɹ¦£¬¼ÌÐø·¢ÍúÍúÏûÏ¢");
- }
- // ²½Öè7£º½øÈëÁÄÌì½çÃæ£¨µã°¢ÀïÍúÍú£¬¸øÂò¼Ò·¢¿¨ÃÜ/ÍøÅÌÐÅÏ¢£©
- // ´Ëʱ¿ÉÄÜÐèÒª·µ»Øµ½¶©µ¥ÏêÇéÒ³
- if (!ActionAdapter.hasText("¶©µ¥ÏêÇé") && !ActionAdapter.hasText("°¢ÀïÍúÍú")) {
- // Èç¹û·¢»õºó²»ÔÚ¶©µ¥ÏêÇ飬³¢ÊÔ·µ»Ø
- ActionAdapter.back();
- sleep.second(Ãë = CONFIG.²Ù×÷ÑÓʱ);
- }
- if (ǧţ²Ù×÷.½øÈëÁÄÌì()) {
- // ²½Öè8£º·¢ËÍÏûÏ¢
- if (ǧţ²Ù×÷.·¢ËÍÏûÏ¢(·¢»õÄÚÈÝ.ÏûÏ¢)) {
- logger.success("ÍúÍúÏûÏ¢ÒÑ·¢ËÍ", true);
- // ²½Öè9£º·µ»Ø¶©µ¥ÏêÇé
- ActionAdapter.back();
- sleep.second(Ãë = CONFIG.²Ù×÷ÑÓʱ);
- } else {
- logger.err("·¢ËÍÍúÍúÏûϢʧ°Ü");
- }
- } else {
- logger.warn("δÄܽøÈëÍúÍúÁÄÌ죨·¢»õÒÑÍê³É£¬ÏûÏ¢·¢ËÍʧ°Ü£©");
- }
- // ²½Öè10£º¼Ç¼·¢»õ
- ·¢»õ¼Ç¼.¼Ç¼(¶©µ¥ºÅ, ÉÌÆ·.Ãû³Æ, ·¢»õÄÚÈÝ.ÕªÒª);
- // ²½Öè11£ºÉϱ¨·þÎñÆ÷
- if (CONFIG.ʹÓ÷þÎñÆ÷ && ·¢»õÄÚÈÝ.¿¨ÃÜ) {
- ¿¨ÃܹÜÀí.Éϱ¨ÒÑʹÓÃ(ÉÌÆ·.Ãû³Æ, ·¢»õÄÚÈÝ.¿¨ÃÜ, ¶©µ¥ºÅ);
- }
- logger.success("¶©µ¥ " + ¶©µ¥ºÅ + " ´¦ÀíÍê³É: " + ÉÌÆ·.Ãû³Æ, true);
- logger.success("½ñÈÕÒÑ·¢»õ: " + ·¢»õ¼Ç¼.½ñÈÕÊýÁ¿() + " µ¥");
- // ²½Öè12£º·µ»ØÁбí
- ǧţ²Ù×÷.·µ»ØÁбí();
- return true;
- },
- ×¼±¸·¢»õÄÚÈÝ: function(ÉÌÆ·) {
- var ÅäÖÃ = ÉÌÆ·.ÅäÖÃ;
- var »°Êõ = ÅäÖÃ.·¢»õ»°Êõ;
- var ¿¨ÃÜ = "";
- var ÍøÅÌ = ÅäÖÃ.ÍøÅÌÁ´½Ó || "";
- var ÕªÒª = "";
- if (ÅäÖÃ.·¢»õÀàÐÍ === "¿¨ÃÜ") {
- ¿¨ÃÜ = ¿¨ÃܹÜÀí.È¡¿¨ÃÜ(ÅäÖÃ);
- if (!¿¨ÃÜ) { logger.err("ÎÞ¿ÉÓÿ¨ÃÜ£¡ÉÌÆ·: " + ÉÌÆ·.Ãû³Æ); return null; }
- »°Êõ = »°Êõ.replace("{¿¨ÃÜ}", ¿¨ÃÜ).replace("{ÍøÅÌ}", ÍøÅÌ);
- ÕªÒª = "¿¨ÃÜ:" + ¿¨ÃÜ;
- } else if (ÅäÖÃ.·¢»õÀàÐÍ === "ÍøÅÌ") {
- »°Êõ = »°Êõ.replace("{ÍøÅÌ}", ÍøÅÌ).replace("{¿¨ÃÜ}", "");
- ÕªÒª = "ÍøÅÌ:" + ÍøÅÌ.substring(0, 20);
- } else if (ÅäÖÃ.·¢»õÀàÐÍ === "¿¨ÃÜ+ÍøÅÌ") {
- ¿¨ÃÜ = ¿¨ÃܹÜÀí.È¡¿¨ÃÜ(ÅäÖÃ);
- if (!¿¨ÃÜ) { logger.err("ÎÞ¿ÉÓÿ¨ÃÜ£¡ÉÌÆ·: " + ÉÌÆ·.Ãû³Æ); return null; }
- »°Êõ = »°Êõ.replace("{¿¨ÃÜ}", ¿¨ÃÜ).replace("{ÍøÅÌ}", ÍøÅÌ);
- ÕªÒª = "¿¨ÃÜ:" + ¿¨ÃÜ + " ÍøÅÌ:" + ÍøÅÌ.substring(0, 15);
- }
- return { ÏûÏ¢: »°Êõ, ÕªÒª: ÕªÒª, ¿¨ÃÜ: ¿¨ÃÜ };
- },
- /**
- * ´¦Àíµ±Ç°ËùÓпɼûµÄ´ý·¢»õ¶©µ¥
- */
- ´¦Àíµ±Ç°¶©µ¥: function() {
- var ´¦ÀíÊýÁ¿ = 0;
- var Á¬ÐøÎÞ¶©µ¥ = 0;
- for (var i = 0; i < 50; i++) {
- if (!ǧţ²Ù×÷.ÓÐж©µ¥()) {
- Á¬ÐøÎÞ¶©µ¥++;
- if (Á¬ÐøÎÞ¶©µ¥ >= 2) {
- logger.log("ûÓиü¶à´ý·¢»õ¶©µ¥");
- break;
- }
- ActionAdapter.swipePercent(0.5, 0.6, 0.5, 0.3, 500);
- sleep.second(Ãë = 1);
- continue;
- }
- Á¬ÐøÎÞ¶©µ¥ = 0;
- logger.log("--- ´¦ÀíµÚ " + (i + 1) + " ¸ö¶©µ¥ ---");
- if (this.´¦Àí¶©µ¥()) ´¦ÀíÊýÁ¿++;
- sleep.second(Ãë = 1);
- }
- logger.success("±¾ÂÖ´¦ÀíÍê³É£¬¹²·¢»õ " + ´¦ÀíÊýÁ¿ + " µ¥", true);
- return ´¦ÀíÊýÁ¿;
- }
- };
- // =============================================================================
- // µÚ¾Å²¿·Ö£º±£»îÐÄÌø£¨ÎÞ°°æ£¬²»ÓÃshell£©
- // =============================================================================
- var ±£»îϵͳ = {
- Ïß³Ì: null,
- ÔËÐÐÖÐ: false,
- start: function() {
- if (!CONFIG.ÆôÓñ£»î) return;
- this.ÔËÐÐÖÐ = true;
- this.Ïß³Ì = new thread().runJsCode(function() {
- while (±£»îϵͳ.ÔËÐÐÖÐ) {
- try {
- // ÎްģʽûÓÐshell£¬ÓÃgetXml¼ì²éǧţÊÇ·ñÔÚǰ̨
- var xml = ActionAdapter.getXml();
- if (!xml || xml === "") {
- logger.warn("ǧţ¿ÉÄÜδÔËÐУ¬³¢ÊÔÖØÆô...");
- app.openApp(CONFIG.ǧţ°üÃû);
- sleep.second(Ãë = 8);
- }
- logger.log("±£»îÐÄÌø: ½ñÈÕ·¢»õ " + ·¢»õ¼Ç¼.½ñÈÕÊýÁ¿() + " µ¥");
- } catch (e) {}
- sleep.second(Ãë = CONFIG.±£»î¼ä¸ô);
- }
- });
- logger.log("±£»îÏß³ÌÒÑÆô¶¯");
- },
- stop: function() {
- this.ÔËÐÐÖÐ = false;
- logger.log("±£»îÏß³ÌÒÑÍ£Ö¹");
- }
- };
- // =============================================================================
- // µÚÊ®²¿·Ö£º¿â´æÔ¤¾¯
- // =============================================================================
- var ¿â´æÔ¤¾¯ = {
- ¼ì²éÈ«²¿: function() {
- var Ô¤¾¯ÉÌÆ· = [];
- for (var ÉÌÆ·Ãû in ÉÌÆ·ÅäÖÃ) {
- var ÅäÖÃ = ÉÌÆ·ÅäÖÃ[ÉÌÆ·Ãû];
- if (ÅäÖÃ.·¢»õÀàÐÍ === "¿¨ÃÜ" || ÅäÖÃ.·¢»õÀàÐÍ === "¿¨ÃÜ+ÍøÅÌ") {
- var ¿â´æ = ¿¨ÃܹÜÀí.¼ì²é¿â´æ(ÅäÖÃ);
- if (¿â´æ >= 0 && ¿â´æ < 5) {
- Ô¤¾¯ÉÌÆ·.push(ÉÌÆ·Ãû + " (Ê£Óà" + ¿â´æ + "¸ö)");
- logger.warn("¿â´æÔ¤¾¯: " + ÉÌÆ·Ãû + " ½öÊ£ " + ¿â´æ + " ¸ö¿¨ÃÜ£¡");
- }
- }
- }
- return Ô¤¾¯ÉÌÆ·;
- }
- };
- // =============================================================================
- // µÚʮһ²¿·Ö£ºÖ÷¿ØÖÆÁ÷³Ì£¨³ÖÐø¼à¿ØÄ£Ê½£©
- // =============================================================================
- var Ö÷¿Ø = {
- ÔËÐÐÖÐ: false,
- ͳ¼Æ: { ×ÜÂÖ´Î: 0, ×Ü·¢»õ: 0, ¿ªÊ¼Ê±¼ä: null, ×îºó¼ì²é: null },
- ³õʼ»¯: function() {
- logger.log("========================================");
- logger.log(" ÌÔ±¦Ç§Å£×Ô¶¯·¢»õϵͳ v3.0");
- logger.log(" ¾«¼ò°æ ¡¤ ½öÎްģʽ ¡¤ ÍêÕû±êÌâÆ¥Åä");
- logger.log("========================================");
- logger.init();
- if (!ActionAdapter.init()) {
- logger.err("Îްģʽ³õʼ»¯Ê§°Ü£¬ÏµÍ³Í˳ö");
- return false;
- }
- try {
- var dir = new File(CONFIG.¿¨ÃÜĿ¼);
- if (!dir.exists()) dir.mkdirs();
- } catch (e) {}
- var Ô¤¾¯ = ¿â´æÔ¤¾¯.¼ì²éÈ«²¿();
- if (Ô¤¾¯.length > 0) logger.warn("¿â´æÔ¤¾¯: " + Ô¤¾¯.join(", "));
- logger.log("ÉÌÆ·ÊýÁ¿: " + Object.keys(ÉÌÆ·ÅäÖÃ).length);
- logger.log("¼à¿Ø¼ä¸ô: " + CONFIG.ÂÖѯ¼ä¸ô + "Ãë");
- this.ͳ¼Æ.¿ªÊ¼Ê±¼ä = new Date();
- logger.success("ϵͳ³õʼ»¯Íê³É", true);
- return true;
- },
- ½øÈë¼à¿Ø×´Ì¬: function() {
- ǧţ²Ù×÷.È·±£ÔËÐÐ();
- sleep.second(Ãë = 2);
- if (!ǧţ²Ù×÷.½øÈë´ý·¢»õÁбí()) {
- logger.err("½øÈë´ý·¢»õÁбíʧ°Ü£¡", true);
- return false;
- }
- if (!ǧţ²Ù×÷.´ý·¢»õÒÑÑ¡ÖÐ()) {
- ActionAdapter.findTextAndClick("´ý·¢»õ", 3000);
- sleep.second(Ãë = CONFIG.²Ù×÷ÑÓʱ);
- }
- logger.success("ÒѽøÈë´ý·¢»õÁÐ±í£¬¿ªÊ¼³ÖÐø¼à¿Ø", true);
- return true;
- },
- ¼à¿ØÒ»ÂÖ: function() {
- this.ͳ¼Æ.×ÜÂÖ´Î++;
- logger.addRound();
- try {
- if (!ǧţ²Ù×÷.ÔÚ¶©µ¥¹ÜÀíÒ³()) {
- logger.warn("²»ÔÚ¶©µ¥¹ÜÀíÒ³Ãæ£¬ÖØÐ½øÈë");
- this.½øÈë¼à¿Ø×´Ì¬();
- return;
- }
- if (ǧţ²Ù×÷.ÓÐж©µ¥()) {
- logger.success("¼ì²âµ½Ð¶©µ¥£¡¿ªÊ¼´¦Àí...", true);
- var ·¢»õÊý = ·¢»õÁ÷³Ì.´¦Àíµ±Ç°¶©µ¥();
- this.ͳ¼Æ.×Ü·¢»õ += ·¢»õÊý;
- for (var i = 0; i < ·¢»õÊý; i++) logger.addShip();
- if (·¢»õÊý > 0) {
- logger.success("±¾ÂÖ·¢»õ " + ·¢»õÊý + " µ¥£¬ÀÛ¼Æ " + this.ͳ¼Æ.×Ü·¢»õ + " µ¥", true);
- }
- if (!ǧţ²Ù×÷.ÔÚ¶©µ¥¹ÜÀíÒ³()) this.½øÈë¼à¿Ø×´Ì¬();
- } else {
- if (this.ͳ¼Æ.×ÜÂÖ´Î % 10 === 0) {
- logger.log("¼à¿ØÖÐ... ÔÝÎÞж©µ¥ (ÂÖ´Î:" + this.ͳ¼Æ.×ÜÂÖ´Î + ")");
- }
- if (this.ͳ¼Æ.×ÜÂÖ´Î % 20 === 0) ¿â´æÔ¤¾¯.¼ì²éÈ«²¿();
- }
- } catch (e) {
- logger.err("¼à¿ØÒì³£: " + e, true);
- logger.log("Òì³£»Ö¸´£ºÖØÐ½øÈë´ý·¢»õÁбí...", true);
- this.½øÈë¼à¿Ø×´Ì¬();
- }
- this.ͳ¼Æ.×îºó¼ì²é = new Date();
- },
- Ö÷Ñ»·: function() {
- this.ÔËÐÐÖÐ = true;
- logger.success("ϵͳ½øÈë³ÖÐø¼à¿ØÄ£Ê½", true);
- logger.log("Í£ÔÚ´ý·¢»õÁбíÒ³Ãæ£¬ÓÐÈËϵ¥×Ô¶¯·¢»õ", true);
- while (this.ÔËÐÐÖÐ) {
- try { this.¼à¿ØÒ»ÂÖ(); } catch (e) { logger.err("Ö÷Ñ»·Òì³£: " + e, true); }
- var µÈ´ýÃëÊý = CONFIG.ÂÖѯ¼ä¸ô;
- for (var i = µÈ´ýÃëÊý; i > 0; i--) {
- if (!this.ÔËÐÐÖÐ) break;
- if (i % 10 === 0 || i <= 3) { try { logger._¸üÐÂ״̬(); } catch (e2) {} }
- sleep.second(Ãë = 1);
- }
- }
- },
- start: function() {
- if (!this.³õʼ»¯()) return;
- ±£»îϵͳ.start();
- if (!this.½øÈë¼à¿Ø×´Ì¬()) {
- logger.err("ÎÞ·¨½øÈë¼à¿Ø×´Ì¬£¬5ÃëºóÖØÊÔ...", true);
- sleep.second(Ãë = 5);
- if (!this.½øÈë¼à¿Ø×´Ì¬()) {
- logger.err("ÖØÊÔʧ°Ü£¬ÏµÍ³Í˳ö", true);
- return;
- }
- }
- this.Ö÷Ñ»·();
- },
- stop: function() {
- this.ÔËÐÐÖÐ = false;
- ±£»îϵͳ.stop();
- logger.log("ϵͳÒÑÍ£Ö¹");
- }
- };
- // =============================================================================
- // µÚÊ®¶þ²¿·Ö£ºÆô¶¯Èë¿Ú
- // =============================================================================
- function È·±£Ä¿Â¼´æÔÚ(·¾¶) {
- try {
- var dir = new File(·¾¶);
- if (!dir.exists()) dir.mkdirs();
- } catch (e) {}
- }
- function ´´½¨¿¨ÃÜʾÀý() {
- try {
- for (var ÉÌÆ·Ãû in ÉÌÆ·ÅäÖÃ) {
- var ÅäÖÃ = ÉÌÆ·ÅäÖÃ[ÉÌÆ·Ãû];
- if (ÅäÖÃ.¿¨ÃÜÎļþ && ÅäÖÃ.¿¨ÃÜÎļþ !== "") {
- var file = new File(ÅäÖÃ.¿¨ÃÜÎļþ);
- if (!file.exists()) {
- var writer = new OutputStreamWriter(new FileOutputStream(file), "UTF-8");
- writer.write("# " + ÉÌÆ·Ãû + " ¿¨ÃÜÎļþ\n");
- writer.write("# ÿÐÐÒ»¸ö¿¨ÃÜ£¬ÓùýµÄ×Ô¶¯É¾³ý\n\n");
- writer.write("Q5J3HHT8-NJMF\n");
- writer.write("KA8CPLJP-DNCM\n");
- writer.write("FYYEGC6D-KPCA\n");
- writer.close();
- logger.log("ÒÑ´´½¨¿¨ÃÜʾÀýÎļþ: " + ÅäÖÃ.¿¨ÃÜÎļþ);
- }
- }
- }
- } catch (e) {
- logger.err("´´½¨¿¨ÃÜʾÀýʧ°Ü: " + e);
- }
- }
- // =============================================================================
- // Æô¶¯
- // =============================================================================
- È·±£Ä¿Â¼´æÔÚ(CONFIG.¿¨ÃÜĿ¼);
- È·±£Ä¿Â¼´æÔÚ("/sdcard/");
- ´´½¨¿¨ÃÜʾÀý();
- if (CONFIG.µ÷ÊÔģʽ === "debug") {
- // ===== µ÷ÊÔģʽ£ºÊä³öÒ³Ãæ½Úµã£¬ÑéÖ¤XML½âÎö =====
- logger.init();
- logger.log("========================================");
- logger.log(" µ÷ÊÔģʽ£ºÑéÖ¤XML½âÎö");
- logger.log("========================================");
- if (!ActionAdapter.init()) {
- logger.err("Îްģʽ³õʼ»¯Ê§°Ü");
- } else {
- ǧţ²Ù×÷.Æô¶¯Ç§Å£();
- sleep.second(Ãë = 3);
- logger.log("===== µ±Ç°Ò³Ãæ½ÚµãÕªÒª =====");
- ActionAdapter.dumpPageSummary();
- logger.log("===== ²âÊÔ²éÕÒ'´ý·¢»õ'½Úµã =====");
- var xml = ActionAdapter.getXml();
- var nodes = ActionAdapter.findNodes(xml, "´ý·¢»õ");
- logger.log("²éÕÒ'´ý·¢»õ'½á¹û: " + nodes.length + " ¸ö½Úµã");
- for (var i = 0; i < nodes.length; i++) {
- logger.log(" ½Úµã" + i + ": text=[" + nodes[i].text + "] desc=[" + nodes[i].desc + "] px=" + nodes[i].px + " py=" + nodes[i].py + " clickable=" + nodes[i].clickable);
- if (nodes[i].clickable === "false") {
- var parent = ActionAdapter.findClickableParent(nodes[i], xml);
- if (parent) {
- logger.log(" -> ¸¸½Úµã: px=" + parent.px + " py=" + parent.py + " clickable=" + parent.clickable);
- }
- }
- }
- logger.log("===== ²âÊÔÉÌÆ·±êÌâÆ¥Åä =====");
- var ÉÌÆ·½á¹û = ǧţ²Ù×÷.Æ¥ÅäÉÌÆ·();
- if (ÉÌÆ·½á¹û) {
- logger.success("Æ¥Åäµ½ÉÌÆ·: " + ÉÌÆ·½á¹û.Ãû³Æ);
- } else {
- logger.log("µ±Ç°Ò³ÃæÎ´Æ¥Åäµ½ÉÌÆ·£¨Õý³££¬ÁбíΪ¿ÕʱÎÞÉÌÆ·£©");
- }
- logger.success("µ÷ÊÔÍê³É£¡", true);
- logger.log("ÈçÐè²âÊÔÕæÊµ·¢»õ£¬Ç뽫 CONFIG.µ÷ÊÔģʽ ÉèΪ 'test'");
- logger.log("ÈçÐèÕý³£¼à¿Ø£¬Ç뽫 CONFIG.µ÷ÊÔģʽ ÉèΪ false");
- }
- } else if (CONFIG.µ÷ÊÔģʽ === "test") {
- // ===== ²âÊÔģʽ£º´¦ÀíÒ»¸öÕæÊµ¶©µ¥£¬ÑéÖ¤ÍêÕû·¢»õÁ÷³Ì =====
- logger.init();
- logger.log("========================================");
- logger.log(" ²âÊÔģʽ£º´¦ÀíÒ»¸öÕæÊµ¶©µ¥");
- logger.log("========================================");
- if (!ActionAdapter.init()) {
- logger.err("Îްģʽ³õʼ»¯Ê§°Ü");
- } else {
- // Æô¶¯Ç§Å£
- ǧţ²Ù×÷.Æô¶¯Ç§Å£();
- sleep.second(Ãë = 3);
- // ½øÈë´ý·¢»õÁбí
- if (!ǧţ²Ù×÷.½øÈë´ý·¢»õÁбí()) {
- logger.err("½øÈë´ý·¢»õÁбíʧ°Ü£¡", true);
- } else {
- logger.log("===== ¼ì²éÊÇ·ñÓдý·¢»õ¶©µ¥ =====");
- if (ǧţ²Ù×÷.ÓÐж©µ¥()) {
- logger.success("¼ì²âµ½¶©µ¥£¡¿ªÊ¼´¦Àí...", true);
- // Êä³öÒ³Ãæ½Úµã£¬¿´¿´¶©µ¥ÁÐ±í³¤Ê²Ã´Ñù
- logger.log("===== ¶©µ¥Áбí½ÚµãÕªÒª =====");
- ActionAdapter.dumpPageSummary();
- // ³¢ÊÔÆ¥ÅäÉÌÆ·
- logger.log("===== ³¢ÊÔÆ¥ÅäÉÌÆ· =====");
- var ÉÌÆ· = ǧţ²Ù×÷.Æ¥ÅäÉÌÆ·();
- if (ÉÌÆ·) {
- logger.success("Æ¥Åäµ½ÉÌÆ·: " + ÉÌÆ·.Ãû³Æ, true);
- // ´¦ÀíÕâ¸ö¶©µ¥
- logger.log("===== ¿ªÊ¼´¦Àí¶©µ¥ =====");
- var ½á¹û = ·¢»õÁ÷³Ì.´¦Àí¶©µ¥();
- if (½á¹û) {
- logger.success("²âÊÔ·¢»õ³É¹¦£¡", true);
- } else {
- logger.err("²âÊÔ·¢»õʧ°Ü£¬Çë¼ì²éÈÕÖ¾", true);
- }
- } else {
- logger.warn("δƥÅäµ½ÉÌÆ·");
- logger.log("Çë¼ì²éÉÌÆ·ÅäÖÃÖеıêÌâÊÇ·ñÓëÌÔ±¦¶©µ¥ÖеÄÉÌÆ·±êÌâÒ»ÖÂ");
- logger.log("===== µ±Ç°Ò³ÃæËùÓнڵã =====");
- ActionAdapter.dumpPageSummary();
- }
- } else {
- logger.log("µ±Ç°Ã»Óдý·¢»õ¶©µ¥£¬ÇëÏÈÔÚÌÔ±¦ÏÂÒ»µ¥²âÊÔ");
- logger.log("===== µ±Ç°Ò³Ãæ½Úµã =====");
- ActionAdapter.dumpPageSummary();
- }
- }
- logger.log("========================================");
- logger.log("²âÊÔÍê³É£¡");
- logger.log("ÈçÐèÕý³£¼à¿Ø£¬Ç뽫 CONFIG.µ÷ÊÔģʽ ÉèΪ false");
- logger.log("========================================");
- }
- } else {
- // ===== Õý³£Ä£Ê½£º24Сʱ³ÖÐø¼à¿Ø =====
- Ö÷¿Ø.start();
- }
¸´ÖÆ´úÂë
|
|