Mikseri on musiikkiyhteisö,
jossa voit kuunnella, ladata ja arvostella suomalaista musiikkia,
lisätä rajattomasti biisejä, luoda oman artistisivun, kerätä arvosteluja ja faneja

Ladataan

Vastaa Aloita uusi keskustelu

 
Kirjoittaja HTML5-soitin


Rain Song
595 viestiä

#1 kirjoitettu 26.06.2014 22:52 Muok:27.06.2014 15:53

Asenna selaimeesi Greasemonkey (Firefox) tai Tampermonkey (Chrome), ellei sinulla ole sitä jo. Ja apinaan lisäät sitten alta löytyvän pätkän (suosittelen "lainaa"-napin käyttöä, muuten URLi katkeaa ja homma ei toimi) and voila, artistisivut ovat vapaat Adoben orjuudesta. Ainakin jos selaimesi osaa soittaa mp3-audiota.


// ==UserScript==
// @name Mikseri HTML5 player
// @namespace foo
// @description Mikseri.net flash audio player supplement
// @include http://www.mikseri.net...*
// @version 1.1
// @grant none
// ==/UserScript==

// Tämä aivan varmasti kosahtaa biiseihin, joiden lataaminen mp3:na ei ole sallittu.
// Ja jos Mikseri päättää vähänkin muuttaa HTML-koodia, niin siihenkin hajoaa.

// Artistisivun soittimet löytynevät diveistä, joiden luokka on track-player-mini
var players = document.evaluate("//div[@class='track-player-mini']",
document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);

for (var i = players.snapshotLength - 1; i >= 0; i--) {
var p = players.snapshotItem(i);
var songid = p.id.replace(/^player-/,"");

// Työnnetään koodia vanhan player-koodin ympärille
// = flash-embedi jää varalle jos sellaisen on skripti diviin tunkenut.
p.innerHTML = "<audio controls preload='none' style='margin:auto;'>" +
"<source src='/music/play.php?id="+songid+"&type=dl' type='audio/mp3'>" +
p.innerHTML + "</audio>";
}

// Biisisivun soitin: <div id="music-player">
var p = document.evaluate("//div[@id='music-player']",
document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;

// Biisin kansikuva: <link rel="image_src" href="http://static.mikseri.net/m/c43/120003547690.jpg" />
var kansikuva = document.evaluate("//link[@rel='image_src']",
document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;

// ID on missä? Vaikka tuossa: <div class="small sharelinks" id="sharelinks_558097">
var songid_div = document.evaluate("//div[@class='small sharelinks']",
document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
var songid = songid_div.id.replace(/^sharelinks_/,"");

if(p && kansikuva && songid) {
// Sama idea kuin artistisivulla, paitsi että tämä näyttää vaativan enemmän stailausta
p.innerHTML = "<div style='height: 70px; position: relative;'>" +
"<img src='" + kansikuva.href + "' alt='' />" +
"<audio controls preload='none' style='position: absolute; " +
"top: 0; bottom: 0; left: 0; right: 0; margin:auto;'>" +
"<source src='/music/play.php?id="+songid+"&type=dl' type='audio/mp3'>" +
p.innerHTML + "</audio></div>";
}

// Rain Song lisäsi tuen myös biisisivun soittimen korvaukselle 15:50 27.06.2014

^ Vastaa Lainaa


Funereal
2858 viestiä

#2 kirjoitettu 27.06.2014 10:29

Rain Song kirjoitti:
// do stuff with player


Mukava lukea näin hyvin kommentoitua koodia

^ Vastaa Lainaa


Rain Song
595 viestiä

#3 kirjoitettu 27.06.2014 10:47

Rain Song kirjoitti:
// do stuff with player

Funereal kirjoitti:
Mukava lukea näin hyvin kommentoitua koodia


FTFY. Näin 0.6 työpäivää ennen lomaa on sen verran positiivinen fiilis että pistin jopa parempia kommentteja enkä vain poistanut tuota. Vaikka tässä ilmaiseksi tehdään ja vali vali vali.

^ Vastaa Lainaa

Vastaa Aloita uusi keskustelu