自動蓋樓刷淘寶喵幣!拿紅包都靠這厲害的腳本...

2021-02-25 開發者技術前線

點擊「開發者技術前線」,選擇「星標🔝」

開源最前線(ID:OpenSourceTop) 文末附下載apk


這幾天,雙十一的活動有沒有把你折騰的不輕呢?如果沒有,只有兩種可能:一,你沒女朋友;二,你沒有女性朋友,不然你一定會收到如下消息

要知道阿里每年都會發放大量紅包、各種優惠券和各種互助遊戲.而這兩天,馬爸爸的「ATM」們可都沉迷於這些個互助遊戲裡不可自拔,吾日三省吾身:籤到了?做任務了麼?升級了麼?:一般我們程式設計師對這種遊戲都是沒什麼太大興趣,畢竟每天都有找不完的Bug,加不完的班,但是假如在這時候你的女神向你求幫助的時候,就你那個等級你拿的出手麼?所以,程式設計師怎麼能錯過這麼一個在女神面前展現專業能力的時候呢,這不,今天猿妹就在GitHub上發現,有程式設計師寫了一個小腳本,可以每天自動做任務,領喵幣,這下幫女神蓋樓,再也不用擔心等級低了:可以看出來目前這個小腳本還沒有引起程式設計師的注意,一個星星都還沒獲得(GitHub地址:https://github.com/sleepybear1113/taobaoVisitingVenues)
其實,這個腳本並不難,基於auto.js框架來實現,auto.js是一個支持無障礙服務的Android平臺上的JavaScript IDE,以控制項為基礎,能自動運行一些操作,實現懸浮窗錄製和運行。所以這個腳本只支持安卓系統。

let deviceWidth = device.width;
let deviceHeight = device.height;

function openBeginningBtnItem(delay) {
    let items = textStartsWith("gif;base64").depth(19).find();
    console.log("尋找--領喵幣");
    if (items.length > 0) {
        let item = items[items.length - 1];
        console.log("點擊--領喵幣");
        clickItemInCenter(item);
        sleep(delay);
        return 1;
    }
    return -1;
}

function isOpenBeginning() {
    let signIn = textContains("籤到").findOnce();
    if (signIn != null) {
        console.log("成功--打開領取中心");
        return 1;
    }
    return -1;
}

function ensureOpenBeginning(waitDelay) {
    if (isOpenBeginning() === -1) {
        openBeginningBtnItem(waitDelay);
    }
    if (isOpenBeginning() === 1) return 1;

    console.error("失敗--打開領取中心");
    toast("失敗--打開領取中心");
    return -1;
}

function clickItemInCenter(item, time) {
    if (time == null) time = 50;
    if (item == null) return;
    let x = item.bounds().centerX();
    let y = item.bounds().centerY();
    press(x, y, time);
}

function goShopping() {
    let shopping = text("去瀏覽").findOne(1000);
    if (shopping == null) {
        toastLog("結束--未知問題");
        return -1;

    }
    console.log("開始瀏覽...");
    clickItemInCenter(shopping);
    return 1;
}

function swipeUp() {
    let x = parseInt(deviceWidth / 2);
    let duration = 500;
    let y = [parseInt(deviceHeight * 0.75), parseInt(deviceHeight * 0.25)];
    swipe(x, y[0], x, y[1], duration);
    swipe(x, y[0], x, y[1], duration);
}

function isFull() {
    for (let i = 0; i < 10; i++) {
        if (descContains("已達上限").findOnce() || textContains("已達上限").findOnce()) {
            console.log("今日已達上限");
            return 1;
        }
        sleep(1000);
    }
    return 0
}


function waitSwipe() {
    let swipeAppear;
    let shoppingFull;
    for (let i = 0; i < 3; i++) {
        swipeAppear = desc("滑動瀏覽得").findOne(1000);
        if (swipeAppear != null) break;
        shoppingFull = descContains("已達上限").findOne(1000);
        if (shoppingFull != null) return 0;
        console.log("i" + i);
    }

    sleep(1000);

    if (swipeAppear != null) {
        console.log("開始滑動");
        swipeUp();
        console.log("等待15s");
        sleep(1000 * 16);
    } else {
        console.log("slow");
        console.log("等待20s");
        sleep(1000 * 20);
    }

    let shoppingFinish = desc("任務完成").findOne(2000);
    if (shoppingFinish != null) {
        console.log("逛完,準備返回");
    } else {
        toastLog("未知逛完,返回");
    }

    return 1;
}

function browseFinish() {
    for (let i = 0; i < 10; i++) {
        let normalFinishDesc = descContains("已獲得").findOnce();
        let normalFinishText = textContains("已獲得").findOnce();
        let swipeFinish = desc("任務完成").findOnce();

        if (normalFinishDesc != null || swipeFinish != null || normalFinishText != null) {
            console.log("瀏覽結束");
            return 0;
        }
        sleep(250);
    }

    console.log("瀏覽未知");
    return -1;
}

function judgeWay() {
    let timeOut = 1000 * 7;
    let delay = 250;
    let loops = parseInt(timeOut / delay);
    for (let i = 0; i < loops; i++) {
        let swipeAppearDesc = descContains("滑動瀏覽得").findOnce();
        let swipeAppearText = textContains("滑動瀏覽得").findOnce();
        if (swipeAppearDesc != null || swipeAppearText != null) {
            console.log("已獲取到滑動瀏覽模式");
            return 0;
        }

        let directBrowseDesc = desc("瀏覽").findOnce();
        let directBrowseText = text("瀏覽").findOnce();
        if (directBrowseDesc != null || directBrowseText != null) {
            if (descContains("00喵幣").findOnce() != null || textContains("00喵幣").findOnce() != null) {
                console.log("已獲取到正常瀏覽模式");
                return 1;
            }
        }

        sleep(delay);
    }

    console.log("超時");
    return -1;
}

function reopenAgain() {
    console.log("reopen");
    let tbs = id("taskBottomSheet").findOnce();
    if (tbs == null) return -1;
    let close = tbs.child(1);
    if (close != null) {
        console.log("關閉");
        clickItemInCenter(close);
        sleep(1000);
        return ensureOpenBeginning(1000);
    }
    return -1;
}

function runGoShopping() {
    let isSuccess;

    for (let i = 0; i < 20; i++) {
        isSuccess = ensureOpenBeginning(1000);
        if (isSuccess !== 1) break;
        isSuccess = goShopping();

        let count = 0;
        while (isSuccess !== 1) {
            if (reopenAgain() === 1) {
                isSuccess = 1;
                break;
            }
            if (count++ >= 2) break;
        }

        if (isSuccess === -1) break;

        let st = waitSwipe();
        if (st === 0) {
            toastLog("已達上限,結束腳本");
            return 0;
        }

        back();
        sleep(1000);
    }


    if (isSuccess === 0) {
        toastLog("正常結束");
        return 0;
    } else if (isSuccess === -1) {
        toastLog("異常結束");
        return 1;
    }
}


function clickGoBrowse() {
    let browse = text("去瀏覽").findOne(1000);
    if (browse != null) {
        let guessYouLike = textContains("猜你喜歡").findOnce();
        if (guessYouLike != null) {
            console.log("出現猜你喜歡");
            let pp = browse.parent.bounds().top;
            let ppp = guessYouLike.parent.parent.bounds().top;
            if (ppp === pp) {
                console.log("跳過--猜你喜歡");
                let allBrowse = text("去瀏覽").find();
                for (let i = 0; i < allBrowse.length; i++) {
                    let item = allBrowse[i];
                    if (item.bounds().top !== browse.bounds().top) {
                        browse = item;
                    }
                }
            }
        }

        console.log("點擊--去瀏覽");
        clickItemInCenter(browse);
        return 1;
    }
    return -1;
}

function runGoBrowse() {
    let isSuccess = 1;

    for (let i = 0; i < 40; i++) {
        isSuccess = ensureOpenBeginning(1000);
        if (isSuccess !== 1) break;

        for (let j = 0; j < 3; j++) {
            isSuccess = clickGoBrowse();
            if (isSuccess !== 1) {
                reopenAgain();
            } else break;
        }

        if (isSuccess === -1) break;

        let jw = judgeWay();

        sleep(1000);
        if (jw === 0) swipeUp();
        else if (jw === -1) {
            if (isFull() === 1) {
                console.log("已達上限");
                back();
                sleep(2000);
                reopenAgain();
                continue;
            }
            console.log("4s");
            sleep(1000 * 4);
        }
        console.log("15s");
        sleep(1000 * 15);


        let isF = browseFinish();
        if (isF === 0) {
            console.log("瀏覽結束,返回");
        } else if (isF === -1) {
            console.log("瀏覽未正常結束,返回");
        }

        back();
        sleep(2000);
    }
}

function removeFile(fileName) {
    if (files.exists(fileName)) {
        files.remove(fileName);
    }
}

function clearNewScript() {
    threads.start(function () {
        removeFile("/sdcard/腳本/淘寶喵幣/script.js");
        removeFile("/sdcard/腳本/淘寶喵幣/version.txt");
        toastLog("清除完成");
    });
}


function warning(n) {
    let items = ["不更新,但還是試試新腳本(不保證能用)", "清除本地下載的新腳本,使用默認腳本", "點擊這裡下載新APP"];

    let ch = dialogs.select("當前新版本不適用於此舊APP,請更新到新APP。", items, function (index) {

        if (index >= 0) {

            if (index === 0) {

                threads.start(function () {
                    sleep(1000);
                    runRun(n);
                });

            } else if (index === 1) {
                clearNewScript();
            } else if (index === 2) {
                alert("哪裡下載的舊APP就去哪裡下載新APP,我可沒心思發布");
            }
        }
    });
}

function runRun(n) {
    sleep(500);

    let statue = runGoBrowse();
    toastLog("去瀏覽--瀏覽結束");
    alert("結束");
}

function moveFloating(n) {
    let i = -1;
    dialogs.confirm("由於需要,請將懸浮窗移動至靠左。", "點擊確認表示已完成,直接運行腳本。\n點擊取消則手動前去調整。\n" +
        "(中間瀏覽過程中可能會跳轉到淘寶首頁進行瀏覽,此時需要手動再次切回貓鋪。)", function (clear) {
        if (clear) {
            console.log("直接運行");
            i = 1;
        } else {
            toastLog("請將懸浮窗移動至靠左");
            i = 0;
        }
    });


    while (i === -1) {
        slepp(100);
    }
    if (i === 1) {
        runRun(n);
    }
}

function runChoose(n) {
    let currentVersion = app.versionCode;
    if (currentVersion === 1) {
        warning(n);
    } else {
        moveFloating(n);
    }
}

module.exports = runChoose;

如果你不懂的話,就直接下載使用,記得開啟懸浮窗,然後再切換到淘寶:

1、掃碼關注「Python高校」訂閱號

2、回復「喵幣apk」即可獲取

長按 2 秒,回復「喵幣apk」即可下載

開發者技術前線 ,匯集技術前線快訊和關注行業趨勢,大廠乾貨,是開發者經歷和成長的優秀指南。

相關焦點

  • IT之家限定福利:金幣速兌6元淘寶無門檻紅包
    IT之家聯合淘寶,在年貨節前再次推出大範圍獎勵活動 —— 軟媒金幣兌換淘寶無門檻購物紅包!
  • (雙11攻略)教你自動養紅包,瓜分京東一億現金
    雙十一來了,各大電商平臺摩拳擦掌搞活動吸引客戶京東擺出一億現金紅包在app首頁可以看到瓜分一億的入口
  • 陰陽師:腳本問題不處理,卻出超鬼王活動,官方真的默認了?
    大家都知道,超鬼王是一個需要時間和精力去爆肝的活動,肝得越多獲得的獎勵就越高,很多玩家為了肝超鬼王可謂是廢寢忘食,經常熬夜肝超鬼王,累壞了。 但是當大部分玩家都遵守規則肝超鬼王時,卻有一波玩家投機取巧,使用腳本外掛全自動掛機超鬼王。大家都在廢寢忘食,為拿獎勵付出心血,而這些蛀蟲卻違反規則掛著腳本,輕輕鬆鬆拿了獎勵。
  • LOL再爆腳本玩家,這遊戲還能玩嗎?
    這名玩家在與敵人對戰時,無論自己還是敵方施放技能,都會出現一個長條狀顯示出的技能軌跡,這名玩家可以很輕鬆的躲掉敵人的技能。LOL經過這幾年的發展,目前已經成為最火熱的網路遊戲,卻屢屢被爆出玩家使用腳本外掛。拳頭對於腳本外掛的處理,永遠趕不上腳本的更新速度,腳本就像九頭蛇一樣,剛打掉一個又冒出來好幾個。
  • 雙十一腳本
    涵蓋了安卓端、Mac端安卓模擬器、Windows端安卓模擬器,所以說今天的在看、點讚怎麼的都得給我安排上!02正文下面就長話短說,今天的教程為安卓端使用腳本,達到淘寶雙十一養貓活動自動瀏覽得金幣。好處就是:解放雙手不用時刻盯著手機,只需要打開電腦掛個模擬器自動運行腳本即可。(iOS端無法使用,所以需要電腦)安卓手機與模擬器版大同小異,所以就三種方法合為一個說。
  • 免費領取淘寶超級日最高1000元現金紅包!
    活動詳情點擊閱讀原文,1月8日-13日,點擊拆紅包,每天可以免費領取支付寶現金紅包,隨機獲得1-1000元,每人每天可以領取1個。1月11日-13日可以使用紅包,在淘寶上任意購物即可自動抵扣,記得天天參加,免費領取喲。附:免費領取淘寶裹裹2+3元支付寶現金紅包。
  • 淘寶刷單陷阱多,分分鐘被騙幾萬塊
    朱女士收到淘寶刷單的信息,一看刷單還能掙錢,朱女士便心動了,哪知道這背後的騙局大到離譜。
  • 紅包!免費領取淘寶1212現金紅包,附紅包雨活動!
    12月7日-12月11日,點擊抽獎地址,可以參加淘寶1212紅包抽獎,必中1-1212元現金紅包,每天都可以抽取,每天可以獲得1個現金紅包,大家要天天參加抽獎喲,得到紅包後,1212當天可購物時累計使用。附1:免費領取淘寶裹裹2元支付寶現金紅包。
  • 淘寶過年福利來了!春晚清空4萬個購物車,紅包最高領4萬元
    這周四就是大年三十了,春節的氛圍也越來越濃。淘寶春節氛圍組今天(2月9日)發布了「春節最全福利清單」,涵蓋了搶紅包、抽錦鯉等一系列福利,還有10萬商家、上萬主播不打烊,一起陪你過年。即使不回家,春節氛圍依然能夠造起來!紅包是春節裡必不可少的氛圍擔當。
  • [紅包活動] 淘寶免費領1元生活繳費紅包
    推送時間:每天(不可抗拒的原因除外)紅包活動用於設備:安卓/蘋果適用範圍:無限制活動來源:網絡活動1、打開手機淘寶APP->首頁頂部找到->充值中心->進來後下拉頁面->水電煤繳費2、進去自動彈窗領1元紅包->淘寶裡不能充值就去->支付寶充值中心->生活繳費充!
  • 【社會】女大學生兼職「淘寶刷單」,結果杯具了
    當時,小張正在教室裡上自習,QQ群裡彈出的一條招聘淘寶刷單員的兼職信息引起了她的注意。按照信息介紹,每天利用課餘時間上網為淘寶店鋪刷單,一單可以賺10元到50元的佣金,輕鬆日賺幾百元。隨後,小張便加了對方QQ。通過驗證後,暱稱為「李娜」的人便和她聯繫上了。李娜稱公司長期為全國各大平臺的網店刷信譽,然後就發送了一張刷手申請表和一套刷單工作流程給小張。
  • 魔獸世界:玩家在遊戲裡靠什麼賺錢?這種方法可以嘗試!
    除了工作室,個人玩家只要一小時打不到1塊錢以上的金幣,一般也不會繼續刷了,沒意思不如零花錢買點。而工作室不一樣,只要一小時所得人民幣>所消耗的月卡費和電費網費,就有持久的動力。電腦開著人不管就行,蚊子肉也是肉,反正已經投入電腦和腳本了。月卡一出,工作室每小時成本下降到最小,幾乎無成本。
  • 雙十一紅包來啦! 淘寶1111元的紅包要這樣才能搶到,不看你就虧大了!
    據說今年的紅包面額能達到2.5億人民幣,從10月20日至11月11日,你每天都能有 3次 機會搶紅包。跟去年不同,今年的要求是: 淘寶帳號綁定的支付寶帳號,必須通過實名認證,並開啟餘額支付功能,否則不能中獎。
  • 【1212淘寶親親節&現金紅包】最低1元,100%領取
    雙12全球狂歡紅包,人人可領,最高1212元無限制紅包!
  • 快捷指令新操作:一鍵幫你快速搶各種紅包
    」快捷指令(支持 iOS 12/13)可厲害了,點外賣可省錢,買菜可省錢,訂酒店依然能省錢。這究竟是怎麼回事呢?我們一起來看看吧。下載地址在文章末尾其實各大生活平臺都有推出每日搶紅包活動,其中很多都是無門檻紅包,只不過許多用戶不知道居然還有這回事。
  • 鞋好看的小孩,紅包不會拿太少
    豬豬其實呢,過年對成年人來說熱鬧之餘,更多的還是疲憊和操勞,孩子才是最開心的,各種好吃的,有人陪他玩,還有紅包拿,得到的紅包金額會上升50%!爺爺舅舅都投降,紅包要用麻袋裝。 11.11天貓購物狂歡節,天貓凱迪克圖書專營預售滿400-100活動,前1111名支付尾款更有小豬佩奇毛絨抱枕贈送哦;複製圖片下方淘口令打開手機淘寶即可開啟11.11一次愛個購模式哦
  • SBK 夏季騎行手套微信「蓋樓」幸運獲獎名單公布,快來看看有沒有你!
    第一批微信「蓋樓」幸運獲獎名單公布自機車武裝「蓋樓」微信活動推出以來,眾多網友踴躍參加,微信文章留言擠爆了,有的網友凌晨1點多還在蓋樓,今天就公布第一批獲獎名單!但!952可不是這樣的人!不僅不騙你,還要持續發福利!
  • 小咖秀:利用腳本7天引流過萬,在朋友圈賣水果獲利3W+(附送腳本工具)
    今天摸金校尉給大家介紹一個老司機在過年期間做的項目,他通過在過年前引流吸粉,過年期間和朋友一起在朋友圈賣水果,每個人小賺了3W+。這個玩法來自一位在網上賺錢的老司機,他的經歷也非常豐富:大學一畢業就到當地的公眾號上實習,後來自己網上創業,玩過淘客、拼多多、抖音等,被坑過也賺過錢,現在自己做公眾號,從負債20多萬到現在的有車有房。
  • 萬能的淘寶,連假電動車牌都有售,為這,我把媽都賣了
    日常出門基本靠「電驢」,家裡這輛這麼新,再買一輛也忒浪費了。因為心疼小編減肥成功的錢包,老媽過上了和交警叔叔打遊擊的日子。前幾天,她非常興奮地微信來一個淘寶連結,我朋友都用這個,趕緊買買買~小編打開一看,頓時給跪了,不愧是萬能的淘寶啊,連這都有!