images hack

By hosts Last update May 14, 2008 — Installed 927 times.
// ==UserScript==
// @name           images hack
// @namespace      
// @description    showing the images from imageshack.us and imagehack.gr directly on the page 
// @include        *
// ==/UserScript==


linkifyimageshack();

	

const urlRegex = /\b(https?|ftp|file)\:\/\/imageshack[^"\s\<\>\[]*[^.,;'">\:\s\<\>\)\]\[\!](?:.jpg|.png|.jpeg|.gif)|.*?(?:\.jpg|\.png|\.jpeg|\.gif)/ig;
var xpath = "//a[contains(@href,'imageshack')]|//a[contains(@href,'imagevenue')]";


var candidates = document.evaluate(xpath, document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
   
    for (var cand = null, i = 0; (cand = candidates.snapshotItem(i)); i++) {

//GM_log(cand);
        	
        	var directimagehackus = cand.href.match(/http\:\/\/img\d*\.imageshack\.us\/img\d*\/\d*\/\w*\.(?:jpg|png|gif|jpeg)/);
        	var notdirectimagevenue = cand.href.match(/http\:\/\/img\d*\.imagevenue\.com\/img.php\?image=\w*\.(?:jpg|png|gif|jpeg)/);
        	if (directimagehackus){

        		showdirectimage(cand.href);
        	  }else if (notdirectimagevenue){
        	  gogetnotdirectimagevenue(cand.href);
        		}else{
        	  gogetit(cand.href);
            }


    }

function showdirectimage(daurl){
	createtheimage(daurl,daurl);
}

function gogetnotdirectimagevenue(daurl){

	GM_xmlhttpRequest({
    method: "GET",
     url: daurl,
    onload: function(responseDetails) {
    	gogetnotdirectimagevenueREGEXPR = /SRC="(.*?)"/; 
    	partofurlneededREGEXPR = /http\:\/\/img\d*\.imagevenue\.com\//;
    	var realimagegogetnotdirectimagevenue = gogetnotdirectimagevenueREGEXPR.exec(responseDetails.responseText);	
    	var partofurlneeded = partofurlneededREGEXPR.exec(daurl);	


if (partofurlneeded){
 realimagevenueimg = partofurlneeded+realimagegogetnotdirectimagevenue[1];
 createtheimage(realimagevenueimg,daurl);
 
   	
     	}    	
    	
    	
    	
    	}});
	
	
	
	}

function gogetit(daurl){
  GM_xmlhttpRequest({
    method: "GET",
     url: daurl,
     onload: function(responseDetails) { 
       
        imagehackrgregexpr = /<img src=\".(\/files\/\w*.jpg)" alt="/;
        imagehackrusegexpr = /src=\'(http:\/\/img\d*\.imageshack\.us\/img\d*\/\d*\/.*?\.(?:jpg|png|gif|jpeg))\' title=\'/;
        //imagehackrusDIRECTegexpr = /src=\'(http:\/\/img\d*\.imageshack\.us\/img\d*\/\d*\/.*?\.jpg)\' title=\'/;
        var realimagegr = imagehackrgregexpr.exec(responseDetails.responseText);	
        var realimageus = imagehackrusegexpr.exec(responseDetails.responseText);	

if (realimageus){
 realimagehackrus = realimageus[1];
  createtheimage(realimagehackrus,daurl);
	
     	}


        
        if (realimagegr){

 realimagehackrgr = 'http://imageshack.gr'+realimagegr[1];
 createtheimage(realimagehackrgr,daurl);

     	}
     	
    }
  });
}

 function createtheimage(realImage,daurl){
 var div = document.createElement("div");
 var img = document.createElement("img");
     img.setAttribute("src",realImage);
     if(img.width >= screen.width*0.65){
	      img.width = screen.width*0.65;
	     }
	     div.appendChild(img);
	     
 var xpathy = "//a[contains(@href,'"+daurl+"')]" ;
   var daNodes =  document.evaluate(xpathy, document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
     for (var i = 0; i < daNodes.snapshotLength; i++) {
      node = daNodes.snapshotItem(i);
      node.appendChild(div); 
         }   	
     	}

function linkifyimageshack(){ // code from http://userscripts.org/scripts/review/2254  Linkify ting
try{
var regex = /http:\/\/(img\d*\.imageshack\.us|(www\.|)imageshack\.gr)[\w\-.+$!*\/(),~%?:@#&=\\]*/gi;



var altText, tekst, muligtLink;
var ikkeTilladteTags = ['a', 'head', 'script', 'style', 'title', 'option'];//tags, hvor det der stAΞ’Β¥r inden i ikke skal vAΞ’Β¦re links

var path = "//text()[not(parent::" + ikkeTilladteTags.join(" or parent::") +")]";

altText = document.evaluate(path, document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);

for(var i=0;i<altText.snapshotLength;i++){
	
	tekst = altText.snapshotItem(i);
	muligtLink = tekst.nodeValue;
	
	if(regex.test(muligtLink)){
		
		//til at holde det nye link, og teksten omkring det
		var span = document.createElement('span');
		//tekst.parentNode.replaceChild(span, tekst);
		//alert("parent:" + span.parentNode);
				
		var lastLastIndex = 0;
		regex.lastIndex = 0;
		for(myArray = null; myArray = regex.exec(muligtLink); ){
			//vores match gemmes
			var link = myArray[0];
			
			//alert("har fundet dette link: " + link);
			
			span.appendChild(document.createTextNode(muligtLink.substring(lastLastIndex, myArray.index))); //inds?t det der kommer for dette hit
						
			var href = link;
			
			//s?tter http:// foran href, hvis der ikke er det
			var prefix = '';
			if(href.length > 7){
				prefix = href.substring(0,7);
			}
			if(prefix.toLowerCase() != 'http://'){
				href = 'http://' + href;
			}
			
			//skab vores link:
			var a = document.createElement('a');
			a.setAttribute('href', href); //giv det en href
			a.appendChild(document.createTextNode(link)); //linkteksten
			span.appendChild(a); //s?tter ind i span
								
			lastLastIndex = regex.lastIndex;
			
		}
		
		span.appendChild(document.createTextNode(muligtLink.substring(lastLastIndex))); //ins?t det der kommer efter sidste hit
		tekst.parentNode.replaceChild(span, tekst);

	}
	
		
}
} catch(e){alert(e);}

	}