YYPOST群发软件 发表于 2026-9-30 06:50:30

OCR智能识别找字点击

OCR智能识别找字点击








/**
* ╔══════════════════════════════════════════════════════════╗
* ║   OCR 节奏点Tab v3:不再依赖 getAllDetect               ║
* ║   原因:你的 MLKitOcr 版本 getAllDetect() 永远返回 null    ║
* ║   新方案:区域坐标 已限制在底部导航栏         ║
* ║          → findIncludeText 返回的直接就是底部的 Tab      ║
* ╚══════════════════════════════════════════════════════════╝
*/

printl("╔══════════════════════════════════════╗");
printl("║OCR节奏点Tab v3 — 不靠getAllDetect    ║");
printl("╚══════════════════════════════════════╝");

function 取X(d) { try { return Math.round(d.getRect().getCenterX()); } catch (e) { return -1; } }
function 取Y(d) { try { return Math.round(d.getRect().getCenterY()); } catch (e) { return -1; } }
function 点击(d) {
    var x = 取X(d), y = 取Y(d);
    if (x < 0) return false;
    auto.clickPoint(x + rand.randNumber(-8, 8), y + rand.randNumber(-8, 8));
    return true;
}

// ==================== 核心:找底部Tab(v3 版)====================
// 区域已经锁定在 (屏幕最底部 8%)
// 所以 这个区域里的 findIncludeText 返回的一定是底部导航栏的 Tab
// 根本不需要 getAllDetect 排序!
function 找底部Tab(ocr结果, 关键词) {
    return ocr结果.findIncludeText(关键词);
}

// ==================== Tab 配置 ====================
var Tab列表 = [
    { 主词: "首页",候选: ["首页"] },
    { 主词: "免费",候选: ["免费", "免費", "免费着片"] },
    { 主词: "消息",候选: ["消息", "99+", "+99+"] },
];
var 总轮次 = 3;

for (var 轮次 = 1; 轮次 <= 总轮次; 轮次++) {
    printl("");
    printl("━━━ 第 " + 轮次 + " / " + 总轮次 + " 轮 ━━━");

    // 底部区域 —— 只覆盖快手底部导航栏
    var 截图 = screen.screenShotFull();
    var 底部OCR = 截图.MLKitOcrRect('zh', );
    printl("&#128269; 底部92%+ OCR原文:" + 底部OCR.getAllString());

    for (var t = 0; t < Tab列表.length; t++) {
      var tab = Tab列表;
      var 点到了 = false;

      for (var c = 0; c < tab.候选.length; c++) {
            var d = 找底部Tab(底部OCR, tab.候选);
            if (d) {
                printl("&#127919; 点 [" + tab.主词 + "]@(" + 取X(d) + "," + 取Y(d) + ")");
                点击(d);
                点到了 = true;
                break;
            }
      }
      if (!点到了) printl("⚠️ 找不到 [" + tab.主词 + "]");

      var 等待秒 = rand.randNumber(2, 4);
      printl("⏳ " + 等待秒 + "s...");
      sleep.second(等待秒);

      // 点完重 OCR
      截图.recycle();
      截图 = screen.screenShotFull();
      底部OCR = 截图.MLKitOcrRect('zh', );
    }

    截图.recycle();
    printl("━━━ 第 " + 轮次 + " 轮结束 ━━━");
}

printl("");
printl("✅ " + 总轮次 + " 轮点完!");


页: [1]
查看完整版本: OCR智能识别找字点击