Skip to content

Latest commit

 

History

History
231 lines (162 loc) · 7.77 KB

README.md

File metadata and controls

231 lines (162 loc) · 7.77 KB

自动化任务

基于 CloudFlare Workers 的自动化任务

当前支持

任务名称 任务简介 说明
MegStudio签到 AI 免费算力 账号与密码,需自建 OCR API 服务
v2ex签到 开发者社交平台 获取网页的 Cookie
域名可注册检测 查询单个或多个域名是否可注册 手动设置相关域名

部署教程

通过 GitHub Actions 发布至 CloudFlare

  1. 从 CloudFlare 获取 CLOUDFLARE_API_TOKEN 值,并设置到项目。

    https://github.com/<ORG>/<REPO>/settings/secrets/actions

  2. 可选)。设置别名。创建 KV、,并绑定到此 Workers 服务。

    • 2.1a 手动后台绑定,(Settings -> Variables -> KV Namespace Bindings -> Add binding -> Variable name (data), 选择创建的 KV
    • 2.1b 通过命令行创建。按照本地部署的第 6 步,创建和保存 KV

本地部署到 CloudFlare

  1. 注册 CloudFlare 账号,并且设置 Workers 域名 (比如:xxx.workers.dev)

  2. 安装 Wrangler 命令行工具

     npm install -g wrangler
  3. 登录 Wrangler(可能需要扶梯):

    # 若登录不成功,可能需要使用代理。
    wrangler login
  4. 拉取本项目,并进入该项目目录:

    git clone https://github.com/servless/worker-tasks.git
    
    cd worker-tasks
  5. 修改 wrangler.toml 文件中的 name(proj)为服务名 tasks(访问域名为:tasks.xxx.workers.dev

  6. 创建 WorkersKV,并绑定 KVWorkers

    1. 创建 KV,并设置参数值

      1. 创建名为 datanamespace(最终会在前缀加上服务名,即为 tasks-data

           wrangler kv:namespace create data

        得到

           ⛅️ wrangler 2.15.1
           --------------------
           🌀 Creating namespace with title "tasks-data"
           ✨ Success!
           Add the following to your configuration file in your kv_namespaces array:
           { binding = "data", id = "8c7d7ee9b6bb4f8fa3ca9f30eaf8d897" }
        

        将上述命令得到的 kv_namespaces 保存到 wrangler.toml 中,即

           # 替换当前项目该文件内相关的数据,即只需要将 id 的值替换为上一步骤得到的值
           { binding = "data", id = "8c7d7ee9b6bb4f8fa3ca9f30eaf8d897" }
    2. 先通过后面的教程,获取到对应服务cookietokens和参数值,填充到 tasks-dataKV 中。

    3. 对应服务数据值保存到 KV namespace

         # V2ex
         ## 通过电脑浏览器提取 cookie
         wrangler kv:key put --binding=data 'v2ex' '<COOKE_VALUE>'
      
         # MegStudio
         ## 使用账号和密码,需要自建 OCR API 服务:https://github.com/sml2h3/ocr_api_server。
         ## 支持多账号。每个用户名之间、每个密码之间使用分号(;)分隔。
         wrangler kv:key put --binding=data 'megstudio_username' 'USERNAME1;USERNAME2;USERNAME3'
         wrangler kv:key put --binding=data 'megstudio_password' 'PASSWORD1;PASSWORD2;PASSWORD3'
         wrangler kv:key put --binding=data 'ocr_url' "https://ocr.xx.com"
      
         # Find Domains
         ## 查询域名是否可注册。
         ## 支持多域名。域名之间使用分号(;)分隔。
         wrangler kv:key put --binding=data 'domains' "example1.com;example2.com;example3.com"
      
  7. 修改定时任务相关信息

    # 按照 Linux 定时任务的格式修改
    #
    crons = ["* * * * *"]

    crontab 文档

  8. 发布

     wrangler deploy

    发布成功将会显示对应的网址

     Proxy environment variables detected. We'll use your proxy for fetch requests.
    ⛅️ wrangler 2.13.0
         --------------------
         Total Upload: 0.66 KiB / gzip: 0.35 KiB
         Uploaded tasks (1.38 sec)
         Published tasks (4.55 sec)
                 https://tasks.xxx.workers.dev
         Current Deployment ID:  xxxx.xxxx.xxxx.xxxx

选项

推送通知

  1. Bark (iOS 端)
# 设置 brak token
wrangler kv:key put --binding=data 'bark' '<BARK_TOKEN>'
  1. Lark
# 设置 brak token
wrangler kv:key put --binding=data 'lark' '<LARK_TOKEN>'
  1. 飞书
# 设置 brak token
wrangler kv:key put --binding=data 'feishu' '<FEISHU_TOKEN>'

若不需要通知,删除对应的 key 即可

# 以 bark 为例
wrangler kv:key delete --binding=data 'bark'

帮助

获取网页 cookie 的方法

  1. 首先使用 chrome 浏览器打开网站(比如为 xxx.com), 登录账号。
  2. Windows / Linux 系统可按 F12 快捷键打开开发者工具;Mac 快捷键 option + command + i;Linux 还有另一个快捷键 Ctrl + Shift + i。笔记本电脑可能需要再加一个 fn 键。
  3. 选择开发者工具 Network,刷新页面,选择第一个xxx.com, 找到 Requests Headers 里的 Cookie

获取 App cookie 的方法

使用 Reqable 软件抓包获取对应的 cookie 值。

调试

  1. 创建预览环境

    wrangler kv:namespace create data --preview

    得到

    { binding = "data", preview_id = "d5d5f6d84098496ead8c89667dcea788" }

    preview_id 添加到 warngler.toml,即

    kv_namespaces = [
    { binding = "data", id = "c63f7dad63014a70847d96b900a4fc3f", preview_id = "d5d5f6d84098496ead8c89667dcea788"}
    ]
  2. 将相关值保存到 KV namespace,即每条命令后均添加参数 --preview

       wrangler kv:key put --binding=data 'v2ex' '<COOKE_VALUE>' --preview
       wrangler kv:key put --binding=data 'bark' '<BARK_TOKEN>' --preview
  3. 执行调试命令

    wrangler dev --test-scheduled

    显示

    ⛅️ wrangler 2.15.1
    --------------------
    Your worker has access to the following bindings:
    - KV Namespaces:
    - data: d5d5f6d84098496ead8c89667dcea788
    ⬣ Listening at http://0.0.0.0:8787
    - http://127.0.0.1:8787
    - http://192.168.33.66:8787
    ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
    │ [b] open a browser, [d] open Devtools, [l] turn on local mode, [c] clear console, [x] to exit

    l 显示相关的调试数据

仓库镜像