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 对本项目的支持。
老哥,为什么的我 auto_plan-http.jar 启动未成功,点了启动没反应
没有配置好
博主 搭建好了之后 网易云登录链接服务器失败 是登录挂了吗
大佬有没有QQ群
怎么备案啊,备案如何写到网站底部
备案看你在那里买的域名了,国内的话都会叫你做的。拿到备案号之后会给你一段HTML的代码。自己下载源代码然后修改到index里之类的。添加到底部。再自己编译成jar之后就可以了
好的
我看下,我先把你评论删了,cookie还是别发这里了
可以问你一些搭建的问题吗 我的qq1752876470
博主,我用docker-compose配置这个,米游设获取的cookie,直接复制过去显示无法连接服务器
博主您好,请问有空的时候能给米游社添加一个崩3签到模块吗
博主你好,我使用了您的测试服务器,为什么添加原神任务一直是“连接不到服务器”,我按您的方式获取的cookie和f12的都试过了,就是不行
留个qq
119548583
晚上测试了,正常获取cookie没有你所说的问题,连接服务器失败大概率是因为后台报了500错误前端才这样展示的,自己检查一下cookie有无问题
博主你好,从3月8号开始我更新了我的米游社cookie,之后我就不能自动签到了,而且server酱也不发推送了,请问下是什么原因啊
手动运行下试试,如果可以的话就是因为一个错误导致的,稍后我会更新下测试服务器
手动是可以运行的,但运行完也没有推送,不知道是什么原因
我为什么启动项目后访问网页显示是Please sign in,界面呢,我在源码没找到这个界面啊
这是springsecurity自带的鉴权界面,只有在没配置好数据库或者其他奇奇怪怪的情况下才会出现
奇怪了,我在Releases下载了jar,用同样的application.yml,运行它就是正常的
怎么更新
再出一个宝塔搭建的教程吧大佬 看不会啊
是这样的 确实是看不懂
未登录状态下需要点击添加任务页面打不开的问题,可以在相关页面加入
看报错信息,好像是跨域问题,https和http协议无法相互切换的问题
解决了,用了最笨的办法,在对应页面头部引入
宝塔完整踩坑过程记录在这里了,包括数据库导入索引过长问题解决方法以及通过宝塔Java项目运行方法
https://www.iculture.cc/knowledge/pig=10061
貌似github上的sql文件里缺了一张表导致java -jar无法正常运行
Cause: java.sql.SQLSyntaxErrorException: Table 'autosign.t_sys_quartz_job' doesn't exist; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table 'autosign.t_sys_quartz_job' doesn't exist
没事了,宝塔导入工具的锅,打扰了
加多一点脚本吧😍好游快爆,联通,a站
出一个宝塔的详细教程吧,大佬
再出一个宝塔搭建的教程吧
为什么运行jar包失败,显示command not found
你Java环境没装吧
装了呀,我加一下你QQ吧
不太会
你好,请问宝塔怎么搭建