close

2023-12-01 Updated: 目前機器人已被蝦皮阻擋,作者也萌生退意,此工具已失效,也感謝過去這段時間作者 wdzeng 提供並持續維護這個工具 [分享][已失效] wdzeng/shopee-coins-

 

前陣子在 PTT 省錢版發現有鄉民分享,因為平常就有在貪小便宜收集蝦幣, 如果可以自動化那真是太棒了!後來作者還更神的串接了 Github 的 Actions 服務,只要有 Github 帳號搭配簡單的設定步驟,就能實現每天自動領蝦幣的功能。可惜好景不長...或許是因為太多人使用引發官方關注,不到一個月 repo 就被強制關閉 GG 惹~沒辦法只好回頭去研究 docker 的用法。儘管作者對於 docker 的使用也有詳細步驟說明,但我在實作時還是有踩到一些坑;所以在這裡稍微紀錄一下:

  • 環境準備
    • 作者提供的簽到執行方式是 docker,所以首先必須自己準備一個已經安裝好 docker 的主機環境
    • 自己的電腦當然也可以,但考量到之後會使用排自動執行,雲端空間會比較恰當
    • 我是使用去年介紹過的 Oracle Cloud Free Tier,有興趣的人可以參考一下
  • Failed to save cookie: EISDIR: illegal operation on a directory
    • 發生原因是因為 volume cookie 檔時連結到目錄而不是檔案
    • 解決方式是在 volume 之前先建立一個空的文字檔,再執行 docker run
  • 排程建立方式
    • 作者提供的 docker run command 是一次性的指令,如果想要自動執行,當然就必須倚靠排程
    • 在設定 crontab 的過程中,發現 docker run 一直 run 不起來,後來 goolge 後才知道 crontab 在使用 docker 時不需要加 -it 的參數
    • 另外 docker run 後的 container 會殘留在列表之中,可以透過指令清除
    • 最後我把一連串動作寫成 shell script,透過排程設定每天執行,達成自動化的目的
  • shopee-coins-bot.sh
    #!/bin/sh
    # 紀錄現在的時間
    now=$(date)
    echo "$now"
    # 執行 docker run 蝦皮自動簽到機器人
    docker run -v /home/ubuntu/shopee-coins-bot-cookie:/cookie hyperbola/shopee-coins-bot:1 -f -c /cookie
    # 睡 5 分鐘,通常執行大概會花 1 分鐘左右
    sleep 5m
    # 清除已離開的 docker container
    docker ps -a | grep Exit | cut -d ' ' -f 1 | xargs docker rm
  • crontab 每天 00:33 執行 shopee-coins-bot.sh,並記錄在 shopee-coins-bot.log
    33 0 * * * /bin/bash /home/ubuntu/shopee-coins-bot.sh >> /home/ubuntu/shopee-coins-bot.log

感謝作者 wdzeng 分享這麼實用的工具,也希望有使用的人可以不吝給予專案 star 喔~

arrow
arrow

    danielhuang030 發表在 痞客邦 留言(0) 人氣()