Full Code of qulingyuan/robVeg for AI

master 8901283c090d cached
3 files
5.1 KB
2.1k tokens
5 symbols
1 requests
Download .txt
Repository: qulingyuan/robVeg
Branch: master
Commit: 8901283c090d
Files: 3
Total size: 5.1 KB

Directory structure:
gitextract_98o64i9s/

├── README.md
├── main.js
└── project.json

================================================
FILE CONTENTS
================================================

================================================
FILE: README.md
================================================
今天发现了一个可以在安卓机上运行脚本的工具——[Auto.js](https://g.pro.autojs.org/docs/#/zh-cn/),简单的写了个脚本用来抢菜。

## 美团买菜版本

这个脚本适用于美团买菜 v5.32.0,不要用最新的版本。
旧版本的获取方法:
下载一个”豌豆荚“app,或者在网页上搜索豌豆荚,然后在里面搜索应用名称,最下面会有一个“历史版本”,找到 v5.32.0 并安装,注意安装前需要先卸载掉美团买菜。

![image-20220408161750722](https://gitee.com/qulingyuan/ly_picture/raw/master/img/image-20220408161750722.png)

## 开发步骤:

1. 下载 `Auto.js` 安装包,目前官网提供的是 `Auto.js Pro`,是收费的,45 块钱买断制,还是良心的,建议大家购买。不过这里也分享一下免费版本(非破解版,是开始收费前的免费版,网上听说很多版本是有毒的,这个是我以身试毒后确认无毒的,大家可放心使用)—— 链接: https://pan.baidu.com/s/1zBTij7imoLCKf1bm7HtY6Q 提取码: n9jc --来自百度网盘超级会员 v3 的分享

2. 安装软件后,开启应用的**无障碍**和**悬浮窗**功能。

![image-20220406221255685](https://gitee.com/qulingyuan/ly_picture/raw/master/img/image-20220406221255685.png)

3. 可以使用悬浮窗的工具来检查 app 的元素。

   ![image-20220406225906556](https://gitee.com/qulingyuan/ly_picture/raw/master/img/image-20220406225906556.png)

   ![image-20220406225941640](https://gitee.com/qulingyuan/ly_picture/raw/master/img/image-20220406225941640.png)

4. 打开 VS Code,安装`Auto.js-VSCodeExt`插件。

![image-20220406222424648](https://gitee.com/qulingyuan/ly_picture/raw/master/img/image-20220406222424648.png)

5. `Command+shift+P`快捷键打开 `Command Palette`,运行 `Auto.js:New Project`命令创建一个新项目。

![image-20220406222958526](https://gitee.com/qulingyuan/ly_picture/raw/master/img/image-20220406222958526.png)

6. 在 main.js 文件中编写脚本:

```js
function robVeg() {
  launchApp("美团买菜");
  waitForPackage("com.meituan.retail.v.android", 200);
  auto.waitFor();
  const btn_skip = id("btn_skip").findOne();
  if (btn_skip) {
    btn_skip.click();
    toast("已跳过首屏广告");
  }
  sleep(1000);
  gotoBuyCar();
  sleep(1000);
  checkAll();
}

robVeg();

//打开购物车页面
function gotoBuyCar() {
  const buyCarBtn = id("cartredDotTextView").findOne();
  if (buyCarBtn) {
    buyCarBtn.parent().click();
    toast("已进入购物车");
  } else {
    toast("没找到购物车");
    exit;
  }
}

//勾选全部商品
function checkAll() {
  const isCheckedAll = textStartsWith("结算(").exists();
  const checkAllBtn = text("全选").findOne();
  if (!!checkAllBtn) {
    !isCheckedAll && checkAllBtn.parent().click();
    sleep(1000);
  } else {
    toast("没找到全选按钮");
    exit;
  }
}
```

7.运行 `Auto.js:Start Server` 命令启动服务,手机和电脑在同一局域网的情况下打开”连接电脑“选项,连接成功后,VS Code 会弹出提示。然后就可以愉快地改代码调试了。

![](assets/20220407_123340__.png)

8.跑代码

![](assets/20220407_123325__mian.js.png)

![](assets/20220407_123317__.png)
开发调试开启日志,手机需要开启悬浮窗。

![](assets/Screenshot_20220407-123018_美团买菜.png)

> https://g.pro.autojs.org/docs/#/zh-cn/console

9.调试完成后,确定代码可以正常运行了,可以在 Auto.js 上新建一个脚本文件,把写好的代码放进去,然后点击文件右侧的三个点->更多->定时任务,可以设置成早上 6 点。

![image-20220408164107042](https://gitee.com/qulingyuan/ly_picture/raw/master/img/image-20220408164107042.png)



![image-20220408164221962](https://gitee.com/qulingyuan/ly_picture/raw/master/img/image-20220408164221962.png)

## 项目中容易踩到的坑,给大家提个醒:

1. 一定要打开无障碍功能!如果发现无法选取元素了或者什么其他异常,大概率是无障碍功能关闭了,是的,无障碍功能有时候会自动关闭。
2. 手机的 GPS 打开。
3. 需要提前把商品添加到购物车里,不然购物车是空的,啥也买不了。
3. 注意美团买菜的版本,不同版本元素不一样,代码执行不了的。

## 原理

这个脚本的原理是找到屏幕上对应的按钮,模仿人的点击等手势动作,把抢菜的一系列操作封装成脚本。然后 Auto.js 有定时执行脚本功能,这样就不用早上六点钟起来自己点了。Auto.js 的功能很强大,网上搜资料的时候发现还可以搞支付宝的蚂蚁森林的能量收集,还有游戏脚本啥的,后面还可以研究研究。


================================================
FILE: main.js
================================================
// 解锁手机屏幕
function unLock() {
  if (!device.isScreenOn()) {
    device.wakeUp();
    sleep(500);
    swipe(500, 2000, 500, 1000, 200);
    sleep(500);
    const password = "123456"; //这里换成自己的手机解锁密码
    for (let i = 0; i < password.length; i++) {
      let position = text(password[i]).findOne().bounds();
      click(position.centerX(), position.centerY());
      sleep(100);
    }
  }
  sleep(1000);
}

//抢菜流程
function robVeg() {
  unLock();
  launchApp("美团买菜");
  waitForPackage("com.meituan.retail.v.android", 200);
  auto.waitFor();
  const btn_skip = id("btn_skip").findOne();
  if (btn_skip) {
    btn_skip.click();
    toast("已跳过首屏广告");
  }
  sleep(2000);
  gotoBuyCar();
  sleep(2000);
  checkAll();
  sleep(2000);
  submitOrder(0);
}

robVeg();

//打开购物车页面
function gotoBuyCar() {
  if (id("img_shopping_cart").exists()) {
    id("img_shopping_cart").findOne().parent().click();
    toast("已进入购物车");
  } else {
    toast("没找到购物车");
    exit;
  }
}

//勾选全部商品
function checkAll() {
  const isCheckedAll = textStartsWith("结算(").exists();
  const checkAllBtn = text("全选").findOne();
  if (!!checkAllBtn) {
    !isCheckedAll && checkAllBtn.parent().click();
    sleep(1000);
  } else {
    toast("没找到全选按钮");
    exit;
  }
}

function submitOrder(count) {
  if (textStartsWith("结算(").exists()) {
    textStartsWith("结算(").findOne().parent().click();
  } else if (text("我知道了").exists()) {
    toast("关闭我知道了");
    text("我知道了").findOne().parent().click();
  } else if (text("重新加载").exists()) {
    toast("重新加载");
    text("重新加载").findOne().parent().click();
  } else if (text("立即支付").exists()) {
    text("立即支付").findOne().parent().click();
  } else if (text("确认支付").exists()) {
    const music =
      "/storage/emulated/0/netease/cloudmusic/Music/Joel Hanson Sara Groves - Traveling Light.mp3";
    media.playMusic(music);
    sleep(media.getMusicDuration());
  } else {
    toast("抢个屁!");
    exit;
  }
  sleep(800);
  if (count > 10000) {
    toast("没抢到");
    exit;
  }

  submitOrder(count++);
}


================================================
FILE: project.json
================================================
{
    "name": "新建项目",
    "main": "main.js",
    "ignore": [
        "build"
    ],
    "packageName": "com.example",
    "versionName": "1.0.0",
    "versionCode": 1
}
Download .txt
gitextract_98o64i9s/

├── README.md
├── main.js
└── project.json
Download .txt
SYMBOL INDEX (5 symbols across 1 files)

FILE: main.js
  function unLock (line 2) | function unLock() {
  function robVeg (line 19) | function robVeg() {
  function gotoBuyCar (line 40) | function gotoBuyCar() {
  function checkAll (line 51) | function checkAll() {
  function submitOrder (line 63) | function submitOrder(count) {
Condensed preview — 3 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (8K chars).
[
  {
    "path": "README.md",
    "chars": 3101,
    "preview": "今天发现了一个可以在安卓机上运行脚本的工具——[Auto.js](https://g.pro.autojs.org/docs/#/zh-cn/),简单的写了个脚本用来抢菜。\n\n## 美团买菜版本\n\n这个脚本适用于美团买菜 v5.32.0,不"
  },
  {
    "path": "main.js",
    "chars": 2002,
    "preview": "// 解锁手机屏幕\nfunction unLock() {\n  if (!device.isScreenOn()) {\n    device.wakeUp();\n    sleep(500);\n    swipe(500, 2000, 50"
  },
  {
    "path": "project.json",
    "chars": 168,
    "preview": "{\n    \"name\": \"新建项目\",\n    \"main\": \"main.js\",\n    \"ignore\": [\n        \"build\"\n    ],\n    \"packageName\": \"com.example\",\n  "
  }
]

About this extraction

This page contains the full source code of the qulingyuan/robVeg GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 3 files (5.1 KB), approximately 2.1k tokens, and a symbol index with 5 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!