deviousScraps

By Chris Bouchard Last update Apr 19, 2006 — Installed 928 times.
// ==UserScript==
// @name            deviousScraps
// @namespace       http://www.jbouchard.net/chris
// @description     Add a preview of a deviants scraps gallery to the front page...
// @include         http://*.deviantart.com/
// ==/UserScript==

(function() {
	var h2s = document.getElementsByTagName('h2');
	var galleryH2;
	
	var scrapsDIV = document.createElement('div');
	var scrapsA = document.createElement('a');
	var scrapsH2 = document.createElement('h2');
	var scrapsIMG = document.createElement('img');
	var scrapsUL = document.createElement('ul');
	var buttonDIV = document.createElement('div');
	var buttonA = document.createElement('a');
	
	for (i = 0; i < h2s.length; i++)
	{
		if (h2s[i].innerHTML.indexOf('Recent Deviations') != -1)
		{
			galleryH2 = h2s[i];
			break;
		}
	}
	
	scrapsDIV.className = 'section';
	scrapsH2.className = 'section-head';
	scrapsIMG.className = 'icon';
	scrapsUL.className = 'trailing section-block beacon deviations';
	buttonDIV.className = 'trailing section-foot';
	buttonA.className = 'beacon';
	
	scrapsA.id = 'scraps';
	
	scrapsIMG.width = '18';
	scrapsIMG.height = '18';
	scrapsIMG.src = 'http://i.deviantart.com/icons/userpage/scraps.png';
	
	scrapsH2.appendChild(scrapsIMG);
	scrapsH2.innerHTML += ' Recent Scraps';
	
	scrapsUL.innerHTML = '<li><div style="text-align:center;"><img class="category" src="http://s.deviantart.com/icons/misc/loading.gif" /> Loading scraps preview...</div></li>';
	
	buttonA.href = '/scraps/';
	buttonA.innerHTML = 'Scraps Gallery'
	
	buttonDIV.appendChild(buttonA);
	
	scrapsDIV.appendChild(scrapsH2);
	scrapsDIV.appendChild(scrapsUL);
	scrapsDIV.appendChild(buttonDIV);
	
	galleryH2.parentNode.parentNode.insertBefore(scrapsDIV, galleryH2.parentNode.nextSibling);
	
	GM_xmlhttpRequest({
		method: 'GET',
		url: window.location.href + 'scraps/?view=1&order=5&limit=24',
		headers: {
			'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey',
			'Accept': 'application/atom+xml,application/xml,text/xml',
		},
		onload: function(responseDetails)
		{
			var s = responseDetails.responseText.indexOf('<!--/bar-user-->') + 16;
			var e = responseDetails.responseText.indexOf('<!--/user-->');
			var contents = responseDetails.responseText.substring(s, e);
			var temp = document.createElement('div');
			
			temp.innerHTML = contents;
			tempDivs = temp.getElementsByTagName('div');
			
			for (i = 0; i < tempDivs.length; i++)
			{
				if (tempDivs[i].className == 'dev-thumbnails trailing section-block')
				{
					var pTags = tempDivs[i].getElementsByTagName('p');
					
					var newHTML = document.createElement('div');
					
					for (j = 0; j < pTags.length; j++)
					{
							newHTML.innerHTML += '<p class="dev dev' + (j + 1) + '">' + pTags[j].innerHTML + '</p>';
					}
					
					newHTML.innerHTML = '<div id="devFP" class="dev-thumbnails trailing section-block"><div class="dev-100 dev-4">' + newHTML.innerHTML + '</div></div>';
					
					break;
				}
			}
			scrapsUL.parentNode.replaceChild(newHTML, scrapsUL);
		}
	});
})();