// ==UserScript== // @name Acfun文章区助手 // @namespace http://tampermonkey.net/ // @version 1.0 // @description Acfun文章区助手 抽奖 AGN评分 // @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/* // @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 getAgn = function(){ return axios.get('https://acfun.leanapp.cn/agnscore?pageSize=100&acid=ac'+AID) } var total = 0 var totalPage = 0 var comments = [] var results = [] var uids = 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)){ 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(){ getAgn().then(res => { var agn = document.createElement('div'); var agnButton = $(agn); var buttonCss = { 'border-radius':'15px', 'padding':'5px 10px', 'background':'orange', 'display':'inline-block', 'cursor':'pointer', 'margin-left':'5px', 'color':'#fff' }; agnButton.css(buttonCss); var url = agnButton.attr('onclick',`location.href='https://yatace.github.io/agn/search?acid=ac${AID}'`); if(res.data.code === 200 && res.data.data.length){ var score = res.data.data.reduce((a,b)=>a+b.score,0)/res.data.data.length agnButton.text('AGN '+score.toFixed(2)+' 分'); $('.up-name').append(agn.outerHTML); } }) 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){ comments.push(data.commentsMap[key]) } for(var page=2;page { for(var key in pageres.data.commentsMap){ comments.push(pageres.data.commentsMap[key]) } }) } console.log(comments) var button = document.createElement('div'); var jqButton = $(button); var buttonCss = { 'border-radius':'15px', 'padding':'5px 10px', 'background':'#fd4c5b', 'display':'inline-block', 'cursor':'pointer', 'margin-left':'5px', 'color':'#fff' }; jqButton.css(buttonCss); jqButton.attr('onclick',"lottery()"); jqButton.text('开始抽奖'); $('#art-operate').append(button.outerHTML); } }) }) })();