Giter Club home page Giter Club logo

github_srcrs_bilibilitask's Introduction

Bilibili助手

简介

👯✨😄📫

哔哩哔哩(B站)自动完成每日任务, 投币,点赞,直播签到,自动兑换银瓜子为硬币,自动送出即将过期礼物,漫画App签到,大会员领取B币卷等。每天获得65点经验,助你快速升级到Lv6

开源不易,如果本项目对你有帮助,那么就请给个star吧。😄

重要提示,如果收到了b站的账号安全通知,可以考虑将Actions禁用一段时间,观望一段时间再进行使用,具体禁用步骤,请参考此Issues

功能

  • 自动获取经验(投币、点赞、分享视频)
  • 直播辅助(直播签到,自动送出即将过期的礼物)
  • 自动兑换银瓜子为硬币
  • 自动领取年度大会员每月权益(每月1号领取B币劵、权益礼包)
  • 月底自动用B币卷给自己充电(每月28号)
  • 月底自动用B币卷兑换金瓜子(每月28号)
  • 漫画辅助脚本(漫画APP签到)
  • 支持功能自定义(自定义投币数量,银瓜子兑换硬币开关等)
  • 账户失效提醒(发送到你的微信或者钉钉提醒、邮箱提醒)
  • 支持多种方式推送运行结果(钉钉、微信)
  • 支持Docker自己部署

目录

关于日志中的 ✔ 和 ❌ 说明

符号 说明
本次程序运行,成功的执行了代码,并完成了任务(例如,分享视频,今日未分享过,那么程序就应该请求分享视频的接口,协助完成分享视频的任务)。
可能两种操作会出现这个符号。1.程序成功的执行了,尝试去完成任务,但是中途遇到了未知的失败。2.程序成功的执行了,检测到此类任务已经完成(例如,分享视频,今日已经分享过,那么程序不应该请求分享视频的接口,无需协助完成分享视频的任务),就无需再去完成。可以理解为跳过或遇到错误。

Github Actions 部署方法

1.fork本项目

项目地址:srcrs/BilibiliTask

2.准备需要的参数

本项目成功运行需要三个参数,分别是SESSDATAbili_jctDedeUserID

  • 打开b站首页(任意一个页面都行)--> 按下F12 --> Application --> Cookies --> https://www.bilibili.com

  • 找到所需要参数对应的数据,找不到可能是你的账号没有登录。

3.将获取到参数填到Secrets

Secrets中的NameValue格式如下:

Name Value
BILI_JCT xxxxx
DEDEUSERID xxxxx
SESSDATA xxxxx

将上一步获取的参数,填入到Secrets中,一共需要添加三个键值对。

4.开启actions

默认actions处于禁止状态,在Actions选项中开启Actions功能,把那个绿色的长按钮点一下。如果看到左侧工作流上有黄色!号,还需继续开启。

5.进行一次push操作

默认push操作会触发工作流运行。

  • 打开README.md,将里面的 😄 删除一个即可。

  • 查看actions,显示对勾就说明运行成功了。以后会在每天的10:30执行,自动完成每日任务。

进阶使用

1.配置文件说明

配置文件的位置在src/main/resource/config.yml

重要提示!!!

程序检测到礼物有效期还剩1天,将会自动随机送出,部分朋友包裹里可能会有贵重礼物,你可以手动关闭即将过期礼物送出功能。 需要在config.yml中,将gift项设置为false。详情见下方配置文件说明

