Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
/ MagicBox Public

一个基于chrome的自动执行定时任务,目前支持B站、v2ex、hostloc、jd等网站的签到

License

Notifications You must be signed in to change notification settings

srcrs/MagicBox

Repository files navigation

MagicBox


简述

MagicBox在今年迎来了升级,依托于Automa灵活的工作流配置,可以很方便的实现网站的自动化任务。Automa是一个浏览器控制插件,有着众多的组件,基本涵盖了日常的操作,只需要拖拉连线便可将打开网页、点击链接、获取元素的文本等等拼接成一个工作流话不,实现复杂任务的简化执行,但,如果想让其在服务端每日自动执行,不必依赖本地的插件环境,是否可行呢?

新版MagicBox的主要任务都会使用Automa来实现,实践的过程中是发现了一些问题的,例如登录态、通知、代码处理逻辑不一致等问题,对于迁移使用仍然会有一定的理解难度。

在最新的2.2.2版本中,我们新加了cli命令模式,内置了部分任务标准模版,只需根据命令引导,即可生成专属于自己的任务,极大的简化了使用MagicBox

目录

项目目录说明

项目地址:https://github.com/srcrs/MagicBox

MagicBox
├── Dockerfile
├── LICENSE
├── MagicBox.log
├── README.md
├── cmd
├── configs
├── docker-compose.yml
├── examples
├── go.mod
├── go.sum
├── install.sh
├── main.go
├── public
├── script.sh
├── utils
└── workerflow
  • examples: 有示例配置文件通过cli命令可以重复使用
  • configs: 用于放置需要执行的automa配置文件
  • docker-compose.yml: docker-compose配置文件,实时获取最新的版本
  • MagicBox.log: 工作流执行后的日志文件
  • main.go: 工作流解析引擎执行入口
  • utils、workerflow: 解析引擎相关核心代码逻辑

已实现组件

  • conditions:条件判断
  • event-click:点击
  • get-text:获取文本
  • insert-data:插入变量
  • loop-data:循环获取数据
  • new-tab:打开网页
  • webhook:调用接口
  • tab-url:获取当前页面url
  • element-scroll:滚动页面到屏幕最下面
  • delay:流程sleep
  • loop-elements:循环遍历页面元素
  • forms:设置form表单填写内容
  • reload-tab:刷新当前页面
  • close-tab:关闭当前页面
  • link:获取网页中链接打开页面
  • active-tab:回到活动tab页中
  • attribute-value:获取标签成员值

内置支持任务

_ 站点 说明 登录授权方式 username password brakUrl cron ip
hostloc_get_integral https://hostloc.com/ 每日访问空间刷积分 账号密码 yes yes yes yes yes
jd_apply_refund https://www.jd.com/ 京东自动申请价格保护 cookie no no yes yes yes
v2ex_sign https://v2ex.com/ 每日签到 cookie no no yes yes yes
wxread_task https://weread.qq.com/ 每日登录阅读,完成读书挑战 cookie no no yes yes yes
bilibili_task https://www.bilibili.com/ 哔哩哔哩每日任务,登录、观看视频 cookie no no yes yes yes

环境要求

Linux

Docker

docker环境安装参考官方教程,一键把docker和docker-compose环境都安装好。

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

安装好后,示例docker版本信息。

$ docker --version
Docker version 24.0.4
$ docker compose version
Docker Compose version v2.19.1

使用方法

Docker部署

1.克隆仓库

git clone https://github.com/srcrs/MagicBox.git

克隆完后,进入到MagicBox文件夹中。

2.导入配置

目前支持两种方式,通过内置任务初始化生成;导入自定义任务(可能存在部分节点未接入问题)。

使用内置命令初始化配置
  • 帮助命令
#查看目前支持的命令
$docker compose run --rm -p 9222:9222 server -h
#查看目前支持的config命令
$docker compose run --rm -p 9222:9222 server config -h
#查看目前支持的初始化任务
$docker compose run --rm -p 9222:9222 server config init -h
  • 可传入参数
