您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Бесплатная загрузка звуков с download.audiohero.com
// ==UserScript== // @name Бесплатный download.audiohero.com // @name:en Free download.audiohero.com // @description Бесплатная загрузка звуков с download.audiohero.com // @description:en Free download of sounds from download.audiohero.com // @namespace tuxuuman:audiohero:free // @version 0.1 // @author tuxuuman<[email protected]> // @match https://download.audiohero.com* // @grant GM_openInTab // @grant unsafeWindow // ==/UserScript== (function() { function download(track, url) { GM_openInTab(url, { active: true}); } unsafeWindow.sa.components.OptionsMenu = function(b) { if (b.tooltip == "Download") { let freeBtn = '<div class="download_format option"><div class="download_button fa fa-download fa-2x download_button_icon_container"><div class="image"></div></div><span class="download_format_description">Download free</span></div>'; b.items.push({custom: $j(freeBtn), format: "mp3", type: "single", disabled: false, onClick: function() { var track = trackBank.find(b.itemId); if (track) { if (track.file.playHtml5.indexOf('Expires=') > 0) { download(track, track.file.playHtml5); } else { ajax("p=download_auth&source=track_list_explorer&trackId="+track.id, function(c){ download(track, track.file.playHtml5 + "?" + c[0].params); }); } } else { alert("track not found"); } }}) } function f() { d = !0; l.removeClass("showing"); m.addClass("menu_showing"); $j("body").append(l); e(); setTimeout(function() { d && (l.addClass("showing"), setTimeout(function() { e() }, 200)) }, 100); if (null != b.onShow) b.onShow(g); if (b.hideOnOutsideClick) $j(window).off("." + h).on("click." + h, function(b) { $j(b.target).parents("." + h).length || (c(), $j(window).off("." + h)) }) } function e() { var b = m.offset(); l.css({ top: Math.min(b.top, $j(window).height() + getScrollY() - l.height()), left: Math.max(0, b.left + m.outerWidth() - l.outerWidth()) }) } function c() { d = !1; l.removeClass("showing"); setTimeout(function() { d || (l.detach(), m.removeClass("menu_showing")) }, 250) } var g = this , d = !1 , h = "options_menu_" + (new Date).getTime(); b = $j.extend({ items: [], hideOnMouseLeave: !1, hideOnOutsideClick: !1, anchorText: null, buttonAnchor: !1, customAnchor: null, itemId: null, iconClass: "fa-bars", tooltip: "", onShow: null }, b); b.items.length || console.warn("Attempt to create an options menu with no items", b); var k = sa.templates.get("options_menu"); var l = k.get("options_menu", { itemId: b.itemId, iconClass: b.iconClass, tooltip: b.tooltip }); l.addClass(h); var m = b.buttonAnchor ? k.get("anchor_as_button", { itemId: b.itemId, text: b.buttonAnchor, iconClass: b.iconClass, tooltip: b.tooltip }) : b.anchorText ? k.get("anchor_with_text", { itemId: b.itemId, text: b.anchorText, iconClass: b.iconClass, tooltip: b.tooltip }) : b.customAnchor ? b.customAnchor : k.get("anchor", { itemId: b.itemId, iconClass: b.iconClass, tooltip: b.tooltip }); g.addItem = function(b) { if (b.heading) { var g = k.get("heading"); g.html(b.name) } else { if (b.custom) { if (!b.custom.length) return; g = b.custom; g.addClass("option") } else g = k.get("option"), g.html(b.name); g.click(function(d) { if (b.onClick) b.onClick(b, g[0], d); b.href && (b.href.match(/^[-_a-zA-Z0-9]+\.php/) ? document.location.href = b.href : setHash(b.href)); c() }) } l.append(g); d && e() } ; for (var n = 0, p = b.items.length; n < p; n++) g.addItem(b.items[n]); m.add(l.find(".options_menu_close")).click(function(b) { d ? c() : f(); b.preventDefault(); b.stopPropagation() }); b.items.length && b.items[0].heading && l.find(".heading:first").click(function() { c() }); b.hideOnMouseLeave && l.mouseleave(function() { c() }); g.getAnchor = function() { m.getContainer = function() { return l } ; return m } } })();