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 对本项目的支持。
为啥米油社验证成功,手动执行后看日志提示签到失败,活动已结束呢
网易云自动任务关闭了吗
大佬,现在项目是已经不维护了吗
最近在重构,主要开发者都是业余搞搞 没啥时间维护 有问题可以丢issue到时候我尽力修
原神签到是OK的,但是server酱消息push需要改一下generatePushBody方法
postData.put("title","autoPlan消息通知"); postData.put("desp",content.replaceAll("=",":")); return postData.toJSONString();JSONObject postData = new JSONObject();
http://at.amemory.cn:8091/ 我也搭了一个,我这边已经改了push,帮大佬分担服务器压力哈哈哈哈
有点小问题为啥任务开始8点,结束时间一直是下午4点,serve酱通知也是在下午4点,暂时不知道哪里问题
作者你好,怎么现在只有bilibili了,网易云下架吗
感谢大佬开源分享,您的代码对我很有启发
博主能私聊吗,我q:1376779011,有点问题问下
大佬有没有QQ群或者QQ遇到点问题想问一下
http://www.clmiku.top/没事了解决了
图片不能放,只好这样了https://www.aliyundrive.com/s/LMxFWRB743k
cdn炸了,国内访问的话部分情况有问题,自己替换下或者过几天有空我换下
大佬,有更换cdn的教程吗?
正常搭建,疯狂报错。目前苹果手机safari能正常使用,
大佬,你好,为什么我windows电脑浏览器访问打开只有字,而且加载很慢,安卓手机打开也一样。苹果手机就能流畅打开,mac未知。
米哈游也挂了
网易云音乐不行了呢,登录一直失败
大佬,请问一下,b站投币预留硬币数为什么一直固定在默认的50改不了?但是竞猜的预留硬币数可以改
非国区的网易云账号就算写了手机区号,登录的时候还是提示手机号不正确
b站老是重复投币怎么弄啊
我也是
楼主你好,这个米游社自动签到支持国际服米游社吗
跪拜大佬!稳的一批。
博主,请问怎么修改网站内容呀,是需要重新编辑jar吗
哔哩哔哩怎么每天硬币都投不满,老是投重复了