变量名 说明 使用示例
username 登录用户名 --username "xxxxxx"
password 登录密码 --password "xxxxxxx"
barkUrl 通知 --barkUrl "xxxxxxx"
cron 定时执行 --cron "12 12 * * *"
ip chrome远程ip地址 --ip 127.0.0.1
  • 真实案例

初始化一个v2ex任务。

#1.选择初始化v2ex任务,设置定时执行时间和bark通知
$docker compose run --rm -p 9222:9222 server config init v2ex_sign --cron "12 12 * * *" --barkUrl "https://bark.xxx.com/xxxxxx"
It will close in 150 seconds
please visit url: http://localhost:9222/devtools/inspector.html?ws=localhost:9222/devtools/page/333BE3874077691C51A4279C7A4E8AB9
#2.将locahost替换为服务器ip后在浏览器访问,即可远程控制,在150秒内完成登录操作
#3.150秒后将会检查登录情况,会自动将配置文件添加到configs文件夹中
new config path: configs/v2ex_sign_7656fbd2-78dc-4cff-af18-e56c40b8e527.json

更多请参考:使用示例

自定义导入

将automa编写好的配置从插件中导出,再导入至MagicBox中,适合有一定的使用经验。

3.执行部署

#进入到MagicBox目录
docker compose up -d

使用示例

v2ex_sign

$docker compose run --rm -p 9222:9222 server config init v2ex_sign --cron "12 12 * * *" --barkUrl "https://bark.xxx.com/xxxxxx" --ip 127.0.0.1

hostloc_get_integral

$docker compose run --rm -p 9222:9222 server config init hostloc_get_integral --cron "12 12 * * *" --barkUrl "https://bark.xxx.com/xxxxxx" --username "xxxxxxx" --password "yyyyyyy" --ip 127.0.0.1

jd_apply_refund

$docker compose run --rm -p 9222:9222 server config init jd_apply_refund --cron "12 12 * * *" --barkUrl "https://bark.xxx.com/xxxxxx" --ip 127.0.0.1

wxread_task

$docker compose run --rm -p 9222:9222 server config init wxread_task --cron "12 12 * * *" --barkUrl "https://bark.xxx.com/xxxxxx" --ip 127.0.0.1

bilibili_task

$docker compose run --rm -p 9222:9222 server config init bilibili_task --cron "12 12 * * *" --barkUrl "https://bark.xxx.com/xxxxxx" --ip 127.0.0.1

开发贡献

Automa是本地执行,在实际迁移使用时,需要考虑到登录态问题,定时任务、用户名和密码登录等,也有相应的使用规范。

加载cookie

使用insert-data组件,选择添加Variable变量,名称为cookies,一般要在页面打开之前将cookie加载进去。

定时执行

修改Trigger组件,添加一个Cron job,就可以设置cron定时任务了。MagicBox加载逻辑是,程序首次都会执行一次,后续是根据定时任务的设置执行。

用户登录

使用的组件是Forms,使用Text field填写内容,用户名是username,密码是password

通知方式

automa的HTTP request可以实现接口的调用,正好可以满足通知的需求,但是通知的内容可能会很少,无法做到代码方式灵活。

Bark

Bark 是一款iOS端的推送服务,通过部署一个Server服务端,可以通过HTTP接口来给iOS设备发送推送通知,代码开源: https://github.com/Finb/Bark

使用极其简单,只需要下载安装Bark软件即可,获取每个用户唯一key,按照下面格式替换,就得到了你唯一的推送通道了。一般将Bark的链接替换到组件中即可。

https://api.day.app/DnzTsd6qDWTdfs9xRGygFtasdnsRCL/

详细可参考:Bark官方文档

常见问题

打开网站调试,提示paused in debugger

网站禁止调试,需要关闭,解决方案地址:https://stackoverflow.com/questions/12833514/paused-in-debugger-in-chrome%EF%BC%9B

一般关闭图中红圈处即可解决。

About

一个基于chrome的自动执行定时任务,目前支持B站、v2ex、hostloc、jd等网站的签到

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /