Hack 91. Warn Before Buying an Album

 < Day Day Up > 

Find out whether an album is produced by a record label that supports the RIAA.

There are people in the world who dislike the Recording Industry Association of America (RIAA) because of their simultaneous disregard for both artists' rights (cheating artists with lopsided contracts) and customers' rights (suing fans and treating them like thieves). I am not one of those people, but I still like this hack, because it demonstrates Greasemonkey's role in enabling what I call passive activism.

My theory is that there is a small group of activists who will go out of their way to boycott the RIAA. But there is a much larger group of people who would like to boycott, but they don't actually get around to doing the necessary research when they're about to buy something. This hack helps that larger group, by adding an icon next to an album title on Amazon.com that shows whether this album is produced by a record label that supports the RIAA. It doesn't prevent you from buying the album; it just reminds you that you once cared enough to install a script that would remind you to think about this issue before buying.

11.3.1. The Code

This user script runs on all Amazon.com pages. It parses the URL to get the ASIN a globally unique identifier that identifies the album you're browsing and then uses the GM_xmlhttpRequest function to check the Magnetbox (http://www.magnetbox.com) database to determine whether this album is produced by a company that supports the RIAA.

This script sends information about your Amazon.com browsing habits to Magnetbox. You should run this script only if you are comfortable exposing this information.


Save the following user script as riaa-radar.user.js:

 // ==UserScript== // @name RIAA Radar // @namespace http://www.magnetbox.com/riaa/ // @description Warn before buying albums produced by RIAA-supported labels // @include http://*.amazon.tld/* // ==/UserScript== // based on code by Ben Tesch // included here with his gracious permission var radar = 'http://www.magnetbox.com/riaa/check.asp?asin='; var asin = ""; var index = location.href.indexOf('/-/'); if (index != -1) { asin = location.href.substring(index + 3, index + 13); } else {  index = location.href.indexOf('ASIN');  if (index != -1) { asin = location.href.substring(index + 5, index + 15); }  }  if (!asin) { return; } GM_xmlhttpRequest({method:'GET', url: radar + asin, onload:function(results) { var status = "unknown"; if (results.responseText.match('button_warn.gif')) { status = "Warning!"; } else { if (results.responseText.match('No album was found.')) { status = "Unknown"; } else { status = "Safe!"; } } var origTitle = document.evaluate("//b[@class='sans']", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; if (!origTitle) { return; } var div = origTitle.parentNode; var titlechld = origTitle.firstChild; var title = titlechld.nodeValue; var newTitle = document.createElement('b'); newTitle.setAttribute('class', 'sans'); var titleText = document.createTextNode(title); newTitle.appendChild(titleText); var sp = document.createTextNode(' '); var link = document.createElement('a'); link.setAttribute('title', "RIAA Radar"); link.setAttribute('href', radar + asin); var pic = document.createElement('img'); pic.setAttribute('title', "RIAA Radar: " + status); if (status == 'Warning!') { pic.src = "http://www.magnetbox.com/riaa/images/button_warn2.gif"; } else if (status == 'Safe!') { pic.src = "http://www.magnetbox.com/riaa/images/button_safe2.gif"; } else { pic.src = "http://www.magnetbox.com/riaa/images/button_caution2. gif"; } pic.style.border = "0px"; link.appendChild(pic); div.insertBefore(newTitle, origTitle); div.insertBefore(sp, origTitle); div.insertBefore(link, origTitle); div.removeChild(origTitle); }}); 

11.3.2. Running the Hack

After installing the user script (Tools Install This User Script), go to http://www.amazon.com and search for dave matthews stand up. Click through to the album page. At the top of the page, next to the album title, you will see a warning icon, as shown in Figure 11-2.

Figure 11-2. "Warning" icon next to album title


The warning icon indicates that this album was produced by a record label that supports the RIAA. The script does not prevent you from buying the album, it simply informs you of its status.

Now, search Amazon.com for another album for example, astral projection another world. Click through to the album page and you will see a "safe" icon next to the album title, as shown in Figure 11-3.

This album is produced by an independent record label out of Israel that is not a member of the RIAA.

Figure 11-3. "Safe" icon next to album title


     < Day Day Up > 


    Greasemonkey Hacks
    Greasemonkey Hacks: Tips & Tools for Remixing the Web with Firefox
    ISBN: 0596101651
    EAN: 2147483647
    Year: 2005
    Pages: 168
    Authors: Mark Pilgrim

    flylib.com © 2008-2017.
    If you may any questions please contact us: flylib@qtcs.net