-
Notifications
You must be signed in to change notification settings - Fork 189
/
Copy pathconfig.json
281 lines (277 loc) · 25.6 KB
/
config.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
/* 如果在actions中运行,请把配置好的本文件按格式复制到secrets(ADVCONFIG)中,本文件仅供本地运行时使用
本文件格式符合json5标准,json5向下兼容json */
{
"version": "1.2.1", // 配置文件版本,严禁修改
"http_header": { // http头部,访问B站时使用 注:User-Agent建议改为常用的浏览器ua(下面是google浏览器),其他的不改
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36",
"Referer": "https://www.bilibili.com/",
"Connection": "keep-alive"
},
"default": {
"vip_task": { // 任务:自动领取大会员B币劵优惠券,花费剩余B币劵,下面为本功能详细配置
"enable": false, //任务开关,值为true或false分别代表开启和关闭
"receiveDay": 1, // 尝试获取B币劵优惠券的日期,值为整数,1为当月第1天
"BpCharge": { // 设置花费B币劵的方式,兑换顺序为下方配置顺序,可以删除或更换顺序,若某项兑换失败顺延到下一项继续兑换直到最后一项或劵花费完毕
"charge": 5, // 值为整数,给自己充电,花费劵的数量为5
"Bp2Gold": 0, // 值为整数,兑换金瓜子,花费劵的数量为0
"Bp2Coupons": 0 // 值为整数,兑换漫读劵,花费劵的数量为0
},
"chargeDay": 0 // 尝试花费B币劵的日期,0为当月最后1天
},
"group_sign_task": true, // 任务:应援团签到,值为true或false分别代表开启和关闭
"xliveSign_task": true, // 任务:直播签到,值为true或false分别代表开启和关闭
"xlive_bag_send_task": { // 任务:送出即将到期的直播间背包里的礼物,值为true或false分别代表开启和关闭,下面为本功能详细配置
"enable": true, //任务开关,值为true或false分别代表开启和关闭
"room_id": 1535258, // 值为整数,送礼物的直播间,0为随机取直播间
"expire": 172800 // 值为整数,距离过期的时间(单位为秒),172800为两天,若礼物将在这个时间内过期则会被随机送出
},
"xlive_heartbeat_task": { // 任务:发送直播心跳,可用于获得小心心(每5分钟1个)和大老爷在线时长加经验(费时,不建议在云函数使用)
"enable": true, // 任务开关,值为true或false分别代表开启和关闭
"medal_room": true, // 在所有拥有粉丝牌的直播间心跳,值为true或false分别代表开启和关闭,只有在有粉丝牌的房间心跳才能获取小心心(时间累加多个房间,没有开播也累加)
"live_status": [0, 1, 2], // 只在指定状态的直播间心跳,值为整数数组,0为未开播,1为正在直播,2为轮播
"room_id": [], // 直播间id,值为整数数组,除了上面的拥有粉丝牌的直播间还可以在其他直播间心跳
"send_msg": "", // 向所有有粉丝牌的房间发送消息(作用是点亮粉丝牌和增加其密度),值为字符串,为空字符串则不发送
"timeout": 16, // 心跳分钟数,值为数字(单位分钟,允许小数),心跳的时间,达到时间退出
},
"xlive_anchor_task": { // 任务:参与直播天选时刻,下面为本功能详细配置
"enable": true, //任务开关,值为true或false分别代表开启和关闭
"anchor_type": [[0, 0], [1, 0]], //参与条件,值为n*2维整数数组,详见下方
/*
[0, 0] 无 [1, 0] 关注主播
[2, x] 当前主播粉丝勋章至少x级(注:x为整数)
[3, 2] 至少成为主播的提督 [3, 3] 至少成为主播的舰长
注意本项的值为二维数组,例子参与无条件和需要关注主播和粉丝勋章至少为1级的天选时刻,本项的值应为 [[0, 0], [1, 0], [2, 1]]
*/
"delay": 0, //延迟,值为整数(单位秒),每参与一次天选时刻延迟运行
"room_filter": [], //直播间黑名单,值为整数数组,指定直播间的天选将不会参与
"gift_filter": [], //礼物名称黑名单,值为字符串数组,排除掉一些不需要参与的礼物
"danmu_filter": [], //弹幕过滤关键字,值为字符串数组,弹幕包含此值会被过滤
"price_limit": 0, //金瓜子上限,值为整数,投喂金瓜子超过此值会被过滤
"unfollow": true, //等待参与的天选结束后取消关注,值为true或false分别代表开启和关闭,仅在需要关注主播时有效
"follow_group": "", //用户分组名称,值为字符串,将需要关注的主播放进用户分组里,空字符串为"默认分组",若不存在自动创建
"clean_group_interval": 0, //用户分组清理周期,值为整数,当日期能被此数整除时将follow_group参数指定的分组清空(全部取关),为0或者follow_group为空时不清空
"search_interval": 300, //搜索执行周期,值为整数(单位秒),搜索直播间->抽奖->等待搜索周期->下一轮搜索
"search_areas": [ //搜索区域数组,数组中每个值包含一个直播分区,在分区数组中搜索直播间
{"paid": 1,"aid": 0,"sort": "","ps": 40},
{"paid": 2,"aid": 0,"sort": "","ps": 40},
{"paid": 3,"aid": 0,"sort": "","ps": 40}
/* paid 大区域id,值为整数,目前已知区域 2网游 3手游 6单机 1娱乐 5电台 9虚拟主播 10生活 11学习
aid 小区域id,值为整数,0为全部区域,在娱乐分区下有 145视频聊天 399日常,在网游分区下有 86英雄联盟 80绝地求生,这里不详细列举
sort 排序方式,值为字符串,为空则默认排序
ps 最大搜索页数,值为整数,每页20个直播间,增大此参数可在分区中获得更多直播间
*/
],
"timeout": 2700, //超时时间,值为数字(单位为秒),超过这个时间退出此任务,如果设置unfollow为true会不等待天选结束直接取关主播
"run_once": true //参与一次即退出,值为true或false,值为false才会等待超时退出(Actions上默认),云函数上推荐设置为true并每隔10分钟调用此功能
},
"coin_task": { // 任务:每日投币获取经验,下面为本功能详细配置
"enable": false, // 任务开关,值为true或false分别代表开启和关闭
"num": 5, // 投币数量,值为整数(范围0-5),如果当天已经投币超过这个数量则不会继续投币否则补齐剩余数量,硬币不够则不会投币
"target_exp": 28800, // 目标经验值,值为整数,达到经验目标则停止投币
"delay": [0, 2], // 延时,值为二维整数数组,模板意思是每次投币后随机延时0-2秒进行下一次投币
"do_task": [1], // 投币模式,值为整数数组,按照数字顺序执行不同投币模式
/*
模式1:随机抽取视频投币
模式2:从账号的关注列表或下面up参数获取up主,对up主视频(专栏)投币
模式3:搜索特定关键字得到视频进行投币
取值例子: "do_task": [3, 2, 1],
含义,先执行模式3,当币没有投够,执行模式2,还没有投够,执行模式1,推荐将模式1放最后(多账户模式推荐只使用模式1)
*/
/*--------- do_task存在2时(即使用模式2)的必填项(不存在则为无效项,可删除本区域)------------- */
"coin": { // 抽取up主后投币顺序,若投币数量不够抽取下一个up主继续执行
"video": 5, // 从抽取的一个up主中获取视频的数量,值为整数,每个视频投一个币,不投币视频请删除本行
"article": 0 // 从抽取的一个up主中获取专栏的数量,值为整数,每个专栏投一个币,不投币专栏请删除本行
// article与video这两个参数也可以颠倒顺序,若上面两行都被删除那么使用模式2毫无意义
},
/*--------- do_task存在2(即使用模式2)时的可选项(不需要请删除本区域)------------------------ */
"groupTag": "特别关注", // 关注的用户组(从用户组中抽取up),值为字符串,指定后只会投币用户组里的up,不指定用户组请删除本行
"up": [], // 投币的up主列表,值为整数数组,指定后只会投此参数里的up主(按顺序尝试)而不会投其他关注的up主,不指定up主请删除本行
//上面两行冲突,使用时只有一行会生效,请至少删除其中一行避免歧义
/*-----------------------------end------------------------------------------------------ */
/*--------- do_task存在3(即使用模式3)时的必填项(不存在则为无效项,可删除本区域)------------ */
"search": { // 指定用于搜索的视频关键字
"马保国": { // 搜索关键字为马保国的视频
"num": 5, // 搜索结果数量上限,值为整数,每个视频搜索结果投一个币 */
"order": 0, // 排序规则,值为整数,0综合排序(默认取值),1最多点击,2最新发布,3最多弹幕,4最多收藏 */
"duration": 0, // 时长规则,值为整数,0全部时长(默认取值),1十分钟以下,2三十分钟以下,3六十分钟以下,4以上 */
"tids": 0 // 分区规则,值为整数,0全部分区(默认取值),1动画,13番剧,167国创,3音乐,129舞蹈(分区太多篇幅有限不列举了) */
},
"特朗普": {} // 这里括号为空,是因为括号里的参数全为可选参数,均可以不填写,值参照上面默认取值
// 以此类推后面添加更多关键字,前面的关键字视频投币数量不够才会搜索后面的(保证至少有一个关键字)
}
/*-----------------------------end---------------------------------------------------- */
},
"watch_task": true, // 任务:模拟观看一个随机视频(加经验值,会留下观看历史记录),值为true或false分别代表开启和关闭
"share_task": true, // 任务:模拟分享一个随机视频(加经验值,并不会真的分享),值为true或false分别代表开启和关闭
"silver2coin_task": true, // 任务:银瓜子兑换硬币,值为true或false分别代表开启和关闭
"lottery_task": { // 任务:动态抽奖转发评论点赞
"enable": true, //任务开关,值为true或false分别代表开启和关闭
"reply": ["从未中奖,从未放弃[doge]", "支持支持"], // 回复原动态评论,值为字符串数组,每次转发时会随机抽一个
"repost": ["从未中奖,从未放弃[doge]", "支持支持"], // 转到自己动态的评论,值为字符串数组,每次转发时会随机抽一个
// 关键字匹配转发,值为字符串数组,支持正则表达式匹配,匹配上关键字的动态才转发
"keywords": ["^((?!恭喜).)*#互动抽奖#((?!恭喜).)*$", "^((?!恭喜).)*#抽奖#((?!恭喜).)*$", ".*(转|抽|评).*(转|抽|评).*(转|抽|评).*"],
/* "repost_with_tag": { // 带着标签转发,有的抽奖动态转发需要带标签,注释掉为不带标签
"fix": 1, // 标签携带位置,值为整数,取0为将标签加在首部,取1为加在尾部
"except": ["抽奖"], // 排除条件,值为字符串数组,符合本条件的标签不会携带
"reply_with_tag": false // 回复是否带上标签,值为true或false分别表示带和不带
}, */
"time_quantum": [-43200, 43200], //转发时间区间,值为二维整数数组(单位秒),通过这个参数可以把每天时间分成n个区间,当此任务在第m个时间区间运行时,转发第m-1个区间中的动态
//比如设置为[0, 600],就会把00:00:00-00:10:00当做时间区间1,00:10:00-00:20:00当做时间区间2,当在时间区间2中运行此任务值转发时间区间1的动态
//此参数用于明确每次的转发动态的时间区间来防止重复转发同一个动态或者漏掉动态,同时划分比较小的时间区间可避免在同一时间转发过多动态被识别为抽奖号
//任务运行周期应该等于两个数字相减的绝对值,划分更小的时间区间的同时也需要增加此任务启动的频率,默认[0, 86400]为一天运行一次,一次转发一天的动态
//定时启动被任务时,不应该在单个时间区间中重复运行本程序,如果每30分钟运行一次本程序,此值设为[0, 1800]然后在每个半点和整点运行本任务是合理的
//"create_dynamics_interval": [4, 6], //每隔几个动态发一条自定义动态(消除抽奖特征),值为二维整数数组[m, n],每隔m到n个动态转发发一条自定义动态(仅对单次运行有效)
//"create_dynamics": ["今天天气真好", "哈哈哈"], //动态内容,字符串数组,要发动态的内容,随机抽一个
//"create_dynamics_end": 0, //如果单次运行转发动态数量小于本配置,末尾加一条自定义动态,防止每次转发动态都只有一两条不会触发创建自定义动态
"delay": [6, 8], /* 转发延时,值为二维整数数组,用于防止转发过出现频繁的提示,模板意思是每次随机延时6-8秒转发
/*----------------- 跟踪转发模式------------------- */
"repost_by_others": [], //跟踪的B站用户uid,值为整数数组(每个数字代表B站账户uid),为空数组则关闭跟踪转发模式而只转发自己的动态,不为空数组则转发指定账户的动态
"force_follow": false // 是否强制关注抽奖up主,值为true或false,若为true,当跟踪的up转发动态的源up主你没有关注时你也会强制关注
/*
跟踪转发模式用于:
1. 大号转发了抽奖动态,小号使用此模式跟着转
2. 跟着其他大量抽奖的用户转
不建议跟踪多个用户
*/
/*----------------------end----------------------- */
},
"msg_notify_task": { // 任务:主站@消息,私聊消息推送,配合互动抽奖任务和天选时刻使用便于得到中奖消息(多账号可能需要)
"enable": false, // 任务开关,值为true或false分别代表开启和关闭
"black_keywords": ["欢迎", "感谢", "关注"] //过滤关键字,值为字符串数组
},
"clean_dynamic_task": { // 任务:清理自己的动态,包括过期抽奖,失效动态
"enable": false, // 任务开关,值为true或false分别代表开启和关闭
"black_keywords": [], // 黑名单关键字,值为字符串数组,出现关键字的动态会被清除
"unfollowed": false, // 删除已转发的但是没有关注的up主的动态,值为true或false分别代表删除和忽略
"days_range": [7, 30] // 限制删除动态的时间区间,值为二维整数数组(单位天),这里表示只对7天之前30天以内的动态执行清理,天数按执行当天24点向前计算
},
"manga_sign_task": true, // 任务:漫画app签到
"exchangeCoupons_task": { // 任务:漫画积分兑换福利券,请保证程序在中午12点0分30秒左右启动,其他时候启动本功能几乎都会兑换失败
"enable": false, // 任务开关,值为true或false分别代表开启和关闭
"num": 0 // 兑换数量,值为整数
},
"manga_vip_reward_task": {// 任务:领取每月大会员漫画权益(漫读劵)
"enable": true, // 任务开关,值为true或false分别代表开启和关闭
"days": [1] // 每月尝试领取的日期,值为整数数组,指定多个日期会重复尝试领取
},
"manga_auto_buy_task": { // 任务:自动花费即将过期的漫读劵
"enable": false, // 任务开关,值为true或false分别代表开启和关闭
"mode": 1, // 购买模式,值为整数(目前仅1或2),mode为1,自动购买追漫列表的漫画,mode为2,购买filter参数中的指定漫画
"filter": "25900|1-30,35,55;25966|5,15,35-" //过滤漫画参数,值为字符串,格式为"漫画mc号1|章节序号1,章节序号2;漫画mc号2|章节序号1,章节序号2"这样的格式指定要购买的漫画
},
"judgement_task": { // 任务:风纪委员投票
"enable": true, // 任务开关,值为true或false分别代表开启和关闭
"run_once": true, //没有案件立即退出,值为true或false,值为false才会等待超时退出(Actions上默认),云函数上推荐设置为true并每隔30分钟调用此功能
"params": { // 默认投票参数,vote值程序会自动使用从众法填写,注意此项下面的可选子参数的值不止vote和attr两个,其他参数请看项目的说明文件(其他参数均为非必须参数可以不需要)
"vote": 4, // 投票类型,值为整数,4为投删除票,其他取值看项目说明文件,非必须参数此行可以删除但不建议
"attr": 0 // 是否匿名,值为整数,0为匿名投票,其他取值看项目说明文件,非必须参数此行可以删除但不建议
},
"vote_num": 20, // 投票次数,值为整数,达到投票次数后退出任务
"check_interval": 420, // 定时检查间隔,值为数字(单位秒),当没有案件时每隔一段时间定时检查是否有新的案件,请适当设置此间隔(不宜过短或过长)
"timeout": 2700 // 任务超时,值为数字(单位秒),超过时间仍没有达到投票次数则退出任务
},
"activity_task": { // 任务:参与B站转盘抽奖活动
"enable": true, // 任务开关,值为true或false分别代表开启和关闭
"path": "./config/activities.json", // B站转盘抽奖列表文件,值为字符串,小数点代表当前目录,本地运行也可指定绝对目录
"activities": [] // B站转盘抽奖列表,值为抽奖活动数组,目前这个数据被放到了转盘抽奖列表文件里面,也可以放在这里而不需要额外指定列表文件
}
},
"webhook": { /* 用于自定义消息推送,server酱消息推送只需填写下面SCKEY参数和在hooks参数中enable设置为true,另外提供邮箱推送和telegram推送模板
使用actions的用户也可以直接使用secrets(push_message),不需要填写本项
如果使用其他推送平台,请自行查阅相应平台数据格式,按照本模板添加到本配置中,理论上本项目从配置文件上支持所有http格式的消息推送平台 */
"http_header": {"User-Agent":"Mozilla/5.0"}, // 定义http头部,访问消息推送接口时使用
"variable": { // 声明变量,在hooks参数中的url参数和params参数中使用大括号{}可直接引用在此声明的变量,"msg_"开头变量为程序内置变量不允许赋值
"msg_simple": null, // msg_simple为简化的日志消息,用于下面hooks消息推送接口引用
// "msg_raw": null, // msg_raw为完整的日志消息,用于下面hooks消息推送接口引用,若不引用最好注释掉,否则占用内存空间
"title": "B站助手脚本消息推送", // 此为自定义变量,用于下面hooks消息推送接口引用
"SendKey": "xxxxx",
/* "email": "",
"telegram_bot_token": "",
"telegram_bot_chatid": "",
"SKEY": "SCT9483T3d5NZps5AVvTYIn1ipyouWNI" */
},
"hooks": [ // 在这里以数组的形式定义所有消息推送回调接口
{
"enable": false, // 开关,需要开启请直接把本项删除或设置为true
"name": "server酱Turbo版消息推送", // webhook名称,仅用于日志显示不用于实际消息推送
"msg_separ": "\n\n", // 消息分隔符,推送消息时将每一条消息用两个换行符(\n)隔开
"method": 1, // 请求方式,0为get,1为post,3为以json方式post
"url": "https://sctapi.ftqq.com/{SendKey}.send", // 请求地址,{SendKey}为对上面variable变量中的SendKey的引用,当然也可以直接把SCKEY的值放在url里面
"params": { // 请求参数,server酱推送需要text和desp两个参数,分别把变量里title和msg_simple(简化消息)赋值进去
"text": "{title}",
"desp": "{msg_simple}"
}
}/*,
{
"enable": true,
"name": "server酱消息推送",
"msg_separ": "\n\n",
"method": 1,
"url": "https://sc.ftqq.com/{SCKEY}.send",
"params": {
"text": "{title}",
"desp": "{msg_simple}"
}
}, //若要实现其他消息推送接口,需要自己查阅相关文档构建method,url和params三个参数,下面是邮箱推送和telegram_bot推送的例子,其他平台自行探索
{
"enable": false,
"name": "邮箱消息推送",
"msg_separ": "<br>",
"method": 1,
"url": "https://email.berfen.com/api",
"params": {
"to": "{email}",
"title": "{title}",
"text": "{msg_simple}"
}
},
{
"enable": false,
"name": "telegram_bot消息推送",
"method": 1,
"url": "https://api.telegram.org/bot{telegram_bot_token}/sendMessage",
"params": {
"chat_id": "{telegram_bot_chatid}",
"text": "{msg_simple}"
}
},
{
"enable": false,
"name": "酷推个人QQ消息推送",
"method": 3,
"url": "https://push.xuthus.cc/send/{SKEY}",
"params": {
"c": "{msg_simple}"
}
}*/
]
},
"log_file": "BiliExp.log", // 输出日志文件,不输出请留空,也可填写完整路径
"log_console": true, // 是否把日志输出到控制台
"looping": 0, // 循环间隔,单位为秒,设置为0则不启用,也可以使用命令行启用(命令行优先),可运行命令 python3 BiliExp.py -h 查看,与timing互斥
"timing": [], // 定时执行,格式为HH:mm:ss,空列表则不启用,也可以使用命令行启用(命令行优先),可运行命令 python3 BiliExp.py -h 查看,与looping互斥
"random": 0, // 随机延时范围,单位为秒,设置为0不启用,也可以使用命令行启用(命令行优先),可运行命令 python3 BiliExp.py -h 查看
"users": [{ //账户数组,每个账户包含一个cookieDatas和tasks参数,使用actions的用户可以使用secrets(biliconfig)指定cookie而不用本参数
"cookieDatas": { // cookie获取方式见项目说明
"SESSDATA": "xxxxx",
"bili_jct": "xxxxx",
"DedeUserID": "xxxxx",
"LIVE_BUVID": "xxxxx"
},
"show_name": "", /* 昵称,用于日志,消息推送,填空则默认使用账号昵称,在actions上不想显示真实昵称时使用
/* 下面tasks参数与最上面default参数作用相同,但优先级更高,用于定制每个账号的参数,
tasks参数中不存在的配置用default代替,为空则相当于直接使用default中所有配置当做这个账户的配置
default中不存在的配置在tasks参数中出现则无效(default中支持以删除功能配置的方式禁用功能,这种禁用是全局的,在这里配置开启也无效) */
"tasks": {}
}/*, { //下面注释掉的是第二个账号的参数例子,以此类推多个账号,单账号仅填写上面内容
"cookieDatas": {
"SESSDATA": "4a5f1c63%2C1785313721%2Cdf9fc*a1",
"bili_jct": "cf28ba45824d443646907a5c4da8cf1",
"DedeUserID": "914624742",
"LIVE_BUVID": "xxxxx"
},
"show_name": "账号2",
"tasks": {
}
}*/]
}