// ==UserScript== // @name osu! my download // @description ous beatmap download from mirror.osu beatmap镜像站下载。支持的镜像站点:bloodcat.com、inso.link、osu.sayobot.cn。 // @author dazzulay // @copyright 2019, dazzulay // @version 2.2.15 // @icon http://osu.ppy.sh/favicon.ico // @include http*://osu.ppy.sh/* // @include http*://old.ppy.sh/* // @grant none // @namespace https://greasyfork.org/scripts/3916 // @homepageURL https://greasyfork.org/scripts/3916 // @downloadURL none // ==/UserScript== (function () { var domain = document.domain; var drive = domain.replace(/\./g, '_'); function myJQueryCode() { function osu_my_downoad() { var self = this; this.mirros = { bloodcat: { url: 'https://bloodcat.com/osu/m/{bmid}', class: 'my_orange', text: 'DOWNLOAD BLOODCAT', target: '_blank' }, /* 2017-07-16 挂了 mengsky: { url: 'http://osu.mengsky.net/?bmid={bmid}', url2: 'http://osu.mengsky.net/api/download/{bmid}', // 无法直接跳转,限制了 class: 'my_green', text: 'DOWNLOAD MENGSKY', target: '_blank' }, */ insolink: { url: 'https://inso.link/?source=osu_my_download&m={bmid}', class: 'my_pink', text: 'DOWNLOAD INSO.LINK', target: '_blank' }, /* 2018-10-09 挂了 osu_uu_gl: { url: 'http://osu.uu.gl/s/{bmid}', class: 'my_purpule', text: 'DOWNLOAD OSU.UU.GL', target: '_blank' }, */ sayobot: { //url: 'https://osu.sayobot.cn/osu.php?s={bmid}', url: 'https://osu.sayobot.cn/?search={bmid}', class: 'my_green', text: 'DOWNLOAD SAYOBOT', target: '_blank' } }; /* 渲染mirro模板,返回渲染的字符串。暂时只渲染url的bmid */ this.mirros_parse = function (bmid) { var return_mirros = $.extend(true,{},self.mirros); var _param = 'url'; $.each(return_mirros, function (k, v) { return_mirros[k][_param] = str_render(v[_param], {bmid: bmid}); }); return return_mirros; }; this.drives = { osu_ppy_sh: function () { var is_new = $('.osu-layout').length; if (is_new) { // css样式 设置 $('head').append(` `); var beatmapset_page = '.js-react--beatmapset-page'; var ready = function (event) { var _timer = setInterval(function () { var $bp = $(beatmapset_page); if ($bp.length == 0) { clearInterval(_timer); return; } if ($('.beatmapset-header__box--main').length > 0) { loaded(); clearInterval(_timer); } }, 200); function loaded() { if ($('.my_container').length > 0) { return; } // 获取beatmapid var bmsrc = $('.js-audio--play').attr('data-audio-url'); if (!bmsrc) { return false; } var bmid = bmsrc.substring(bmsrc.lastIndexOf("/") + 1, bmsrc.lastIndexOf(".")); // 设置url var parsed_mirros = self.mirros_parse(bmid); // 添加按钮 var $container = $('
'); var btn_tpl = '