AutoPlan_Helper
这是一个自动化的托管系统,目前支持网易云签到刷歌,bilibili赚经验+自动赛事预测,米游社原神签到,部署至服务器和你的小伙伴一起赚经验吧
如果觉得好用,点个star吧
2.0版本已更新,带来全新的界面体验,感谢@MuXia-0326大佬的辛勤付出
注意:1.x - 2.0版本升级需要升级配置文件,以及新增一个定时任务(不一定要执行sql,可以直接去管理界面加):
INSERT INTO `t_sys_quartz_job` (`id`, `job_name`, `job_group`, `invoke_target`, `cron_expression`, `misfire_policy`, `concurrent`, `status`) VALUES ('592295794938351617', '米游社更新个人信息', 'DEFAULT', 'mihuyouTask.updateAvatar()', '0 15 0 ? * MON', '3', '1', 0);
效果展示
开源地址
目前已经实现
- b站每日自动经验任务
- b站赛事预测赚硬币任务
- 网易云自动签到刷歌任务
- 米游社原神签到领奖励任务以及米游币任务
测试服务器地址
本人不会利用任何cookie,但是为了安全考虑,建议还是自己搭建运行环境
项目结构
采用Springboot + Thymeleaf + layui制作
数据库:mysql
登录安全验证及权限管理:spring-security
定时任务核心:quartz(从pearadmin中抠过来的)
使用说明
- 新建托管任务请先注册或登录一个账号
- 本项目默认会在早上8点开始执行任务,中午12点更新网易云状态信息
- 任务执行完成之后,可前往
我的任务
中查看上一次的运行日志。
网易云状态信息有可能更新失败,如果要查看准确的,请前往网易云个人中心自行查看:https://music.163.com/#/user/level
··bilibili··
支持b站签到任务
以及赛事预测任务
,赛事预测默认会跟着押注多的一方押注,可以在配置中更改为反向押注
- 使用扫码自动填充cookie值(推荐!!)
使用cookie登录
进阶设置
大部分配置参数依赖于BILIBILI-HELPER-PRE
下面是给出的一张参数参考,页面中已经提供了翻译,如果想查看详情的话请对照下表
Key | Value | 说明 |
---|---|---|
matchGame | [false,true] | 是否开启赛事预测。 |
showHandModel | [false,true] | true :压赔率高的,false:压赔率低的 |
predictNumberOfCoins | 1-10 | 单次预测的硬币数量,默认为1 |
minimumNumberOfCoins | [1,无穷大] | 预留的硬币数,低于此数量不执行赛事预测。 |
taskIntervalTime | [1,无穷大] | 任务之间的执行间隔,默认10秒,为了避免服务器资源被恶意利用,可以设置的最大时间为20s |
numberOfCoins | [0,5] | 每日投币数量,默认 5 ,为 0 时则不投币 |
reserveCoins | [0,4000] | 预留的硬币数,当硬币余额小于这个值时,不会进行投币任务,默认值为 50 |
selectLike | [0,1] | 投币时是否点赞,默认 0, 0:否 1:是 |
monthEndAutoCharge | [false,true] | 年度大会员月底是否用 B 币券自动充电,默认 true 。 |
giveGift | [false,true] | 直播送出即将过期的礼物,默认开启,如需关闭请改为 false |
upLive | [0,送礼 up 主的 uid] | 直播送出即将过期的礼物,指定 up 主,为 0 时则随随机选取一个 up 主 |
chargeForLove | [充电对象的 uid] | 给指定 up 主充电,值为充电对象的 uid ,默认为0 |
chargeDay | [1,28] | 默认为每月28号 |
devicePlatform | [ios,android] | 手机端漫画签到时的平台,建议选择你设备的平台 ,默认 ios |
coinAddPriority | [0,1] | 0:优先给热榜视频投币,1:优先给关注的 up 投币 |
userAgent | 浏览器 UA | 用户可根据部署平台配置,可根据 userAgent 参数列表自由选取 |
skipDailyTask | [false,true] | 是否跳过每日任务,默认true ,如果关闭跳过每日任务,请改为false |
*tips:如果你没有上传过视频并开启充电计划,充电会失败,B 币券会浪费。此时建议配置为给指定的 up 主充电。&& 如果选择为指定up充电,请务必填写正确值
userAgent 可选参数列表
平台 | 浏览器 | userAgent |
---|---|---|
Windows10 | EDGE(chromium) | Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36 Edg/86.0.622.69 |
Windows10 | Chrome | Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36 |
masOS | safari | Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Safari/605.1.15 |
macOS | Firefox | Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:65.0) Gecko/20100101 Firefox/65.0 |
macOS | Chrome | Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36 |
ps:如果尝试给关注的 up 投币十次后(保不准你关注的是年更 up 主),还没完成每日投币任务,则切换成热榜模式,给热榜视频投币
投币数量代码做了处理,如果本日投币不能获得经验了,则不会投币,每天只投能获得经验的硬币。假设你设置每日投币 3 个,早上 7 点你自己投了 2 个硬币,则十点半时,程序只会投 1 个)
··网易云··
仅支持使用手机号和密码登录,国内手机号不用填国家代码。别的都是字面意思
··米游社··
暂时只支持原神签到任务以及米游币任务,关于cookie的获取教程如下
注意,米游社获取的cookie必须包括
account_id/ltuid/login_uid
和cookie_token
字段,否则会被视为无效cookie
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓重要↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
米游社获取的cookie中现在已经没有
login_ticket
字段了,如果需要使用米游币任务,请前往米哈游通行证
处获取:https://user.mihoyo.com/
如果您一个cookie中都包含了上述这些必要字段,第二项cookie就不用写了
如果第一次添加任务的时候没有输入米哈游通行证的cookie或者cookie失效导致米游币任务执行失败,您可以在编辑
功能中重新追加。
米游币任务会执行以下几项内容:
- 社区签到
- 点赞
- 分享
- 浏览
电脑端
请尽量使用浏览器无痕模式来进行以下操作,否则注销账户之后,获取的cookie也会随之失效!
懂行的人可以直接略过,直接从浏览器f12复制cookie就完事了
添加米游社任务页面给出了提示,
- 将这个红色标签拖动到
书签栏
- 登录米游社,注意一定要登录
- 打开
米游社通行证/米游社
页面 - 点击刚刚拖到书签的标签复制cookie即可
手机端
先贴上js代码:
javascript:(function(){let domain=document.domain;let cookie=document.cookie;prompt(`Cookies: ${domain}`, cookie)})();
图片仅供参考,如果需要执行同时执行米游币任务,请务必填写两项cookie!
订阅执行结果
本项目主体推送部分代码由BILIBILI-HELPER-PRE修改而成,使用webhook推送有两种方式:
- 在新建任务时填入webhook,这种方式仅对这个任务生效。
- 使用全局webhook:在个人中心设置中设定全局webhook。
当同时存在单任务webhook和全局webhook时,程序会默认选择单任务webhook进行推送,只有在推送失败时才会使用全局webhook
警告!!1.3版本的更新重构了推送部分的代码,之前设置的推送地址会全部失效,目前推送部分代码为json字符串形式传入,在填写webhook的页面中已经给出了生成器页面,请使用生成器生成之后复制到webhook一栏。
tips:个人信息修改中可以发送一条测试消息校验webhook的正确性。
目前项目的推送支持:
- server 酱
- server 酱 Turbo
- Telegram
- PUSH PLUS
- 钉钉
- 企业微信
Server 酱 Turbo 版
- 前往 sct.ftqq.com点击登入,创建账号。
点击点SendKey ,生成一个 Key
- 进入生成页面,选择server酱turbo,填入key
- 配置消息通道 ,选择方糖服务号,保存即可。
钉钉机器人
- 首先你得有个钉钉企业 快速注册
- 进入钉钉开放平台添加机器人
目前钉钉机器人有两种认证方式,两种方式均需要填入推送地址(webhook)
:
加签(secret)
自定义关键词
- 添加自定义关键词:
HELPER
- 在生成页面中选择钉钉并填入推送地址
- 添加自定义关键词:
结束
PushPlus(Push+)
- 进入生成页面选择PUSH PLUS
- 将获取到的Token填入
- 输出结果并复制到
webhook
一栏
Telegram
关于Telegram bot的创建,可以参考知乎这篇文章:教程|Telegram Bot 搭建
没有测试过,测试服务器为国内服务器,如有需要测试请使用国外服务器或反代
企业微信
没有测试过(字段太多懒得研究)
字段说明
字段和BILIBILI-HELPER-PRE中的字段完全一致,如下表所示
字段类型 | Key(字段) | Value(值) | 说明 |
---|---|---|---|
server 酱 | SC_KEY | str | Server 酱老版本 key,SCU 开头的 |
server 酱 turbo | SCT_KEY | str | Server 酱 Turbo 版本 key,SCT 开头的 |
Telegram | TG_USE_CUSTOM_URL | [false,true] | 是否开启 TGbot API 反代 |
Telegram | TG_BOT_TOKEN | str | TG 推送 bot_token,若开启反代,需填写完整反代 url https://api.mytelegram.org/botTOKEN |
Telegram | TG_USER_ID | str | TG 推送的用户/群组/频道 ID |
PUSH PLUS | PUSH_PLUS_TOKEN | str | push plus++推送的token |
钉钉 | DING_TALK_URL | str | 钉钉推送的完整 URL,e.g.https://oapi.dingtalk.com/robot/send?access_token=xxx |
钉钉 | DING_TALK_SECRET | str | 钉钉推送的密钥 |
正向推送代理 | PROXY_HTTP_HOST | str | 推送使用 HTTP 正向代理,e.g.127.0.0.1 |
正向推送代理 | PROXY_SOCKET_HOST | str | 推送使用 SOCKS(V4/V5)正向代理,e.g.127.0.0.1 |
正向推送代理 | PROXY_PORT | int | 推送正向代理的端口,默认 0 不代理 |
企业微信群消息 | WE_COM_TOKEN | str | 企业微信,群消息非应用消息 |
企业微信应用 | WE_COM_APP_CORPID | str | 企业 id 获取方式参考 :获取 |
企业微信应用 | WE_COM_APP_CORP_SECRET | str | 应用的凭证密钥 |
企业微信应用 | WE_COM_APP_AGENT_ID | int | 企业应用的 id,整型 |
企业微信应用 | WE_COM_APP_TO_USER | str | 指定接收消息的成员,成员 ID 列表 默认为@all |
企业微信应用 | WE_COM_APP_MEDIA_ID | str | 缩略图的 media_id, 可以通过素材管理接口获得。(为空发送文本消息) |
- tips:
PROXY_HTTP_HOST
和PROXY_SOCKET_HOST
仅需填写一个。 - tips:钉钉推送密钥可不填,不填仅用关键词验证。
- 获取
media_id
的方式请参考docs/images/media_id.png
项目部署
首先准备好
application.yml
配置文件,模板文件可以在项目根目录找到或Releases中附,或者可以直接复制以下内容:server: #服务器端口 port: 26666 spring: #数据库连接配置 datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://数据库地址:3306/数据库名称?characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai username: 数据库用户名 password: 数据库密码 main: allow-bean-definition-overriding: true mvc: #静态文件 static-path-pattern: /static/** # actable自动建表 actable: table: auto: update model: #分号或者逗号隔开 pack: com.oldwu.entity;com.oldwu.domain;com.netmusic.model;com.miyoushe.model database: type: mysql index: #自己定义的索引前缀#该配置项不设置默认使用actable_idx_ prefix: INDEX_ unique: #自己定义的唯一约束前缀#该配置项不设置默认使用actable_uni_ prefix: INDEX_UNIQUE_ # mybatis自有的配置信息,key也可能是:mybatis.mapperLocations mybatis-plus: #mapper配置文件 mapper-locations: classpath:mapper/*.xml,classpath:mapper/**/*.xml,classpath*:com/gitee/sunchenbin/mybatis/actable/mapping/*/*.xml type-aliases-package: com.oldwu.entity #开启驼峰命名 configuration: map-underscore-to-camel-case: true #输出mybatis日志 # log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
- 在mysql中创建数据库并导入sql
- 接下来你可以选择两种方式部署:
使用 Releases 中打包好的jar运行
- 将
application.yml
修改正确并放入jar包同级目录中 - 使用
java -jar xxx.jar
运行
自行编译
- 导入idea并下载依赖(请使用JDK1.8)
- 在
resources
文件夹放入application.yml
配置文件(可选,你可以选择外置配置文件) - 使用maven install打包成jar
- 使用
java -jar xxx.jar
运行
后续步骤: 注册账号,并将其定为管理员账户,步骤:
- 查看
sys_user
表中你的账号对应的id
- 进入
sys_role_user
表中找到对应的user_id
- 将对应行的
sys_role_id
值改为1
- 查看
- 一些定时任务的配置请登录管理员账号在
自动任务管理
中查看
Releases中的jar不会经常更新,我已经设置的github自动构建,如果需要最新测试版,请前往 https://github.com/wyt1215819315/autoplan/actions 自行下载
版本更新时,请务必备份数据库,以免未知的后果造成影响
如果你不需要自动建表,请将配置文件中的actable有关的项全都注释掉即可
一些问题
- 代码不是一般的乱,(非常非常乱....而且很多地方不符合规范),本人萌新一枚,请大佬多多指教
- 由于BILIBILI-HELPER-PRE项目大多采用static变量,因此无法多线程运行,也无法手动执行
未来
- 管理员功能:查看日志,删除任务等
- go-cqhttp推送(需要加机器人为好友)
- 手动执行b站任务(咕咕咕)
- 推送测试回显错误信息(提交返回的response )
- 主页说明支持markdown格式动态编辑
- 推送生成器支持自动填充json至推送框
更新日志
- 21.8.29 更新了b站二维码登录以及任务删除功能
- 21.8.30 增加了网易云推送,改变了日志表结构
- 21.8.31 增加了米游社原神签到,修复了网易云刷歌不计数的问题(摔、垃圾网易云json数组外边还要加引号)
- 21.9.2 增加了编辑参数编辑功能
- 21.9.3 增加了网易云任务和米游社任务的手动执行开关
- 21.9.4 增加了米游社cookie字段,使其能够执行米游币任务
- 21.9.5 修复了非管理员无法使用单次执行任务的问题,修复了米游社任务无权限访问的问题,修复了bilibili直播送礼物报错的问题
- 21.9.6 增加了bilibili赛事预测
- 21.9.15 尝试更新了BILIBILI-HELPER至1.1.5,可以改善部分任务中出现的null错误
- 21.10.1 layui已下线,目前将所有cdn服务换为本地文件
- 21.10.3 修复了部分bug,更改了部分数据表字段名称使其更统一,增加bilibili反向赛事预测
- 21.10.4 增加了全局webhook,更改webhook的传入方式为json字符串,增加生成器页面用来生成webhook.json
- 21.11.6 修复米游币任务分享帖子失效的问题
- 21.12.11 修复log4j2漏洞
- 21.12.29 修改米游社原神签到逻辑,适配米游社账号下多角色不同服的签到处理,并修改一些页面显示,使其更美观(感谢@MuXia-0326)
22.1.26 (2.0版本重大更新)
- 重构了所有页面,所有请求均改为前后端分离
- 增加登录注册验证码校验
- 修复网易云登录时可能出现的乱码问题
- 个人任务管理支持头像展示
- 增加actable自动建表,以后更改表结构时无需手动更改(第一次使用时还是需要导入sql)
- 将mybatis换为mybatis-plus,精简了大量xml文件
鸣谢
感谢 JetBrains 对本项目的支持。
大佬,有替换方案吗。bootcdn替换成啥😂
尬住了,这博客刚刚把script当成脚本了
src="https://lib.baomitu.com/jquery/3.6.0/jquery.min.js"
那我可以改哪个文件把cdn改了,实现登录吗?我现在搭建好,登录不了😂
纠正:include,bootcdn全都挂掉了
includ里面的的bootcnd全都替换掉就行
你好,博主。你的还能注册登录吗
cdn挂了,有空换一下吧
https://s4.ax1x.com/2022/01/19/7BjhkR.png
米游社登陆上去了,每日任务做完,但原神签到好像登陆不上去,签到失败,求求大佬教教如何抓可以签到原神的包
点米游社原神板块,重新登录下账号,然后按我上面的方法获取cookie,重新加一下任务试试
谢谢,我知道怎么抓了,先登陆bbs.mihoyo.com/ys/(社区),再登陆user.mihoyo.com (米哈游通行) ,才能获取到所有的cookie 包括(cookie_token account_id)。如果多账号的话最好用无痕的浏览器来抓,因为如果退出再登陆的话cookie会失效。
感谢指出,回头我改一下文档,免得又有人掉坑
博主可以出一个详细的宝塔部署教程吗,纯纯小白整不明白。
博主你好,请问一下部署好之后怎么访问呢?
本机访问默认地址是http://localhost:26666
好像没有发出去评论,博主方便加个扣扣幺嘛:2430871184
我用的宝塔部署的访问是ip加26666,端口也开放了,访问就只显示初始的那个indx建站成功。
按理来说直接访问端口不应该出现宝塔的提示,如果出现宝塔的页面说明过了nginx,尝试换个浏览器或者看下nginx配置,应该直接走端口nginx不用改任何东西
博主,我想问下为什么我的推送没有成功啊,我根据说明来做的,显示程序异常~
大概是因为有什么问题吧,估计后台报错回显不到页面,你用的哪种推送方式
之前用server酱的方糖服务号,现在用企业微信试下有没有推送
我去检查一下server酱,不知道有没有和最近新增了一个请求参数有关系
我已经收到了企业微信的推送了,可能方糖服务号被腾讯限制了?谢谢博主!
尊敬博主您好,近日b站的投币任务不执行,请问您是否有关注到?
查看下输出日志,试着自己排查下,要是无法解决的话,发给我看一眼
最近更新钉钉推送关键字方式有点问题,如果是推送的问题我会去看的
博主你好,请问一下部署好之后怎么访问呢?
浏览器访问localhost:端口
默认端口好像是26666,写在application.yml里头自己看下
我用宝塔部署的,访问服务器ip:26666也访问不了
服务器端口开了没
端口开了的
看下日志有没有正常启动,或者直接在服务器上执行curl命令试试通不通
博主,我弄好了,原来是mysql版本太低了
可以二开?
什么意思
想二次开发你这个项目,可以拿来二开吧?
可以
博主你好!我有个问题想问,就是程序部署好了但是用不了,可能是数据库这块出错了注册账号是成功的、页面响应提示内部错误500
控制台输出的日志就可以
具体信息能否提供一下,这边不方便发图的话github提交issues
问题已经解决了,是因为没有设置管理账号导致的
博主,我已经去GitHub提issues
您的博客留言显示评论失败哦,能留个联系方式嘛我q202599951
我也不知道为啥失败,其实发的出去,这个php的博客我不太懂....
你好,请问这个可以用宝塔搭建吗
可以
可以私聊吗,有点问题想问,q:1376779011
你好,请问这个用宝塔可以搭建吗