1 Star 0 Fork 0

arest/b站脚本

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
抽奖.js 2.52 KB
一键复制 编辑 原始数据 按行查看 历史
arest 提交于 2023-06-12 14:23 . update 抽奖.js.
(function () {
// 获取评论区所有用户名
// 评论比较少,没有分页~~ 所以一个query就搞定了
// const users = [...document.querySelectorAll('.reply-list .user-name')]
// .map((el) => el.innerText)
// .filter((name => name !== '程序员D1'))
// 设置奖品
// 视频中有四种墨水屏时钟,随机抽取一种作为奖品
const gifts = [
'2.13',
'2.66',
'2.9',
'4.2'
]
async function sleep(ms) {
return new Promise(resolve => {
setTimeout(resolve, ms)
})
}
const stop = 30000
// 抽取行为:
// 按照随机间隔遍历数组,当总时间到达指定时间后停止
async function randomVisit(arr) {
// 去重
arr = [...new Set(arr)]
let duration = 0
for (let i = 0; i < arr.length; i++) {
// 每次停留时间0.1-0.4s
const rand = 100 + Math.round(Math.random() * 300)
const current = arr[i]
await sleep(rand)
duration += rand
if (duration >= stop) {
console.log('result:', current)
return current
}
console.log('------>', current, ' ', i)
if (i === arr.length - 1) {
i = -1
}
}
}
// async function fetchUsers() {
// // 地址需要修改,从network中的请求中直接复制。
// const url = 'https://api.bilibili.com/x/v2/reply/main?csrf=49e839cce988e818a011c0d1c1171aa6&mode=3&oid=486730748&pagination_str=%7B%22offset%22:%22%22%7D&plat=1&seek_rpid=&type=1'
// const res = await fetch(url)
// const jsonData = await res.json()
// // 不排除up主自己了~ 随机到自己的话重新执行一次
// return jsonData.data.replies.map((reply) => reply.member.uname)
// }
async function run() {
console.log('开始设置奖品:')
const gift = await randomVisit(gifts)
console.log('----------> 奖品为:', gift)
console.log('开始抽奖:')
const users = [...document.querySelectorAll('#comment > div > div > div > div.reply-warp > div.reply-list div.user-info > div')].map(item => item.innerText) // 拉取用户
console.log('用户列表:', users.join(';'))
const user = await randomVisit(users)
console.log('----------> 恭喜中奖用户', user, gift)
}
run()
// 结束!!
})()
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
JavaScript
1
https://gitee.com/kgsoft/b-site-script.git
git@gitee.com:kgsoft/b-site-script.git
kgsoft
b-site-script
b站脚本
master

搜索帮助