符号 说明
coin 代表投币的数量 [0,5]
gift 是否需要送出即将过期礼物 [true,false]
s2c 是否需要将银瓜子兑换硬币 [true,false]
autoBiCoin 月底自动使用B币卷 [{0,自己有其他用途},{1,给自己充电},{2,兑换成金瓜子}]
platform 用户设备的标识[android,ios]
upList up 主列表,优先给这些 up 主投币[uid]
manga 是否自动进行漫画签到 [true,false]
upLive 即将过期礼物给此up的直播间,填写其 uid
selectLike 对于进行投币的视频选择是否点赞 , 默认不点赞 [0,1]
#每天需要投币的数量 [0,5]。
coin: 5
#送出即将过期礼物 [true,false]
gift: true
#银瓜子兑换为硬币 [true,false]
s2c: true
#月底自动使用B币卷 [{0,自己会使用},{1,给自己充电},{2,兑换成金瓜子}]
autoBiCoin: 1
#用户设备的标识 [android,ios]
platform: android
#自定义优先给这些 up 的视频投币 , 以yml数组的形式 , 填写其 uid (mid)
upList:
  - 477137547
  - 14602398
#进行漫画签到任务 [true,false]
manga: true
#优先送出即将过期礼物给此up的直播间,填写其 uid
upLive: 477137547
#对于进行投币的视频选择是否点赞 , 默认不点赞 [0,1]
selectLike: 0

如实在没有想给他投币的up主,可以考虑把我填上哦 477137547 😄

Docker部署方法

  • 使用如下命令请自行替换所需的环境变量
  • 每天00:01分运行程序
docker run -d \
  --env BILI_JCT=自行填写 \
  --env DEDEUSERID=自行填写 \
  --env SESSDATA=自行填写 \
  timmyovo/bilibilitask

2.推送运行结果到微信

使用server酱将程序运行结果推送到微信

server酱官网:http://sc.ftqq.com

  • 按照server酱官网使用教程,用github登录并绑定微信。

  • 获得SCKEY并将其填入到Secrets中。

Secrets中的NameValue格式如下:

Name Value
SCKEY xxxxx

这样就可以在微信接收到运行结果了。

使用server酱测试号版推送运行结果到微信

server酱测试号版官网:https://sct.ftqq.com/

  • 按照server酱测试号版官网使用教程,用微信扫码登录。

  • 获得SENDKEY并将其填入到Secrets中。

Name Value
SENDKEY xxxxx

使用push+推送运行结果到微信

注意:pushplus进行了升级,查看pushplus 后续暂停维护通知

push+官网:http://www.pushplus.plus

  • 进入官网首页点击一对一推送,用微信扫描其二维码,进行关注

  • 关注后,即可看到token,将其添加到Secrets中即可

Secrets中的NameValue格式如下:

Name Value
PUSHPLUSTK xxxxx

3.推送运行结果到钉钉

1.首先,你需要在钉钉创建一个群聊,可以拉去两个人创建一个,再把他们踢出去。

2.获取钉钉自定义机器人的Webhook,将其填写到Secrets

键值对如下格式:

Name Value
DINGTALK https://oapi.dingtalk.com/robot/send?access_token=064559acaa666c43d5ba197656594f288f3acef9a64f4f43218beddd1c7b7050

4.使用Telegram bot推送运行结果到Telgram群组

  1. 首先需要创建 telegram bot 并获取 telegram bot token,可以参考文档
  2. 将机器人加入群组中,并获取群组ID,查看Stackoverflow问答
  3. 将 telegram bot token 和群组ID添加到Secrets中即可。

Secrets中的NameValue格式如下:

Name Value
TELEGRAM_BOT_TOKEN xxxxx
TELEGRAM_CHAT_ID xxxxx

5.自定义程序运行时间

.github/workflows/Bilibili.yml修改cron表达式,需要注意的是,cron表达式是国际时间, 需要换算到国内时间,往后推8个小时,例如国际时间是12点钟,则在国内是20点钟。

Docker

  • 每天00:01分运行程序
docker run -d --env BILI_JCT=自行填写 --env DEDEUSERID=自行填写 --env SESSDATA=自行填写 timmyovo/bilibilitask

如何拉取最新代码

方法一

github安装pull,会自动帮你检测上游仓库,并帮助你更新代码

地址在这: https://github.com/apps/pull

由于添加有配置文件config.yml,有可能会覆盖你自定义的config.yml,需要注意。

