Projectplaylist

By JayJay WolfWarrior Last update Aug 8, 2008 — Installed 127 times. Daily Installs: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
// ==UserScript==
// @name           Projectplaylist
// @namespace      sizzlemctwizzle
// @description    Download Songs off of Projectplaylist. Works on all songs.
// @include        *search.playlist.com*
// ==/UserScript==

function hexToChars (hex) {
          var a = new Array();
          var b = (hex.substr(0, 2) == '0x') ? 2 : 0;
          while (b < hex.length) {
            a.push(parseInt(hex.substr(b, 2), 16));
            b += 2;
          }
          return a;
}

function charsToStr (chars) {
          var a = '';
          var b = 0;
          while (b < chars.length) {
            a += String.fromCharCode(chars[b]);
            ++b;
          }
          return a;
}

function strToChars (str) {
          var a = new Array();
          var b = 0;
          while (b < str.length) {
            a.push(str.charCodeAt(b));
            ++b;
          }
          return a;
}

function initialize (pwd) {
          var a = 0;
          var b;
          var c = pwd.length;
          var d = 0;
          while (d <= 255) {
            mykey[d] = pwd[d % c];
            sbox[d] = d;
            ++d;
          }
          d = 0;
          while (d <= 255) {
            a = (a + sbox[d] + mykey[d]) % 256;
            b = sbox[d];
            sbox[d] = sbox[a];
            sbox[a] = b;
            ++d;
          }
}

function calculate (plaintxt, psw) {
          initialize(psw);
          var a = 0;
          var b = 0;
          var c = new Array();
          var d;
          var e;
          var f;
          var g = 0;
          while (g < plaintxt.length) {
            a = (a + 1) % 256;
            b = (b + sbox[a]) % 256;
            e = sbox[a];
            sbox[a] = this.sbox[b];
            sbox[b] = e;
            var h = (sbox[a] + sbox[b]) % 256;
            d = sbox[h];
            f = plaintxt[g] ^ d;
            c.push(f);
            ++g;
          }
          return c;
}

function decrypt  (src, key) {
          var plaintxt = hexToChars(src);
          var psw = strToChars(key);
          var chars = calculate(plaintxt, psw);
          return charsToStr(chars);
}

function getSongs() {
var dev = document.evaluate(
	'//a[contains(@id,"playimg")]',
	document, 
	null, 
	XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);

for (var i = 0; i < dev.snapshotLength; i ++) {
item = dev.snapshotItem(i);
id = item.getAttribute('id').split('playimg')[1];
src = unsafeWindow.trackdata[id - 1].song_url;
if (src.substring(0, 4) != 'http') {
var key = 'sdf883jsdf22';
sbox = new Array(255);
mykey = new Array(255);
src = decrypt(src, key);
}
link = document.createElement('a');
link.href = src;
txt = document.createTextNode("Download");
link.appendChild(txt);
link.setAttribute('style', 'font-size:11px;');
item.parentNode.parentNode.appendChild(link);
}
}

GM_addStyle('.marklink { display:none; } ');
getSongs();