There are 1 previous version of this script.
// ==UserScript==
// @name AHH MP3 Download
// @namespace http://www.vatoland.com/
// @include http://*allhiphop.com/multimedia/multimedialist.aspx?*app=multimedia__music*
// @description Inserts download links for music items that have MP3s available
// ==/UserScript==
if (!GM_xmlhttpRequest) {
alert('Please upgrade to the latest version of Greasemonkey.');
return;
}
var downloadID = 'download'; // The starting name of the id for a created download link
// retrieve all links in document
var allLinks = document.evaluate(
'//a[@href]',
document,
null,
XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
null);
for (var i=0; i < allLinks.snapshotLength; i++) {
var thisLink = allLinks.snapshotItem(i);
// determine if link is a music item
if (thisLink && thisLink.href && (thisLink.href.indexOf('/stories/multimedia__music/archive/') >= 0) && (thisLink.id.indexOf('ItemTitle') > 0))
{
// determine post id from url
var postID = thisLink.href.substring(thisLink.href.length-13, thisLink.href.length-5);
// create break and download link after ItemTitle link
var downloadLink = document.createElement('a');
downloadLink.setAttribute('id', downloadID + postID);
downloadLink.setAttribute('href', '#');
downloadLink.innerHTML = 'Download MP3';
thisLink.parentNode.appendChild(document.createElement('br'));
thisLink.parentNode.appendChild(downloadLink);
GetAndSetDownloadLinkForPostID(postID);
}
}
function GetAndSetDownloadLinkForPostID(postID)
{
var xmlURL = 'http://allhiphop.com/extras/media.aspx?postid=' + postID;
GM_xmlhttpRequest({
method:"GET",
url: xmlURL,
headers: {
'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey/0.3',
'Accept': 'application/xml,text/xml'
},
onload:function(result) {
var elementID = downloadID + postID;
var parser = new DOMParser();
var dom = parser.parseFromString(result.responseText, "application/xml");
var items = dom.getElementsByTagName('item');
var mediaURL = items[0].getElementsByTagName('mediauri')[0].textContent;
var link = document.getElementById(elementID);
if (link)
{
link.href=mediaURL;
}
else
{
GM_log('Could not locate element \'' + elementID + '\' and could not update url to ' + mediaURL + '.');
}
}
});
}
