您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
在洛谷中显示他人的咕值详情(仅限rk前1000用户)
当前为
// ==UserScript== // @name 洛谷显示他人咕值 // @version 0.1.1 // @description 在洛谷中显示他人的咕值详情(仅限rk前1000用户) // @author 叶ID (KMnO4y_Fish, yezhiyi9670) // @match *://www.luogu.org/space/show?uid=* // @namespace http://greasyfork.icu/zh-CN/users/370663-yezhiyi9670 // ==/UserScript== (function () { $('document').ready(function () { $sidebar = $('#app-old .lg-main-content .lg-right'); $firstele = $($sidebar.children()[2]); $setting = $('#setting_btn'); if($setting.length) return; // 是自己的账户 $rankbox = $($('.lg-summary-content .am-avg-sm-3 .lg-bignum-num')[2]); if(!$rankbox.length) return; // 已开启完全隐私保护 if($($($sidebar.children()[1]).children()[0]).html().trim()!='成就') { // alert("用户没有成就"); $firstele = $($sidebar.children()[1]); } $show_ele = $(` <div class="lg-article" id="add-rating"> <h2>咕值</h2> <p id="add-rating-error" style="display:none;">该用户排名大于1000,不能获取其咕值详情。</p> <button class="am-btn am-btn-primary" id="add-rating-button" style="margin-top:16px;">显示</button> <div id="add-rating-showbox" style="display:none;"> <div id="add-rating-chart" style="margin: -120px 0;"></div> <p style="margin-top:32px;margin-bottom:0;">咕值为 <strong id="add-rating-total"></strong> ,更新于 <span id="add-rating-date"></span></p> </div> </div> `); $show_ele.insertAfter($firstele); ranktxt = $rankbox.html().trim(); var another_show_func = function() { }; if(ranktxt.indexOf("K")!=-1) { $('#add-rating-error').css('display','block'); $('#add-rating-button').click(another_show_func); $('#add-rating-button').addClass("am-disabled"); } else if(ranktxt.indexOf("N/A")!=-1) { $('#add-rating-error').css('display','block'); $('#add-rating-error').html('用户没有排名,不能获取其咕值详情。'); $('#add-rating-button').click(another_show_func); $('#add-rating-button').addClass("am-disabled"); } else { var tt_user_rk = ranktxt.substring(0,ranktxt.indexOf('<'))*1; // show_alert("用户排名:"+tt_user_rk); var tt_rk_page = Math.floor((tt_user_rk-1)/50) + 1; // show_alert("排名信息在第"+tt_rk_page+"页"); var url = "https://www.luogu.org/ranking?page="+tt_rk_page+"&_contentOnly=1"; var tt_username = location.href.match(/\?(.*)uid\=(\d+)$/)?location.href.match(/\?(.*)uid\=(\d+)$/)[2]:''; if(!tt_username) tt_username = location.href.match(/\?(.*)uid\=(\d+)\&/)?location.href.match(/\?(.*)uid\=(\d+)\&/)[2]:''; if(!tt_username) show_alert("脚本:洛谷显示他人咕值","uid获取失败"); // else show_alert("调试","用户uid:"+tt_username); $('#add-rating-button').click(function(){ $('#add-rating-button').addClass("am-disabled"); console.log("获取排名网址:",url); $.get(url, function (data) { // var arr = eval('(' + data + ')'); // var arr = JSON.parse(data); var arr = data; console.log("用户数据:",arr); if (arr['code'] != 200) { $('#add-rating-button').removeClass('am-disabled'); show_alert("好像哪里有点问题", arr["message"]); } else { var dat = arr['currentData']['rankList']['result']; for(var i = 0;i < 50;i++) { if(!dat[i]) continue; if(dat[i]['user']['uid'] == tt_username) { // show_alert("找到用户"); $('#add-rating-button').css("display",'none'); $(function () { $('#add-rating-chart').highcharts({ chart:{ polar:true,type:'line',backgroundColor:"rgba(0,0,0,0)" }, pane:{size:'36%'},title:{text:"",floating:true},legend:{enabled:false},credits:{enabled:false}, xAxis: { categories: ['基础信用', '练习情况', '社区贡献', '比赛情况', '获得成就'], tickmarkPlacement: 'on', lineWidth: 0 }, yAxis: { gridLineInterpolation: 'polygon', lineWidth: 0, min: 0, max: 100 }, tooltip: { shared: true, pointFormat: '<b>{point.y:,.0f}</b>/100<br/>' }, series: [{ name: '咕值', data: [ dat[i]['basicRating'], dat[i]['practiceRating'], dat[i]['socialRating'], dat[i]['contestRating'], dat[i]['prizeRating'] ], pointPlacement: 'on' }] }); }); $('#add-rating-showbox').css('display','block'); $('#add-rating-total').html(dat[i]['rating']); function getdate(t) { var now = new Date(t), y = now.getFullYear(), m = now.getMonth() + 1, d = now.getDate(); return y + "/" + (m < 10 ? "0" + m : m) + "/" + (d < 10 ? "0" + d : d); } $('#add-rating-date').html(getdate(dat[i]['calculateTime']*1000)); return; } } $('#add-rating-button').removeClass('am-disabled'); show_alert("脚本:洛谷显示他人咕值", "找不到用户的咕值信息,请刷新重试。"); } } ); }); } }); })();