NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name Saga Musix Audio Player // @namespace http://catchip.org/ // @author hybridsong // @icon https://secure.gravatar.com/avatar/187e65a2ca69335f7483a4f19812050a // @version 0.1.2 // @updateURL https://openuserjs.org/meta/hybridsong/Saga_Musix_Audio_Player.meta.js // @match http://sagamusix.de/en/music/ // @require http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.2.3.min.js /* jshint esnext: true */ // ==/UserScript== /* * Saga Musix Audio Player * by hybridsong * * HomePage: * http://catchip.org/ * * License: * MIT License */ (function($) { 'use strict'; let tracks = $("#content > .track"); let current = $(tracks[0]); let next = () => { current = current.next()[0]; if (current) current = $(current); else return false; return true; }; let play = () => { let container = $("<div/>", { class: "player_container" }); let tune = current.children("a[id^='preview']").attr("href"); tune = decodeURI(tune.match(/javascript:previewtune\('(.+)',\d+\)/)[1]); let src = basepath + 'music_files/ogg/saga_musix_-_' + tune + '.ogg'; let player = $("<audio/>", { preload: "auto", controls: true, autoplay: true, src: src }); player[0].addEventListener("ended", () => { stop(); if (next()) { play(); window.scrollTo(0, current.offset().top-150); } }); player.css("width", "100%"); player.css("margin", "5px 0"); container.append(player); current.prepend(container); }; let stop = () => { current.children(".player_container").remove(); }; let hover_tracks = () => { tracks.one("mouseenter", function() { let self = $(this); let go_ths = $("<a/>", {href: "javascript:"}); go_ths.append("listen online"); go_ths.click(() => { stop(); current = self; play(); }); let listen_online = self.children("a[id^='preview']"); listen_online.html(null); listen_online.after(go_ths); }); }; $(document).ready(hover_tracks); })(jQuery);