B2BÍøÂçÈí¼þ

 ÕÒ»ØÃÜÂë
 Á¢¼´×¢²á ÉóºËÍøÕ¾ºÅ:QQ:896757558
ËÑË÷
²é¿´: 11|»Ø¸´: 0
´òÓ¡ ÉÏÒ»Ö÷Ìâ ÏÂÒ»Ö÷Ìâ

¶¹°üʶ±ðÑéÖ¤Âë¼ÓÍ϶¯ÑéÖ¤ÂëʾÀý

[¸´ÖÆÁ´½Ó]

1132

Ö÷Ìâ

1137

Ìû×Ó

7805

»ý·Ö

abc

Rank: 9Rank: 9Rank: 9

»ý·Ö
7805
Ìø×ªµ½Ö¸¶¨Â¥²ã
Â¥Ö÷
¶¹°üʶ±ðÑéÖ¤Âë¼ÓÍ϶¯ÑéÖ¤ÂëʾÀý
¶¹°üʶ±ðÑéÖ¤Âë¼ÓÍ϶¯ÑéÖ¤ÂëʾÀý B2BÍøÂçÈí¼þ

  1. // AIWROK ×Ô¶¯»¯Á÷³Ì£ºÈ«ÆÁ½ØÍ¼ ¡ú Æô¶¯¶¹°ü ¡ú ·¢ËͽØÍ¼ ¡ú µÈ´ýAI»Ø´ð ¡ú ²É¼¯»Ø´ðÄÚÈÝ ¡ú ±£´æµ½Îļþ
  2. // È«³ÌʹÓà agent.getXml() »ñÈ¡½çÃæÔ´Âë
  3. // °üÃû£ºcom.larus.nova£¨¶¹°ü£©
  4. //
  5. // ʹÓÃ˵Ã÷£º
  6. //   1. ÔÚÐèÒª½ØÍ¼µÄÒ³ÃæÔËÐнű¾
  7. //   2. ½Å±¾»á×Ô¶¯½ØÍ¼²¢·¢Ë͸ø¶¹°ü·ÖÎö
  8. //   3. ²É¼¯½á¹û±£´æµ½ /sdcard/¶¹°ü½ØÍ¼·ÖÎö.json

  9. print.log("===== ¶¹°ü½ØÍ¼·¢ËÍÁ÷³ÌÆô¶¯ =====");
  10. print.time();

  11. // ========== ÅäÖÃÇø ==========
  12. var ¶¹°ü°üÃû = "com.larus.nova";
  13. var ½ØÍ¼±£´æÂ·¾¶ = "/sdcard/screenshot.png";

  14. // ·¢ËͺóµÈ´ýAI»Ø´ðµÄ×î´óÃëÊý£¨ÕûÌ峬ʱ£©
  15. var µÈ´ý»Ø´ð³¬Ê±Ãë = 8;

  16. // ¼ì²âµ½Ð»شð³öÏÖºó£¬Ôٵȴý¶àÉÙÃëÈûشðÊä³öÍêÕû
  17. var »Ø´ðÊä³öµÈ´ýÃë = 10;

  18. // ÑéÖ¤Â뻬¿éÍ϶¯Ð£×¼ÏµÊý£¨¸ù¾Ýʵ¼ÊЧ¹ûµ÷Õû£¬Ä¬ÈÏ1.0£©
  19. // Èç¹ûÍ϶¯¾àÀëÆ«´ó£¬µ÷С´ËÖµ£¨Èç0.95£©£»Èç¹ûƫС£¬µ÷´ó´ËÖµ£¨Èç1.05£©
  20. var »¬¿éУ׼ϵÊý = 1.0;

  21. // ========== »ñÈ¡É豸ÐÅÏ¢ ==========
  22. var ÆÁÄ»¿í = screen.getScreenWidth();
  23. var ÆÁÄ»¸ß = screen.getScreenHeight();
  24. var ÑéÖ¤Â뻬¿é¾àÀë = null;
  25. print.log("ÆÁÄ»³ß´ç£º" + ÆÁÄ»¿í + " x " + ÆÁÄ»¸ß);
  26. print.log("´úÀí״̬£º" + (agent.isOpen() ? "ÒÑ¿ªÆô" : "먦Æô"));

  27. // ========== ¹¤¾ßº¯Êý ==========

  28. function »ñÈ¡UI() {
  29.     var xml = agent.getXml();
  30.     return "" + xml;
  31. }

  32. function ×Ö·û´®³¤¶È(s) {
  33.     var str = "" + s;
  34.     return str.length;
  35. }

  36. function ½âÂëHTMLʵÌå(s) {
  37.     var str = "" + s;
  38.     str = str.replace(/
  39. /g, "\n");
  40.     str = str.replace(/
  41. /g, "\r");
  42.     str = str.replace(/        /g, "\t");
  43.     str = str.replace(/'/g, "'");
  44.     str = str.replace(/"/g, '"');
  45.     str = str.replace(/"/g, '"');
  46.     str = str.replace(/'/g, "'");
  47.     str = str.replace(/&/g, "&");
  48.     str = str.replace(/</g, "<");
  49.     str = str.replace(/>/g, ">");
  50.     return str;
  51. }

  52. function ²É¼¯AI»Ø´ðÁбí(xml, Ñϸñ¹ýÂË) {
  53.     if (Ñϸñ¹ýÂË === undefined) Ñϸñ¹ýÂË = true;
  54.     var xmlStr = "" + xml;
  55.     var »Ø´ðÁбí = [];

  56.     var listIdx = xmlStr.indexOf('id/message_list"');
  57.     if (listIdx === -1) {
  58.         print.log("⚠ δÕÒµ½ÏûÏ¢Áбí½Úµã");
  59.         return »Ø´ðÁбí;
  60.     }

  61.     var ºóÃæ = xmlStr.substring(listIdx);
  62.     var λÖà = 0;
  63.     while (true) {
  64.         var cvIdx = ºóÃæ.indexOf('id/content_view"', λÖÃ);
  65.         if (cvIdx === -1) break;

  66.         var ¶Î = ºóÃæ.substring(cvIdx);
  67.         
  68.         var cvBounds = ¶Î.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  69.         var isAI = false;
  70.         if (cvBounds) {
  71.             var cvX1 = parseInt(cvBounds[1]);
  72.             if (cvX1 < ÆÁÄ»¿í / 2) {
  73.                 isAI = true;
  74.             }
  75.         }

  76.         var ±êÇ©½áÊø = ¶Î.indexOf(">");
  77.         if (±êÇ©½áÊø === -1) break;
  78.         var ×Ó¶Î = ¶Î.substring(±êÇ©½áÊø + 1);

  79.         var Îı¾Æ¥Åä = ×Ó¶Î.match(/<node[^>]*?text="([^"]+)"[^>]*?class="android\.widget\.TextView"[^>]*?\/?>/);
  80.         if (!Îı¾Æ¥Åä) {
  81.             Îı¾Æ¥Åä = ×Ó¶Î.match(/<node[^>]*?class="android\.widget\.TextView"[^>]*?text="([^"]+)"[^>]*?\/?>/);
  82.         }

  83.         if (Îı¾Æ¥Åä && Îı¾Æ¥Åä[1]) {
  84.             var ԭʼÎı¾ = Îı¾Æ¥Åä[1];
  85.             var ½âÂëÎı¾ = ½âÂëHTMLʵÌå(ԭʼÎı¾);
  86.             if (Ñϸñ¹ýÂË) {
  87.                 if (isAI && ×Ö·û´®³¤¶È(½âÂëÎı¾) > 0) {
  88.                     »Ø´ðÁбí.push(½âÂëÎı¾);
  89.                 }
  90.             } else {
  91.                 if (×Ö·û´®³¤¶È(½âÂëÎı¾) > 0) {
  92.                     »Ø´ðÁбí.push(½âÂëÎı¾);
  93.                 }
  94.             }
  95.         }

  96.         Î»Öà = cvIdx + 30;
  97.     }

  98.     return »Ø´ðÁбí;
  99. }

  100. function »ñÈ¡µ±Ç°×îºóAI»Ø´ð(xml) {
  101.     var »Ø´ðÁбí = ²É¼¯AI»Ø´ðÁбí(xml);
  102.     if (»Ø´ðÁбí.length === 0) return "";
  103.     return »Ø´ðÁбí[»Ø´ðÁбí.length - 1];
  104. }

  105. // È«ÆÁ½ØÍ¼£¨Ê¹ÓÃshellÃüÁ
  106. function È«ÆÁ½ØÍ¼(±£´æÂ·¾¶) {
  107.     try {
  108.         var result = agent.shell("screencap -p " + ±£´æÂ·¾¶);
  109.         print.log("✓ ½ØÍ¼ÃüÁîÖ´ÐУº" + result);
  110.         
  111.         var lsResult = agent.shell("ls -la " + ±£´æÂ·¾¶);
  112.         print.log("✓ ½ØÍ¼Îļþ¼ì²é£º" + lsResult);
  113.         
  114.         return true;
  115.     } catch (e) {
  116.         print.log("⚠ ½ØÍ¼Ê§°Ü£º" + e.message);
  117.         return false;
  118.     }
  119. }

  120. // ²éÕÒ¶¹°üµÄ¼ÓºÅ°´Å¥£¨ÓÅÏÈÓÒÏÂ½Ç action_menu_entrance£©
  121. function ²éÕҼӺŰ´Å¥(xml) {
  122.     var xmlStr = "" + xml;
  123.    
  124.     var menuEntranceIdx = xmlStr.indexOf('id/action_menu_entrance"');
  125.     if (menuEntranceIdx !== -1) {
  126.         var ¶Î = xmlStr.substring(menuEntranceIdx);
  127.         var m = ¶Î.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  128.         if (m) {
  129.             return {
  130.                 x: (parseInt(m[1]) + parseInt(m[3])) / 2,
  131.                 y: (parseInt(m[2]) + parseInt(m[4])) / 2
  132.             };
  133.         }
  134.     }

  135.     var entranceIdx = xmlStr.indexOf('id/action_entrance"');
  136.     if (entranceIdx !== -1) {
  137.         var ¶Î2 = xmlStr.substring(entranceIdx);
  138.         var m2 = ¶Î2.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  139.         if (m2) {
  140.             return {
  141.                 x: (parseInt(m2[1]) + parseInt(m2[3])) / 2,
  142.                 y: (parseInt(m2[2]) + parseInt(m2[4])) / 2
  143.             };
  144.         }
  145.     }

  146.     var plusIdx = xmlStr.indexOf('text="+"');
  147.     if (plusIdx !== -1) {
  148.         var ¶Î3 = xmlStr.substring(plusIdx);
  149.         var m3 = ¶Î3.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  150.         if (m3) {
  151.             return {
  152.                 x: (parseInt(m3[1]) + parseInt(m3[3])) / 2,
  153.                 y: (parseInt(m3[2]) + parseInt(m3[4])) / 2
  154.             };
  155.         }
  156.     }

  157.     var attachIdx = xmlStr.indexOf('content-desc="¸½¼þ"');
  158.     if (attachIdx === -1) {
  159.         attachIdx = xmlStr.indexOf('content-desc="Ìí¼Ó"');
  160.     }
  161.     if (attachIdx !== -1) {
  162.         var ¶Î4 = xmlStr.substring(attachIdx);
  163.         var m4 = ¶Î4.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  164.         if (m4) {
  165.             return {
  166.                 x: (parseInt(m4[1]) + parseInt(m4[3])) / 2,
  167.                 y: (parseInt(m4[2]) + parseInt(m4[4])) / 2
  168.             };
  169.         }
  170.     }

  171.     return null;
  172. }

  173. function ²éÕÒÊäÈë¿òÖÐÐÄ(xml) {
  174.     var xmlStr = "" + xml;
  175.     var idx = xmlStr.indexOf('id/input_text"');
  176.     if (idx === -1) return null;

  177.     var ¶Î = xmlStr.substring(idx);
  178.     var m = ¶Î.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  179.     if (!m) return null;

  180.     var x1 = parseInt(m[1]);
  181.     var y1 = parseInt(m[2]);
  182.     var x2 = parseInt(m[3]);
  183.     var y2 = parseInt(m[4]);
  184.     return {
  185.         x: (x1 + x2) / 2,
  186.         y: (y1 + y2) / 2
  187.     };
  188. }

  189. function Õ³ÌùÎı¾(Îı¾) {
  190.     try {
  191.         Clipboard.copy("" + Îı¾);
  192.     } catch (e) {
  193.         print.log("⚠ Clipboard.copy ʧ°Ü£º" + e.message);
  194.     }
  195.     sleep.millisecond(ºÁÃë = 300);

  196.     try {
  197.         agent.shell("service call clipboard 3 i32 1 s16 '" + Îı¾ + "' i32 0");
  198.     } catch (e2) {
  199.         // ºöÂÔ´íÎó
  200.     }
  201.     sleep.millisecond(ºÁÃë = 300);

  202.     agent.shell("input keyevent 279");
  203.     sleep.second(Ãë = 1);
  204.     print.log("✓ ÒÑÕ³ÌùÎı¾£º" + Îı¾);
  205. }

  206. function ÊÇ·ñÒѽøÈëÏà»úÒ³Ãæ(xml) {
  207.     var xmlStr = "" + xml;
  208.     return xmlStr.indexOf('id/focus_container"') !== -1 && xmlStr.indexOf('id/suggest_action_bar"') === -1;
  209. }

  210. function ÊÇ·ñÒѽøÈëͼƬԤÀÀÒ³Ãæ(xml) {
  211.     var xmlStr = "" + xml;
  212.     return xmlStr.indexOf('id/focus_container"') !== -1 && xmlStr.indexOf('id/suggest_action_bar"') !== -1;
  213. }

  214. function ÊÇ·ñÒѽøÈëͼƬѡÔñÁбíÒ³Ãæ(xml) {
  215.     var xmlStr = "" + xml;
  216.     return xmlStr.indexOf('id/media_viewpager"') !== -1 || xmlStr.indexOf('id/media_list"') !== -1;
  217. }

  218. function ²éÕÒÏà²áÑ¡Ïî(xml) {
  219.     var xmlStr = "" + xml;
  220.    
  221.     if (ÊÇ·ñÒѽøÈëͼƬԤÀÀÒ³Ãæ(xml)) {
  222.         return { x: -1, y: -1, ÒѽøÈëÔ¤ÀÀÒ³: true };
  223.     }
  224.    
  225.     if (ÊÇ·ñÒѽøÈëͼƬѡÔñÁбíÒ³Ãæ(xml)) {
  226.         return { x: -1, y: -1, ÒѽøÈëÑ¡ÔñÒ³: true };
  227.     }
  228.    
  229.     var albumIdx = xmlStr.indexOf('text="Ïà²á"');
  230.     if (albumIdx === -1) {
  231.         albumIdx = xmlStr.indexOf('text="ͼƬ"');
  232.     }
  233.     if (albumIdx === -1) {
  234.         albumIdx = xmlStr.indexOf('text="ÕÕÆ¬"');
  235.     }
  236.     if (albumIdx === -1) {
  237.         albumIdx = xmlStr.indexOf('text="ËùÓÐÕÕÆ¬"');
  238.     }
  239.     if (albumIdx === -1) {
  240.         albumIdx = xmlStr.indexOf('text="´ÓÏà²áÑ¡Ôñ"');
  241.     }
  242.     if (albumIdx === -1) {
  243.         albumIdx = xmlStr.indexOf('text="Ñ¡ÔñͼƬ"');
  244.     }
  245.     if (albumIdx !== -1) {
  246.         var ¶Î = xmlStr.substring(albumIdx);
  247.         var m = ¶Î.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  248.         if (m) {
  249.             return {
  250.                 x: (parseInt(m[1]) + parseInt(m[3])) / 2,
  251.                 y: (parseInt(m[2]) + parseInt(m[4])) / 2
  252.             };
  253.         }
  254.     }

  255.     var albumIconIdx = xmlStr.indexOf('content-desc="Ïà²á"');
  256.     if (albumIconIdx === -1) {
  257.         albumIconIdx = xmlStr.indexOf('content-desc="ͼƬ"');
  258.     }
  259.     if (albumIconIdx !== -1) {
  260.         var ¶Î2 = xmlStr.substring(albumIconIdx);
  261.         var m2 = ¶Î2.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  262.         if (m2) {
  263.             return {
  264.                 x: (parseInt(m2[1]) + parseInt(m2[3])) / 2,
  265.                 y: (parseInt(m2[2]) + parseInt(m2[4])) / 2
  266.             };
  267.         }
  268.     }

  269.     return null;
  270. }

  271. // ²éÕÒͼƬѡÔñÆ÷ÖеĵÚÒ»ÕÅͼƬ£¨¸Õ½ØµÄͼ£©
  272. function ²éÕÒµÚÒ»ÕÅͼƬ(xml) {
  273.     var xmlStr = "" + xml;
  274.    
  275.     var thumbnailIdx = xmlStr.indexOf('id/iv_thumbnail"');
  276.     if (thumbnailIdx !== -1) {
  277.         var ¶Î = xmlStr.substring(thumbnailIdx);
  278.         var m = ¶Î.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  279.         if (m) {
  280.             return {
  281.                 x: (parseInt(m[1]) + parseInt(m[3])) / 2,
  282.                 y: (parseInt(m[2]) + parseInt(m[4])) / 2
  283.             };
  284.         }
  285.     }

  286.     var imageIdx = xmlStr.indexOf('class="android.widget.ImageView"');
  287.     if (imageIdx !== -1) {
  288.         var ¶Î2 = xmlStr.substring(imageIdx);
  289.         var m2 = ¶Î2.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  290.         if (m2) {
  291.             var x = (parseInt(m2[1]) + parseInt(m2[3])) / 2;
  292.             var y = (parseInt(m2[2]) + parseInt(m2[4])) / 2;
  293.             if (y > 400) {
  294.                 return { x: x, y: y };
  295.             }
  296.         }
  297.     }

  298.     return null;
  299. }

  300. // ²éÕÒ·¢ËͰ´Å¥
  301. function ²éÕÒ·¢ËͰ´Å¥ÖÐÐÄ(xml) {
  302.     var xmlStr = "" + xml;

  303.     var sendTextIdx = xmlStr.indexOf('text="·¢ËÍ"');
  304.     if (sendTextIdx !== -1) {
  305.         var ¶Î = xmlStr.substring(sendTextIdx);
  306.         var m = ¶Î.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  307.         if (m) {
  308.             return {
  309.                 x: (parseInt(m[1]) + parseInt(m[3])) / 2,
  310.                 y: (parseInt(m[2]) + parseInt(m[4])) / 2
  311.             };
  312.         }
  313.     }

  314.     var sendIdIdx = xmlStr.indexOf('id/action_send"');
  315.     if (sendIdIdx !== -1) {
  316.         var ¶Î2 = xmlStr.substring(sendIdIdx);
  317.         var m2 = ¶Î2.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  318.         if (m2) {
  319.             return {
  320.                 x: (parseInt(m2[1]) + parseInt(m2[3])) / 2,
  321.                 y: (parseInt(m2[2]) + parseInt(m2[4])) / 2
  322.             };
  323.         }
  324.     }

  325.     var rightIconIdx = xmlStr.indexOf('id/right_icon"');
  326.     if (rightIconIdx !== -1) {
  327.         var ¶Î3 = xmlStr.substring(rightIconIdx);
  328.         var m3 = ¶Î3.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  329.         if (m3) {
  330.             var y = (parseInt(m3[2]) + parseInt(m3[4])) / 2;
  331.             if (y > 3000) {
  332.                 return {
  333.                     x: (parseInt(m3[1]) + parseInt(m3[3])) / 2,
  334.                     y: y
  335.                 };
  336.             }
  337.         }
  338.     }

  339.     return null;
  340. }

  341. function ²éÕÒ²¢µã»÷Õ¹¿ª°´Å¥(xml) {
  342.     var xmlStr = "" + xml;
  343.    
  344.     var expandIdx = xmlStr.indexOf('content-desc="Õ¹¿ª"');
  345.     if (expandIdx === -1) {
  346.         expandIdx = xmlStr.indexOf('content-desc="¸ü¶à"');
  347.     }
  348.     if (expandIdx === -1) {
  349.         expandIdx = xmlStr.indexOf('content-desc="ÊÕÆð"');
  350.     }
  351.    
  352.     if (expandIdx !== -1) {
  353.         var ¶Î = xmlStr.substring(expandIdx);
  354.         var m = ¶Î.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  355.         if (m) {
  356.             var x = (parseInt(m[1]) + parseInt(m[3])) / 2;
  357.             var y = (parseInt(m[2]) + parseInt(m[4])) / 2;
  358.             agent.click(x, y);
  359.             print.log("✓ Òѵã»÷Õ¹¿ª°´Å¥£¨content-desc£©£¬×ø±ê(" + Math.round(x) + "," + Math.round(y) + ")");
  360.             sleep.second(Ãë = 1);
  361.             return true;
  362.         }
  363.     }

  364.     var textExpandIdx = xmlStr.indexOf('text="Õ¹¿ª"');
  365.     if (textExpandIdx === -1) {
  366.         textExpandIdx = xmlStr.indexOf('text="¸ü¶à"');
  367.     }
  368.     if (textExpandIdx !== -1) {
  369.         var ¶Î2 = xmlStr.substring(textExpandIdx);
  370.         var m2 = ¶Î2.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  371.         if (m2) {
  372.             var x2 = (parseInt(m2[1]) + parseInt(m2[3])) / 2;
  373.             var y2 = (parseInt(m2[2]) + parseInt(m2[4])) / 2;
  374.             agent.click(x2, y2);
  375.             print.log("✓ Òѵã»÷Õ¹¿ª°´Å¥£¨Îı¾Æ¥Å䣩£¬×ø±ê(" + Math.round(x2) + "," + Math.round(y2) + ")");
  376.             sleep.second(Ãë = 1);
  377.             return true;
  378.         }
  379.     }

  380.     return false;
  381. }

  382. function µÈ´ýAI»Ø´ðÍê³É(·¢ËÍǰµÄ×îºóÎı¾) {
  383.     var ÒѺÄʱ = 0;
  384.     var ¼ì²é¼ä¸ôÃë = 1;
  385.     var ·¢ËÍǰ»Ø´ðÊýÁ¿ = 0;

  386.     var xml = »ñÈ¡UI();
  387.     var ³õʼÁбí = ²É¼¯AI»Ø´ðÁбí(xml, false);
  388.     ·¢ËÍǰ»Ø´ðÊýÁ¿ = ³õʼÁбí.length;
  389.     print.log("·¢ËÍǰAI»Ø´ðÊýÁ¿£º" + ·¢ËÍǰ»Ø´ðÊýÁ¿);

  390.     while (ÒѺÄʱ < µÈ´ý»Ø´ð³¬Ê±Ãë) {
  391.         sleep.second(Ãë = ¼ì²é¼ä¸ôÃë);
  392.         ÒѺÄʱ += ¼ì²é¼ä¸ôÃë;

  393.         xml = »ñÈ¡UI();

  394.         var »Ø´ðÁбí = ²É¼¯AI»Ø´ðÁбí(xml, false);
  395.         
  396.         if (»Ø´ðÁбí.length > ·¢ËÍǰ»Ø´ðÊýÁ¿) {
  397.             print.log("✓ ¼ì²âµ½Ð»شð£¨" + ÒѺÄʱ + "Ã룩£¬ÊýÁ¿´Ó" + ·¢ËÍǰ»Ø´ðÊýÁ¿ + "Ôö¼Óµ½" + »Ø´ðÁбí.length);
  398.             sleep.second(Ãë = 3);
  399.             
  400.             xml = »ñÈ¡UI();
  401.             var ×îÖÕÁбí = ²É¼¯AI»Ø´ðÁбí(xml, false);
  402.             if (×îÖÕÁбí.length > 0) {
  403.                 var ×îÖÕÎı¾ = ×îÖÕÁбí[×îÖÕÁбí.length - 1];
  404.                 print.log("✓ ²É¼¯³É¹¦£¬·µ»Ø½á¹û£º" + ×îÖÕÎı¾);
  405.                 return ×îÖÕÎı¾;
  406.             }
  407.         }
  408.     }

  409.     print.log("⚠ µÈ´ýAI»Ø´ð³¬Ê±£¨" + µÈ´ý»Ø´ð³¬Ê±Ãë + "Ã룩£¬³¢ÊÔ·µ»Øµ±Ç°ÄÚÈÝ");
  410.     xml = »ñÈ¡UI();
  411.     var ¶µµ×Áбí = ²É¼¯AI»Ø´ðÁбí(xml, false);
  412.     if (¶µµ×Áбí.length > 0) {
  413.         var ¶µµ×Îı¾ = ¶µµ×Áбí[¶µµ×Áбí.length - 1];
  414.         print.log("✓ ³¬Ê±¶µµ×£º·µ»Øµ±Ç°²É¼¯µ½µÄ»Ø´ð£º" + ¶µµ×Îı¾);
  415.         return ¶µµ×Îı¾;
  416.     }
  417.     return null;
  418. }

  419. function ¸ñʽ»¯¶Ô»°(¶Ô»°Áбí) {
  420.     var Êý¾Ý = {
  421.         "²É¼¯Ê±¼ä": new Date().toString(),
  422.         "¶Ô»°ÂÖÊý": ¶Ô»°Áбí.length,
  423.         "¶Ô»°¼Ç¼": []
  424.     };
  425.    
  426.     for (var i = 0; i < ¶Ô»°Áбí.length; i++) {
  427.         Êý¾Ý.¶Ô»°¼Ç¼.push({
  428.             "ÐòºÅ": i + 1,
  429.             "½ÇÉ«": ¶Ô»°Áбí[i].½ÇÉ«,
  430.             "ÄÚÈÝ": ¶Ô»°Áбí[i].ÄÚÈÝ
  431.         });
  432.     }
  433.    
  434.     return JSON.stringify(Êý¾Ý, null, 2);
  435. }

  436. function дÈëÎļþ(Îļþ·¾¶, ÄÚÈÝ) {
  437.     try {
  438.         var str = "" + ÄÚÈÝ;
  439.         var fos = new java.io.FileOutputStream(Îļþ·¾¶);
  440.         fos.write(str.getBytes("UTF-8"));
  441.         fos.close();
  442.         print.log("✓ ÒÑдÈëÎļþ£¨JSON¸ñʽ£©£º" + Îļþ·¾¶);
  443.         
  444.         var catResult = agent.shell("cat " + Îļþ·¾¶ + " | head -2");
  445.         print.log("✓ catÑéÖ¤½á¹û£º" + catResult);
  446.         
  447.         return true;
  448.     } catch (e) {
  449.         print.log("⚠ JSONдÈëÒì³££º" + e.message);
  450.     }

  451.     print.log("✗ дÈëÎļþʧ°Ü£º" + Îļþ·¾¶);
  452.     return false;
  453. }

  454. function Ö÷Á÷³Ì() {
  455.     // ²½Öè1£ºÈ«ÆÁ½ØÍ¼
  456.     print.log("\n========== ²½Öè1£ºÈ«ÆÁ½ØÍ¼ ==========");
  457.     var ½ØÍ¼³É¹¦ = È«ÆÁ½ØÍ¼(½ØÍ¼±£´æÂ·¾¶);
  458.     if (!½ØÍ¼³É¹¦) {
  459.         print.log("✗ ½ØÍ¼Ê§°Ü£¬Í˳öÁ÷³Ì");
  460.         print.log("===== ¶¹°ü½ØÍ¼·¢ËÍÁ÷³Ì½áÊø =====");
  461.         return;
  462.     }

  463.     // ²½Öè2£ºÆô¶¯¶¹°üAPP
  464.     print.log("\n========== ²½Öè2£ºÆô¶¯¶¹°üAPP ==========");
  465.     try {
  466.         app.openApp(¶¹°ü°üÃû);
  467.         print.log("✓ ÒÑÆô¶¯¶¹°ü");
  468.     } catch (e) {
  469.         print.log("⚠ Æô¶¯Ê§°Ü£º" + e.message);
  470.     }
  471.     sleep.second(Ãë = 5);

  472.     // ²½Öè3£ºÈ·ÈϽøÈë¶Ô»°Ò³Ãæ
  473.     print.log("\n========== ²½Öè3£ºÈ·ÈϽøÈë¶Ô»°Ò³Ãæ ==========");
  474.     var xml = »ñÈ¡UI();
  475.     if (xml.indexOf("message_list") === -1) {
  476.         print.log("⚠ µ±Ç°Ò³Ãæ¿ÉÄܲ»ÊǶ¹°ü¶Ô»°Ò³£¬Ôٴεȴý");
  477.         sleep.second(Ãë = 3);
  478.         xml = »ñÈ¡UI();
  479.     }

  480.     if (xml.indexOf("message_list") !== -1) {
  481.         print.log("✓ ÒѽøÈë¶¹°ü¶Ô»°Ò³Ãæ");
  482.     } else {
  483.         print.log("⚠ δ¼ì²âµ½ÏûÏ¢Áбí");
  484.     }

  485.     // ²½Öè4£º¼Ç¼·¢ËÍǰµÄ×îºóÒ»ÌõAI»Ø´ð£¨×÷Ϊ¼ì²â»ùÏߣ©
  486.     var ·¢ËÍǰ×îºóÎı¾ = »ñÈ¡µ±Ç°×îºóAI»Ø´ð(xml);

  487.     // ²½Öè5£ºµã»÷¼ÓºÅ°´Å¥´ò¿ª¸½¼þ²Ëµ¥
  488.     print.log("\n========== ²½Öè5£º´ò¿ª¸½¼þ²Ëµ¥ ==========");
  489.     var ¼ÓºÅ°´Å¥ = ²éÕҼӺŰ´Å¥(xml);
  490.     if (¼ÓºÅ°´Å¥) {
  491.         agent.click(¼ÓºÅ°´Å¥.x, ¼ÓºÅ°´Å¥.y);
  492.         print.log("✓ Òѵã»÷action_entrance°´Å¥£¬×ø±ê(" + Math.round(¼ÓºÅ°´Å¥.x) + "," + Math.round(¼ÓºÅ°´Å¥.y) + ")");
  493.     } else {
  494.         print.log("⚠ δÕÒµ½¼ÓºÅ°´Å¥£¬³¢ÊÔµã»÷ÊäÈë¿ò×ó²àÇøÓò");
  495.         var inputIdx = xml.indexOf('id/speak_area"');
  496.         if (inputIdx !== -1) {
  497.             var ¶Î = xml.substring(inputIdx);
  498.             var m = ¶Î.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  499.             if (m) {
  500.                 var speakLeft = parseInt(m[1]);
  501.                 var speakY = (parseInt(m[2]) + parseInt(m[4])) / 2;
  502.                 agent.click(speakLeft - 50, speakY);
  503.                 print.log("✓ Òѵã»÷ÊäÈë¿ò×ó²àÇøÓò");
  504.             }
  505.         }
  506.     }
  507.     sleep.second(Ãë = 2);

  508.     // ²½Öè6£ºµÈ´ýÒ³ÃæÌø×ª²¢´¦ÀíͼƬѡÔñ
  509.     print.log("\n========== ²½Öè6£º´¦ÀíͼƬѡÔñÒ³Ãæ ==========");
  510.     var µ±Ç°Ò³Ãæ×´Ì¬ = "δ֪";
  511.     var ³¢ÊÔ´ÎÊý = 0;
  512.     while (µ±Ç°Ò³Ãæ×´Ì¬ === "δ֪" && ³¢ÊÔ´ÎÊý < 5) {
  513.         sleep.second(Ãë = 2);
  514.         xml = »ñÈ¡UI();
  515.         
  516.         if (ÊÇ·ñÒѽøÈëͼƬԤÀÀÒ³Ãæ(xml)) {
  517.             µ±Ç°Ò³Ãæ×´Ì¬ = "Ô¤ÀÀÒ³";
  518.             print.log("✓ ÒѽøÈëͼƬԤÀÀÒ³Ãæ");
  519.         } else if (ÊÇ·ñÒѽøÈëͼƬѡÔñÁбíÒ³Ãæ(xml)) {
  520.             µ±Ç°Ò³Ãæ×´Ì¬ = "Ñ¡ÔñÁбí";
  521.             print.log("✓ ÒѽøÈëͼƬѡÔñÁбíÒ³Ãæ");
  522.         } else if (ÊÇ·ñÒѽøÈëÏà»úÒ³Ãæ(xml)) {
  523.             print.log("✓ ÒѽøÈëÏà»úÒ³Ãæ£¬µã»÷×óϽÇͼƬËõÂÔͼ½øÈëÏà²á");
  524.             agent.click(ÆÁÄ»¿í * 0.15, ÆÁÄ»¸ß * 0.95);
  525.             print.log("✓ Òѵã»÷×óϽÇͼƬËõÂÔͼ");
  526.             continue;
  527.         } else {
  528.             var Ïà²áÑ¡Ïî = ²éÕÒÏà²áÑ¡Ïî(xml);
  529.             if (Ïà²áÑ¡Ïî && !Ïà²áÑ¡Ïî.ÒѽøÈëÔ¤ÀÀÒ³ && !Ïà²áÑ¡Ïî.ÒѽøÈëÑ¡ÔñÒ³) {
  530.                 print.log("✓ ÕÒµ½Ïà²áÑ¡Ï׼±¸µã»÷");
  531.                 agent.click(Ïà²áÑ¡Ïî.x, Ïà²áÑ¡Ïî.y);
  532.                 print.log("✓ Òѵã»÷Ïà²áÑ¡Ïî£¬×ø±ê(" + Math.round(Ïà²áÑ¡Ïî.x) + "," + Math.round(Ïà²áÑ¡Ïî.y) + ")");
  533.                 continue;
  534.             }
  535.         }
  536.         ³¢ÊÔ´ÎÊý++;
  537.     }
  538.    
  539.     if (µ±Ç°Ò³Ãæ×´Ì¬ === "Ñ¡ÔñÁбí") {
  540.         var µÚÒ»ÕÅͼƬ = ²éÕÒµÚÒ»ÕÅͼƬ(xml);
  541.         if (µÚÒ»ÕÅͼƬ) {
  542.             agent.click(µÚÒ»ÕÅͼƬ.x, µÚÒ»ÕÅͼƬ.y);
  543.             print.log("✓ ÒÑÑ¡ÔñµÚÒ»ÕÅͼƬ£¬×ø±ê(" + Math.round(µÚÒ»ÕÅͼƬ.x) + "," + Math.round(µÚÒ»ÕÅͼƬ.y) + ")");
  544.             sleep.second(Ãë = 2);
  545.             
  546.             xml = »ñÈ¡UI();
  547.             if (ÊÇ·ñÒѽøÈëͼƬԤÀÀÒ³Ãæ(xml)) {
  548.                 µ±Ç°Ò³Ãæ×´Ì¬ = "Ô¤ÀÀÒ³";
  549.                 print.log("✓ ÒѽøÈëͼƬԤÀÀÒ³Ãæ");
  550.             }
  551.         }
  552.     }

  553.     // ²½Öè7£ºÕ³ÌùÎÄ×Öµ½ÊäÈë¿ò£¨Ñ¡ÔñͼƬºóÂíÉÏÕ³Ìù£©
  554.     print.log("\n========== ²½Öè7£ºÕ³ÌùÎÄ×ÖѯÎÊÍ϶¯¾àÀë×ø±ê ==========");
  555.     xml = »ñÈ¡UI();
  556.     var ÊäÈë¿ò = ²éÕÒÊäÈë¿òÖÐÐÄ(xml);
  557.     if (ÊäÈë¿ò) {
  558.         agent.click(ÊäÈë¿ò.x, ÊäÈë¿ò.y);
  559.         sleep.second(Ãë = 1);
  560.         Õ³ÌùÎı¾("Çë¸æËßÎÒÑéÖ¤Â뻬¿éÐèÒªÍ϶¯µÄ¾àÀë×ø±ê£¬Ö»Êä³ö×ø±êÊý×Ö£¬²»ÒªÆäËûÎÄ×Ö");
  561.     } else {
  562.         print.log("⚠ δÕÒµ½ÊäÈë¿ò");
  563.     }
  564.     sleep.second(Ãë = 2);

  565.     // ²½Öè8£º·¢ËÍͼƬºÍÎÄ×Ö
  566.     print.log("\n========== ²½Öè8£º·¢ËÍͼƬºÍÎÄ×Ö ==========");
  567.     if (µ±Ç°Ò³Ãæ×´Ì¬ === "Ô¤ÀÀÒ³") {
  568.         var confirmX = ÆÁÄ»¿í * 0.5;
  569.         var confirmY = ÆÁÄ»¸ß * 0.92;
  570.         agent.click(confirmX, confirmY);
  571.         print.log("✓ Òѵã»÷Ô¤ÀÀÒ³µ×²¿Öмä°×É«¶Ô¹´È·Èϰ´Å¥£¬×ø±ê(" + Math.round(confirmX) + "," + Math.round(confirmY) + ")");
  572.         sleep.second(Ãë = 3);
  573.         xml = »ñÈ¡UI();
  574.     }
  575.    
  576.     var sendBtn = ²éÕÒ·¢ËͰ´Å¥ÖÐÐÄ(xml);
  577.     if (sendBtn) {
  578.         agent.click(sendBtn.x, sendBtn.y);
  579.         print.log("✓ Òѵã»÷¶Ô»°Ò³Ãæ·¢ËͰ´Å¥£¬×ø±ê(" + Math.round(sendBtn.x) + "," + Math.round(sendBtn.y) + ")");
  580.     } else {
  581.         var actionSendIdx = xml.indexOf('id/action_send"');
  582.         if (actionSendIdx !== -1) {
  583.             var ¶Î = xml.substring(actionSendIdx);
  584.             var m = ¶Î.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  585.             if (m) {
  586.                 var sendX = (parseInt(m[1]) + parseInt(m[3])) / 2;
  587.                 var sendY = (parseInt(m[2]) + parseInt(m[4])) / 2;
  588.                 agent.click(sendX, sendY);
  589.                 print.log("✓ Òѵã»÷action_send°´Å¥£¬×ø±ê(" + Math.round(sendX) + "," + Math.round(sendY) + ")");
  590.             }
  591.         }
  592.     }
  593.     sleep.second(Ãë = 5);

  594.     // ²½Öè9£º¼Ç¼·¢ËͺóµÄ»ùÏßÎı¾
  595.     print.log("\n========== ²½Öè9£º¼Ç¼»ùÏßÎı¾ ==========");
  596.     xml = »ñÈ¡UI();
  597.     ·¢ËÍǰ×îºóÎı¾ = »ñÈ¡µ±Ç°×îºóAI»Ø´ð(xml);
  598.     print.log("·¢ËÍǰ×îºóÎı¾³¤¶È£º" + ×Ö·û´®³¤¶È(·¢ËÍǰ×îºóÎı¾));

  599.     // ²½Öè10£ºµÈ´ýAI»Ø´ð
  600.     print.log("\n========== ²½Öè10£ºµÈ´ýAI»Ø´ð ==========");

  601.     var лشðÎı¾ = µÈ´ýAI»Ø´ðÍê³É(·¢ËÍǰ×îºóÎı¾);

  602.     // ²½Öè11£º½âÎö×ø±ê²¢±£´æÎªÈ«¾Ö±äÁ¿
  603.     print.log("\n========== ²½Öè11£º½âÎö×ø±ê ==========");
  604.    
  605.     if (лشðÎı¾ && ×Ö·û´®³¤¶È(лشðÎı¾) > 0) {
  606.         print.log("✓ ²É¼¯µ½AI»Ø´ð");
  607.         print.log("--- ²É¼¯ÄÚÈÝ¿ªÊ¼ ---");
  608.         print.log(лشðÎı¾);
  609.         print.log("--- ²É¼¯ÄÚÈݽáÊø ---");
  610.         
  611.         var ×ø±êÆ¥Åä = лشðÎı¾.match(/(\d+)\s*[,£¬]\s*(\d+)/);
  612.         if (×ø±êÆ¥Åä) {
  613.             ÑéÖ¤Â뻬¿é¾àÀë = {
  614.                 x: parseInt(×ø±êÆ¥Åä[1]),
  615.                 y: parseInt(×ø±êÆ¥Åä[2])
  616.             };
  617.             print.log("✓ ÌáÈ¡µ½×ø±ê£º(" + ÑéÖ¤Â뻬¿é¾àÀë.x + ", " + ÑéÖ¤Â뻬¿é¾àÀë.y + ")");
  618.         } else {
  619.             var µ¥¸öÊý×ÖÆ¥Åä = лشðÎı¾.match(/(\d+)/);
  620.             if (µ¥¸öÊý×ÖÆ¥Åä) {
  621.                 ÑéÖ¤Â뻬¿é¾àÀë = {
  622.                     x: parseInt(µ¥¸öÊý×ÖÆ¥Åä[1]),
  623.                     y: 0
  624.                 };
  625.                 print.log("✓ ÌáÈ¡µ½µ¥¸öÊý×Ö£º" + ÑéÖ¤Â뻬¿é¾àÀë.x);
  626.             } else {
  627.                 ÑéÖ¤Â뻬¿é¾àÀë = null;
  628.                 print.log("⚠ δÌáÈ¡µ½×ø±ê");
  629.             }
  630.         }
  631.     } else {
  632.         ÑéÖ¤Â뻬¿é¾àÀë = null;
  633.         print.log("⚠ δÄܲɼ¯µ½Ð»شð");
  634.     }

  635.     // ²½Öè12£ºÇл»»ØBÕ¾²¢Í϶¯ÑéÖ¤Â뻬¿é
  636.     if (ÑéÖ¤Â뻬¿é¾àÀë && ÑéÖ¤Â뻬¿é¾àÀë.x > 0) {
  637.         print.log("\n========== ²½Öè12£ºÇл»»ØBÕ¾²¢Í϶¯»¬¿é ==========");
  638.         
  639.         agent.shell("input keyevent 187");
  640.         print.log("✓ ÒѰ´ºǫ́¼ü´ò¿ªÈÎÎñÁбí");
  641.         sleep.second(Ãë = 2);

  642.         xml = »ñÈ¡UI();
  643.         var biliIdx = xml.indexOf('ßÙÁ¨ßÙÁ¨');
  644.         if (biliIdx === -1) {
  645.             biliIdx = xml.indexOf('bilibili');
  646.         }
  647.         
  648.         if (biliIdx !== -1) {
  649.             var ¶Î = xml.substring(biliIdx);
  650.             var m = ¶Î.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  651.             if (m) {
  652.                 var clickX = (parseInt(m[1]) + parseInt(m[3])) / 2;
  653.                 var clickY = (parseInt(m[2]) + parseInt(m[4])) / 2;
  654.                 agent.click(clickX, clickY);
  655.                 print.log("✓ Òѵã»÷BÕ¾ÈÎÎñ¿¨Æ¬£¬×ø±ê(" + Math.round(clickX) + "," + Math.round(clickY) + ")");
  656.             }
  657.         } else {
  658.             print.log("⚠ δÕÒµ½BÕ¾ÈÎÎñ¿¨Æ¬£¬³¢ÊÔÖ±½Ó´ò¿ª");
  659.             try {
  660.                 app.openApp("tv.danmaku.bili");
  661.                 print.log("✓ ÒÑ´ò¿ªBÕ¾");
  662.             } catch (e) {
  663.                 print.log("⚠ ´ò¿ªBվʧ°Ü£º" + e.message);
  664.             }
  665.         }
  666.         sleep.second(Ãë = 3);

  667.         var xml = »ñÈ¡UI();
  668.         var ÑéÖ¤ÂëÇøÓò×ó±ß½ç = ÆÁÄ»¿í * 0.15;
  669.         
  670.         var »¬¿é¹ìµÀÆ¥Åä = xml.match(/<node[^>]*?text="Í϶¯»¬¿éÍê³Éƴͼ"[^>]*?bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  671.         if (»¬¿é¹ìµÀÆ¥Åä) {
  672.             ÑéÖ¤ÂëÇøÓò×ó±ß½ç = parseInt(»¬¿é¹ìµÀÆ¥Åä[1]);
  673.         }

  674.         var Í϶¯¾àÀë = ÑéÖ¤Â뻬¿é¾àÀë.x * »¬¿éУ׼ϵÊý;

  675.         var startX = ÑéÖ¤ÂëÇøÓò×ó±ß½ç + 50;
  676.         var startY = ÆÁÄ»¸ß * 0.42;
  677.         var endX = startX + Í϶¯¾àÀë;
  678.         var endY = startY;

  679.         print.log("✓ ÑéÖ¤ÂëÇøÓò×ó±ß½ç: " + ÑéÖ¤ÂëÇøÓò×ó±ß½ç + ", Í϶¯¾àÀë: " + Í϶¯¾àÀë);
  680.         agent.swip(startX, startY, endX, endY, 2000);
  681.         print.log("✓ ÒÑÍ϶¯»¬¿é£¬Æðµã(" + Math.round(startX) + "," + Math.round(startY) + ")£¬ÖÕµã(" + Math.round(endX) + "," + Math.round(endY) + ")");
  682.     }

  683.     print.log("\n===== ¶¹°ü½ØÍ¼·¢ËÍÁ÷³Ì½áÊø =====");
  684. }

  685. Ö÷Á÷³Ì();
¸´ÖÆ´úÂë


»Ø¸´

ʹÓõÀ¾ß ¾Ù±¨

±¾°æ»ý·Ö¹æÔò

¹Ø±Õ

QQ|»ÓªÏúÈí¼þ×ÛºÏÌÖÂÛ|»ÓªÏúÈí¼þÓÐÎʱشð|»ÓªÏúÈí¼þ½Ì³Ì×¨Çø|»ÓªÏúÈí¼þPOST½Å±¾·ÖÏí|»ÓªÏúÈí¼þÆÕͨ½Å±¾·ÖÏí|»ÓªÏúÈí¼þÈí¼þ×ÊѶ|»ÓªÏúÈí¼þ¾«Æ·Èí¼þ|»ÓªÏúÈí¼þ¸üй«¸æ|ÓªÏúÈí¼þ|B2BÈí¼þ|B2BÍøÂçÈí¼þ ( ¾©ICP±¸09078825ºÅ )±¾ÍøÕ¾¿ª·¢µÄÓªÏúÈí¼þÊÇÒ»¿îеÄÍøÂçÓªÏúÈí¼þ£¬Õâ¿îÓªÏú¿ÉÒÔÈ¥ÍøÕ¾Èí¼þ£¬²©¿ÍÈí¼þ£¬B2BÈí¼þ£¬·ÖÀàÐÅÏ¢Íø·¢Ìù£¬¿ÉÒÔÇÀɳ·¢£¬¿ÉÒÔµ½°Ù¶ÈÎÄ¿âÉÏ´«WORDÎĵµ£¬¿ÉÒÔµ½Ò»Ð©ÊÇÏà²áÍøÕ¾×Ô¶¯ÉÏ´«Í¼Æ¬£¬Õâ¸ö×Ô¶¯·¢ÌûÈí¼þ×Ô´øÔÆÖ©Ö룬¼Ó¿ìÊÕ¼£¬ÓÐ6ÖÖ¶Ô½Ó´òÂë½Ó¿Ú£¬·½±ã£¬Ð§Âʸߣ¬Ëٶȿ죬¶øÇÒ¶ÔÍ϶¯µÄÑéÖ¤ÂëÈ«ÍøµÚÒ»¼Ò¶À¼ÒÖ§³Ö£¬È«²¿Ô­´´¼¼Êõ£¬¶À¼ÒÑз¢£¬Õý°æÔ­´´´ø°æÈ¨Èí¼þ¡£Ñ¡ÔñÍòÄÜÓªÏúÈí¼þ£¬¾ÍÑ¡ÔñÁËÒ»ÖÖ׬ǮµÄЧÂÊ£¬´ÓûÓб»³¬Ô½¹ý£¬Ò»Ö±ÔÚŬÁ¦Ñз¢Ð¼¼Êõ¡£·Å·ÉÃÎÏ룬½â·ÅË«ÊÖ£¬À´µã´´Ò⣬³É¾ÍÄãµÄÃÎÏ룬¾ÍÔÚÍòÄÜÓªÏúÈí¼þ¿ªÊ¼

map2

GMT+8, 2026-7-14 12:16 , Processed in 0.350537 second(s), 35 queries .

¿ìËٻظ´ ·µ»Ø¶¥²¿ ·µ»ØÁбí