您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds beatmap difficulty data/images/sound previews to user top ranks
- // ==UserScript==
- // @name osu top ranks data adder
- // @namespace
- // @version 0.1
- // @description Adds beatmap difficulty data/images/sound previews to user top ranks
- // @author Piotrekol
- // @match *://osu.ppy.sh/u/*
- // @require http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js
- // @grant GM_xmlhttpRequest
- // ==/UserScript==
- /* jshint -W097 */
- 'use strict';
- //==============================
- //==============================
- //==============================
- var YOUR_OSU_API_KEY = "FILL WITH YOUR KEY THERE";
- //==============================
- //==============================
- //==============================
- //Do not edit below unless you know what you are doing
- var imageField = "<td width=\"61\">\
- <a href=\"#\" onclick=\"playBeatmapPreview({0}); return false;\">\
- <img height=\"45\" src=\"https://b.ppy.sh/thumb/{0}.jpg\">\
- </a>\
- </td>";
- var dataField = "</br>\
- <b>AR</b> {0}"+
- " <b>CS</b> {1}"+
- " <b>OD</b> {2}"+
- " <b>HP</b> {3}"+
- " ({4}<div class=\"starfield\" style=\"width:14px; display:inline-block;\"><div class=\"active\" style=\"width:14px\"></div></div>)";
- var useTest=false;
- if(useTest){
- var highlightScore = function(LookFor,node){
- if(node.text().indexOf(LookFor) > -1)
- node.css({
- "background-color": "#B0C4DE"
- });
- }
- }
- function createObserver(target,cfg,nodeCallback){
- var observer = new MutationObserver(function( mutations ) {
- mutations.forEach(function( mutation ) {
- var newNodes = mutation.addedNodes;
- if( newNodes !== null ) {
- var $nodes = $( newNodes );
- $nodes.each(function() {
- nodeCallback($(this));
- });
- }
- });
- });
- try{
- observer.observe(target, cfg);
- }catch(e){}
- }
- function run(){
- var target_top = $( "#leader" )[0];
- var target_fav = $("#beatmaps")[0];
- createObserver(target_top,{
- childList: true,
- subtree: true
- },function(node){
- var node = node.find(".h b a[href]")[0];
- if (typeof node != 'undefined')
- {
- var mapID = node.attributes.href.value.split("/")[2].split("?")[0];
- GetPage("https://osu.ppy.sh/api/get_beatmaps?k="+YOUR_OSU_API_KEY+"&b="+mapID,0,function(data){
- data = JSON.parse(data);
- $(node.parentNode.parentNode.parentNode.parentNode).prepend(imageField.format(data[0].beatmapset_id));
- $(node.parentNode.parentNode).append(dataField.format(data[0].diff_approach,data[0].diff_size,
- data[0].diff_overall,data[0].diff_drain,(Math.round(data[0].difficultyrating*100)/100)));
- if(useTest){
- highlightScore("HR",$(node.parentNode.parentNode.parentNode.parentNode));
- }
- });
- }
- });
- }
- function GetPage(url,retryNumber,callback) {
- GM_xmlhttpRequest({
- method: "GET",
- url: url,
- synchronous: false,
- timeout: 10000,
- headers: {
- Referer: location.href
- },
- onload: function(resp) {
- callback(resp.responseText);
- },
- ontimeout: function() {
- if(retryNumber<1){
- retryNumber++;
- setTimeout(function(){
- GetPage(url,retryNumber,callback);
- },1500);
- }else{
- callback(null);
- }
- }
- });
- }
- if (!String.prototype.format) {
- String.prototype.format = function() {
- var args = arguments;
- return this.replace(/{(\d+)}/g, function(match, number) {
- return typeof args[number] != 'undefined'
- ? args[number]
- : match
- ;
- });
- };
- }
- run();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址