// ==UserScript== // @name Acfun助手 // @namespace http://tampermonkey.net/ // @version 1.1 // @description Acfun助手 评论抽奖 // @author styang // @require https://cdn.bootcss.com/clipboard.js/1.5.16/clipboard.min.js // @require https://cdn.bootcss.com/axios/0.18.0/axios.min.js // @match http://www.acfun.cn/a/* // @match http://www.acfun.cn/v/* // @grant none // @downloadURL none // ==/UserScript== (function() { 'use strict'; var $ = window.$; var AID = location.href.replace('http://www.acfun.cn/a/ac','').split('#')[0] var baseUrl = 'http://www.acfun.cn/rest/pc-direct/comment/listByFloor?sourceId=AID&sourceType=1&page=PAGE&pivotCommentId=0'.replace('AID',AID) var getComments = function(page){ return axios.get(baseUrl.replace('PAGE',page)) } var total = 0 var totalPage = 0 var comments = [] var results = [] var uids = new Set() var users = new Set() var ram = function(){ var val = Math.ceil(Math.random()*total); if(results.indexOf(val)<0){ results.push(val); return val }else{ ram(); } }; var luckcount = 1 window.lottery = function(){ let floornumber = ram() console.log(`抽取第${luckcount}位天选之子${floornumber}`) let user = comments.find(e=>e.floor === floornumber) if(user&&!uids.has(user.userId)&&!user.isUp){ console.log(`第${luckcount}位天选之子【${ user.userName}】`) if($('.edui-body-container').text().indexOf('评论5字起') === 0){ $('.edui-body-container').empty() } $('.edui-body-container').append(`
第${luckcount}位天选之子${floornumber}楼的 @${user.userName}
`) luckcount++ uids.add(user.userId) }else{ window.lottery() } } $(function(){ getComments(1).then(res =>{ const data = res.data if(data.isUp){ console.log('确认为up主,载入抽奖助手...') total = data.totalCount totalPage = data.totalPage for(var key in data.commentsMap){ var comment = data.commentsMap[key] if(!users.has(comment.userId)){ comments.push(comment) } } for(var page=2;page