方法二

1、查看是否有源头仓库的别名和地址

$ git remote -v
origin  https://github.com/cmdcs/BilibiliTask.git (fetch)
origin  https://github.com/cmdcs/BilibiliTask.git (push)
upstream  https://github.com/srcrs/BilibiliTask (fetch)
upstream  https://github.com/srcrs/BilibiliTask (push)

origin是你的仓库地址,upstream是你fork的源头仓库。通常第一次是没有upstream的。

2、添加源头仓库

git remote add upstream https://github.com/srcrs/BilibiliTask

3、把上游仓库main分支的更新拉取到本地

git pull upstream main

4、将更新后的代码推送到你的仓库

git push origin main

由于添加有配置文件config.yml,有可能会覆盖你自定义的config.yml,需要注意。

更新日志

2020-02-06

  • 避免投币给单一up

  • 更新b币卷充电接口

  • 修复投币计算(投币数为负数)

  • 修复近30天未投币出现的bug

2020-12-17

  • 增加server酱测试号版推送,感谢sh4wnzec

  • 增加Telegram bot推送,感谢qiwihui

2020-12-07

  • 发布1.0.8版本

  • 修复用户无动态获取视频信息错误

  • 修复从动态列表中获取到自己投稿视频的错误

  • 增加一些自定义配置点赞

2020-11-28

  • 去除UA(貌似是没有影响的)

  • 设置API请求间的缓冲时间(5 秒钟)

2020-11-22

感谢东酱在此项目中做出的巨大贡献。

  • 增加push+推送方式

  • 将项目管理工具改为gradle

  • 优化代码结构,优化日志输出格式(高亮)

2020-11-17

  • 增加钉钉推送方式

  • 优化投币给视频的策略 , 自定义up主视频 > 当前用户动态列表中的视频投稿 > 随机视频列表

  • 投币后等待1-2秒钟 , 降低访问投币API的速度

  • 优化模拟观看视频 , 获取视频时常,随机上报视频观看进度

  • 优化日志输出,提示更加友好,更加贴近用户(如增加了还剩多少天升级的提示)

  • 增加账号失效提醒(发送到微信或者钉钉)

2020-11-05

  • 根据阿里巴巴代码规范优化代码

  • 增加用户标识配置项

2020-11-03

  • 将自动使用B币卷开关,更改为自动配置用途,可以选择不使用、充电、兑换金瓜子。

  • 增加B币卷兑换金瓜子功能

2020-10-22

  • 增加用server酱推送运行结果到微信功能

2020-10-19

  • 增加年度大会员每月1号领取B币卷

  • 月底自动用B币卷给自己充电

  • 在配置项中添加是否月底用B币卷给自己充电开关,默认开启

由于我本身不是年度大会员,无法测试是否可以正常领取年度大会员权益和B币卷, 出错的时候麻烦给我提一个issues,我会及时解决的。

2020-10-17

  • 优化日志显示

  • 增加账户失效提醒

账户失效会导致任务流运行失败,github会下发运行失败邮件提醒。

2020-10-13

  • 重构代码,功能不变

  • 采用反射实现自动加载task包功能任务代码。

  • 加入配置文件,用户可自定义一些配置

2020-10-08

  • 增加自动送出即将过期的礼物

  • 增加漫画APP签到

  • 增加一些api

2020-10-07

  • 增添银瓜子自动兑换硬币功能

2020-10-06

  • 增添B站直播签到

  • 继续增添API

2020-10-05

  • 完成了自动获取经验功能

每日登录、每日观看视频、每日投币、每日分享

  • 完善对接api接口

参考项目

happy888888/BiliExp

github_srcrs_bilibilitask's People

Contributors

actions-user avatar arriv9l avatar happy888888 avatar hiblunt avatar imsingee avatar moshicoco avatar qiwihui avatar qq523407234 avatar sh4wnzec avatar skywalkerwang98 avatar srcrs avatar timmyovo avatar yipko avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.