网络知识 娱乐 【玩转腾讯云】使用Serverless搭建B站自动签到脚本

【玩转腾讯云】使用Serverless搭建B站自动签到脚本

相信各位的B站账号一定想要一个这个吧

可是看看自己缓慢增长的经验条以及各种增长经验的任务是不是感觉目标有些遥远了呢?

今天来介绍一下使用腾讯云Serverless来搭建B站自动签到脚本

项目地址:github.com/happy888888/BiliExp

这个脚本可以:

  • 每日获取经验(投币(支持自定义up主)、点赞、分享视频)
  • 自动转发互动抽奖并评论点赞(官抽,非官抽支持指定关键字如"#互动抽奖#",支持跟踪转发模式)(Actions上默认1天执行1次,1次转发过去1天的动态,云函数上每次只转发过去10分钟的动态,建议修改为每10分钟执行1次)
  • 获取主站@和私聊消息提醒(便于多账号抽奖时获取中奖信息)
  • 参与官方转盘抽奖活动(目前没有自动搜集活动的功能,需要在配置文件config/activities.json里面手动指定活动列表)
  • 每日直播签到
  • 直播挂机(获取小心心,点亮粉丝牌,云函数默认关闭此功能,Actions上默认每次每个粉丝牌房间分别挂机45分钟)
  • 直播自动送出快过期礼物(默认送出两天内过期的礼物)
  • 直播天选时刻抽奖 (支持条件过滤,云函数默认搜索1次后立即退出,Actions上默认执行45分钟后退出,云函数上建议10分钟执行1次)
  • 直播应援团每日签到
  • 每日兑换银瓜子为硬币
  • 自动领取大会员每月权益(B币劵,优惠券)
  • 自动花费大会员剩余B币劵(支持给自己充电、兑换成金瓜子或者兑换成漫读劵)
  • 漫画APP每日签到
  • 自动花费即将过期漫读劵(默认不开启)
  • 自动积分兑换漫画福利券(需中午12点启动,默认不开启)
  • 自动领取大会员漫画每月福利劵
  • 定时清理无效动态(转发的过期抽奖,失效动态,支持自定义关键字,非官方渠道抽奖无法判断是否过期,默认不开启本功能)
  • 风纪委员投票(云函数默认没有案件立即退出,Actions默认45分钟内没有案件自动退出,云函数上建议每20分钟运行1次)

首先安装nodejs:http://nodejs.cn/

一路next直到安装结束

接着打开cmd安装Serverless Framework

npm install -g serverless

出现如上页面即为安装成功

配置脚本:一个或多个B站账号,以及登录后获取的SESSDATA,bili_jct,DedeUserID (获取方式见下方示意图)浏览器打开B站主页--》按F12打开开发者工具--》application--》cookies

解压下载下来的项目,打开 config.json,分别填写SESSDATA,bili_jct,DedeUserID

并进入模版目录biliexp-demo

sls init biliexp-demo
cd biliexp-demo

输入命令 sls deploy

扫描二维码或者进入给出的网址

进行授权

进入腾讯云Severless控制台点击测试,并查看日志即为部署成功,每日可自动签到打卡!

部分功能的配置文件推荐写法

基本上只有使用风纪投票直播心跳(小心心)和天选时刻抽奖以及动态转发抽奖功能需要修改配置文件,使用其他功能的用户只用配置好cookie后使用默认配置就好,这里列出这些功能的推荐配置

1. 使用风纪委员任务

配置文件/config/config.json

触发器使用自定义cron0 */30 5-7,13-15,21-23 * * * *

2. 使用天选时刻抽奖

配置文件/config/config.json(云函数上也是这个路径)

{
    "version": "1.2.0",
    "default": {
        "xlive_anchor_task": {
            "enable": true, 
            "anchor_type": [[0, 0], [1, 0]],
            "delay": 0,
            "gift_filter": ["照片","自拍","代金卷","船长","优惠券","上船","素颜照","加速器","自画像","抵扣卷","写真","王者","舰长"],
            "room_filter": [],
            "danmu_filter": [],
            "price_limit": 0,
            "unfollow": true,
            "follow_group": "天选时刻",
            "clean_group_interval": 0,
            "search_interval": 500,
            "search_areas": [
                {"paid": 1,"aid": 0,"sort": "","ps": 50},
                {"paid": 2,"aid": 0,"sort": "","ps": 50},
                {"paid": 3,"aid": 0,"sort": "","ps": 50},
                {"paid": 6,"aid": 0,"sort": "","ps": 50}
            ],
            "timeout": 850,
            "run_once": true
    },
    "log_file": "BiliExp.log",
    "log_console": true,
    "users": [{
        "cookieDatas": {
            "SESSDATA": "你的cookie",
            "bili_jct": "你的cookie",
            "DedeUserID": "你的uid"
        },
        "tasks": {}
    }]
}

触发器使用自定义cron0 */10 8-23,0-1 * * * *

3. 使用直播心跳任务(获取小心心)

每获取一个小心心需要在一个有粉丝牌的房间心跳5分钟,每天最多获取24个,如果你只有一个粉丝牌就需要心跳2小时,如果你有两个粉丝牌就需要心跳1小时,如果你有24个粉丝牌就需要心跳5分钟 这里以有3个粉丝牌需要心跳40分钟为例

配置文件/config/config.json

{
    "version": "1.2.0",
    "xlive_heartbeat_task": {
            "enable": true,
            "medal_room": true,
            "room_id": [],
            "send_msg": "",
            "timeout": 11, //云函数每次最多执行15分钟,这里每次运行10分钟每个房间得两次小心心
    },
    "log_file": "BiliExp.log",
    "log_console": true,
    "users": [{
        "cookieDatas": {
            "SESSDATA": "你的cookie",
            "bili_jct": "你的cookie",
            "DedeUserID": "你的uid"
        },
        "tasks": {}
    }]
}

触发器使用自定义cron0 */30 12-13 * * * *由于每次只获取了10分钟的小心心,在假设有3个粉丝牌的情况下需要执行4次,这里在12点和13点的整点和半点分别执行1次