基于 CloudFlare Workers
的自动化任务。
任务名称 | 任务简介 | 说明 |
---|---|---|
MegStudio签到 | AI 免费算力 | 账号与密码,需自建 OCR API 服务 |
v2ex签到 | 开发者社交平台 | 获取网页的 Cookie |
域名可注册检测 | 查询单个或多个域名是否可注册 | 手动设置相关域名 |
-
从 CloudFlare 获取
CLOUDFLARE_API_TOKEN
值,并设置到项目。https://github.com/<ORG>/<REPO>/settings/secrets/actions
-
可选)。设置
别名
。创建KV
、,并绑定到此 Workers 服务。- 2.1a 手动后台绑定,(
Settings
->Variables
->KV Namespace Bindings
->Add binding
->Variable name (data)
,选择创建的 KV
) - 2.1b 通过命令行创建。按照本地部署的第 6 步,创建和保存
KV
- 2.1a 手动后台绑定,(
-
注册 CloudFlare 账号,并且设置 Workers 域名 (比如:
xxx.workers.dev
) -
安装 Wrangler 命令行工具。
npm install -g wrangler
-
登录
Wrangler
(可能需要扶梯):# 若登录不成功,可能需要使用代理。 wrangler login
-
拉取本项目,并进入该项目目录:
git clone https://github.com/servless/worker-tasks.git cd worker-tasks
-
修改
wrangler.toml
文件中的name
(proj)为服务名tasks
(访问域名为:tasks.xxx.workers.dev
) -
创建 Workers 和 KV,并绑定
KV
到Workers
-
创建 KV,并设置参数值
-
创建名为
data
的namespace
(最终会在前缀加上服务名,即为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" }
-
-
先通过后面的教程,获取到对应服务的
cookie
、tokens
和参数值,填充到tasks-data
的 KV 中。 -
将对应服务的数据值保存到
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"
-
-
修改定时任务相关信息
# 按照 Linux 定时任务的格式修改 # crons = ["* * * * *"]
-
发布
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
# 设置 brak token
wrangler kv:key put --binding=data 'bark' '<BARK_TOKEN>'
# 设置 brak token
wrangler kv:key put --binding=data 'lark' '<LARK_TOKEN>'
# 设置 brak token
wrangler kv:key put --binding=data 'feishu' '<FEISHU_TOKEN>'
若不需要通知,删除对应的 key
即可
# 以 bark 为例
wrangler kv:key delete --binding=data 'bark'
- 首先使用 chrome 浏览器打开网站(比如为
xxx.com
), 登录账号。 - Windows / Linux 系统可按
F12
快捷键打开开发者工具;Mac 快捷键option + command + i
;Linux 还有另一个快捷键Ctrl + Shift + i
。笔记本电脑可能需要再加一个fn
键。 - 选择开发者工具
Network
,刷新页面,选择第一个xxx.com
, 找到Requests Headers
里的Cookie
。
使用 Reqable 软件抓包获取对应的 cookie 值。
-
创建预览环境
wrangler kv:namespace create data --preview
得到
{ binding = "data", preview_id = "d5d5f6d84098496ead8c89667dcea788" }
将
preview_id
添加到warngler.toml
,即kv_namespaces = [ { binding = "data", id = "c63f7dad63014a70847d96b900a4fc3f", preview_id = "d5d5f6d84098496ead8c89667dcea788"} ]
-
将相关值保存到
KV namespace
,即每条命令后均添加参数--preview
wrangler kv:key put --binding=data 'v2ex' '<COOKE_VALUE>' --preview wrangler kv:key put --binding=data 'bark' '<BARK_TOKEN>' --preview
-
执行调试命令
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
显示相关的调试数据