时浔🍒 野生的大萝莉~
Yooooooo
关注数: 5 粉丝数: 175 发帖数: 15,025 关注贴吧数: 15
帖子被吞了。。吐槽一波vfun的兑换功能 因为各种原因用不了精灵(mac+vfun帐号是google帐号)。每次兑换在官网点又很费劲,兑换一次网页刷新一下,然后还要等半天数据才响应。所以写了一个小jio本,能在网页直接兑换,不用费劲等待。有跟我一样情况的小伙伴可以拿去自用。 jio本用法: 1. 打开chrome浏览器,登陆vfun官网,登陆帐号。 2. 在网页任意位置然后右键选择菜单项“检查”,点击控制台(console)。window系统的小伙伴可以通过F12唤起浏览器内置的工具。 3. 复制下面的jio本,粘贴到截图下方,然后回车。 4. 调用jio本示例:init(5) ,想要获取多少页的数据,就输入多少数字。不建议超过130,亲测超过130容易限流。 5. 此时页面会出现以下截图。然后选择自己要兑换的东西点击兑换就可以了。 图片示例jio本在此: const init = async (page) => { window.vfunCsrf = []; const getItems = async (num) => { const data = await fetch('http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fr2beat-cn.valofe.com%2Fgift%2FgetGiftList&urlrefer=5ab1bf1d7a1101fdaa162a953ded34eb', { credentials: 'include', method: 'post', headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' }, body: `page=${num}` }) .then(res => res.json()) window.vfunCsrf.push(data?.csrf) return data?.list } const getData = async (page) => { let data = [] for (let i=0; i<page; i++) { const list = await getItems(i+1) data = data.concat(list) } return data } const desItem = async (idx) => { const data = await fetch('http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fr2beat-cn.valofe.com%2Fgift%2FdestoryItem&urlrefer=0280ef5d583c5b92da7a995565d1da0e', { credentials: 'include', method: 'post', headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' }, body: `idx=${idx}&valoCSRF=${vfunCsrf[0]}` }) .then(res => res.json()) return data } const getIdxs = async (ls = []) => { ls.forEach(async (it) => { const res = await desItem(it) const label = document.getElementById('vfunDemo-' + it) label.append(res?.code == 1 ? '已兑换' : '兑换失败') }) } const clickfn = async () => { const ls = document.getElementsByName('vfunDemo'); const checks = [] ls.forEach(it => { if (it.checked) { checks.push(it.value) } }) console.log(checks) getIdxs(checks) } const clear = () => { const catchBox = document.getElementById('vfun-demo-box'); if (catchBox) { catchBox.remove(); } } const initDom = async () => { clear() const box = document.createElement('div') const button = document.createElement('button') box.setAttribute('id', 'vfun-demo-box') box.setAttribute('style', 'width: 400px; height: 400px;z-index:9999;position: fixed;top:0;left:100px;overflow: scroll;border:1px solid #eee;background:#fff') button.innerText = '兑换'; button.onclick = clickfn box.appendChild(button); const datas = await getData(page) datas.forEach(item =>{ if (item.status == '1') { const label = document.createElement('label') label.setAttribute('id', 'vfunDemo-' + item.idx) label.style.display = 'block' label.innerHTML = ' id:' + item.idx + ', 名称: ' + item.item_name box.appendChild(label) } }) document.body.appendChild(box) } initDom() }
受不了这**觉醒官网的兑换体验了。。。 因为各种原因用不了精灵软件(mac+vfun帐号是google帐号)。每次兑换在官网点又很费劲,兑换一次网页刷新一下,然后还要等半天数据才响应。所以写了一个小脚本,能在网页直接兑换,不用费劲等待。有跟我一样情况的小伙伴可以拿去自用。 脚本用法: 1. 打开chrome浏览器,登陆vfun官网,登陆帐号。 2. 在网页任意位置然后右键选择菜单项“检查”,点击控制台(console)。window系统的小伙伴可以通过F12唤起浏览器内置的工具。 3. 复制下面的脚本,粘贴到截图下方,然后回车。 4. 调用脚本示例:init(5) ,想要获取多少页的数据,就输入多少数字。不建议超过130,亲测超过130容易限流。 5. 此时页面会出现以下截图。然后选择自己要兑换的东西点击兑换就可以了。 脚本代码: const init = async (page) => { window.vfunCsrf = []; const getItems = async (num) => { const data = await fetch('http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fr2beat-cn.valofe.com%2Fgift%2FgetGiftList&urlrefer=5ab1bf1d7a1101fdaa162a953ded34eb', { credentials: 'include', method: 'post', headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' }, body: `page=${num}` }) .then(res => res.json()) window.vfunCsrf.push(data?.csrf) return data?.list } const getData = async (page) => { let data = [] for (let i=0; i<page; i++) { const list = await getItems(i+1) data = data.concat(list) } return data } const desItem = async (idx) => { const data = await fetch('http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fr2beat-cn.valofe.com%2Fgift%2FdestoryItem&urlrefer=0280ef5d583c5b92da7a995565d1da0e', { credentials: 'include', method: 'post', headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' }, body: `idx=${idx}&valoCSRF=${vfunCsrf[0]}` }) .then(res => res.json()) return data } const getIdxs = async (ls = []) => { ls.forEach(async (it) => { const res = await desItem(it) const label = document.getElementById('vfunDemo-' + it) label.append(res?.code == 1 ? '已兑换' : '兑换失败') }) } const clickfn = async () => { const ls = document.getElementsByName('vfunDemo'); const checks = [] ls.forEach(it => { if (it.checked) { checks.push(it.value) } }) console.log(checks) getIdxs(checks) } const clear = () => { const catchBox = document.getElementById('vfun-demo-box'); if (catchBox) { catchBox.remove(); } } const initDom = async () => { clear() const box = document.createElement('div') const button = document.createElement('button') box.setAttribute('id', 'vfun-demo-box') box.setAttribute('style', 'width: 400px; height: 400px;z-index:9999;position: fixed;top:0;left:100px;overflow: scroll;border:1px solid #eee;background:#fff') button.innerText = '兑换'; button.onclick = clickfn box.appendChild(button); const datas = await getData(page) datas.forEach(item =>{ if (item.status == '1') { const label = document.createElement('label') label.setAttribute('id', 'vfunDemo-' + item.idx) label.style.display = 'block' label.innerHTML = ' id:' + item.idx + ', 名称: ' + item.item_name box.appendChild(label) } }) document.body.appendChild(box) } initDom() }
1 下一页