mirror of
				https://codeberg.org/crimeflare/cloudflare-tor
				synced 2025-11-04 02:17:00 +01:00 
			
		
		
		
	PR 66
This commit is contained in:
		
						commit
						5fae9c9c73
					
				
					 3 changed files with 4 additions and 64 deletions
				
			
		
							
								
								
									
										3
									
								
								.gitmodules
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.gitmodules
									
										
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,3 @@
 | 
			
		|||
[submodule "tool/cf_email_decoder"]
 | 
			
		||||
	path = tool/cf_email_decoder
 | 
			
		||||
	url = https://codeberg.org/smege1001/cf_email_decoder.git
 | 
			
		||||
							
								
								
									
										1
									
								
								tool/cf_email_decoder
									
										
									
									
									
										Submodule
									
								
							
							
						
						
									
										1
									
								
								tool/cf_email_decoder
									
										
									
									
									
										Submodule
									
								
							| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
Subproject commit a7fabb1837b55f6b7514d0f7a1587671539033a6
 | 
			
		||||
| 
						 | 
				
			
			@ -1,64 +0,0 @@
 | 
			
		|||
// ==UserScript==
 | 
			
		||||
// @name        Decode Cloudflare-encoded email addresses
 | 
			
		||||
// @namespace   https://codeberg.org/smege1001/cf_email_decoder
 | 
			
		||||
// @match       *://*/*
 | 
			
		||||
// @grant       none
 | 
			
		||||
// @version     1.1
 | 
			
		||||
// @author      smege1001
 | 
			
		||||
// ==/UserScript==
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
* @license CC0-1.0
 | 
			
		||||
**/
 | 
			
		||||
 | 
			
		||||
const emailprotectionURLHashRegex = /\/cdn-cgi\/l\/email-protection#([aA0-fF9]*)/;
 | 
			
		||||
const emailprotectionURLNoHashRegex = /\/cdn-cgi\/l\/email-protection/; //hash is stored on data-cfemail
 | 
			
		||||
 | 
			
		||||
function decodeEmail(hash) { //cloudflare email address decoder
 | 
			
		||||
    var hashArray = []; //split the hash into bytes
 | 
			
		||||
    for (var hAIndex = 0; hAIndex < hash.length; hAIndex += 2) {
 | 
			
		||||
	hashArray.push(parseInt(hash.substring(hAIndex, hAIndex + 2), 16));
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    var decoded = "";
 | 
			
		||||
    var key = hashArray[0]; //get the decode key
 | 
			
		||||
 | 
			
		||||
    for (var index = 1; index < hashArray.length; index++) {
 | 
			
		||||
	decoded += String.fromCharCode(hashArray[index] ^ key);
 | 
			
		||||
    }
 | 
			
		||||
    return decoded;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var links = document.querySelectorAll("a"); //get all the links
 | 
			
		||||
 | 
			
		||||
for (var linksIndex = 0; linksIndex < links.length; linksIndex++) {
 | 
			
		||||
    var link = links[linksIndex];
 | 
			
		||||
    if (emailprotectionURLHashRegex.test(link.href)) {
 | 
			
		||||
	var hash = link.href.match(emailprotectionURLHashRegex)[1];
 | 
			
		||||
	var decodedEmail = decodeEmail(hash);
 | 
			
		||||
	
 | 
			
		||||
	link.href = "mailto:" + decodedEmail; //replace the stupid email protection with just a mailto link
 | 
			
		||||
 | 
			
		||||
	if (link.getElementsByClassName("__cf_email__")) {
 | 
			
		||||
	    var linkChild = link.getElementsByClassName("__cf_email__")[0];
 | 
			
		||||
	    linkChild.innerText = decodedEmail;
 | 
			
		||||
 | 
			
		||||
	    linkChild.removeAttribute("data-cfemail");
 | 
			
		||||
	    linkChild.classList.remove("__cf_email__");
 | 
			
		||||
	    
 | 
			
		||||
	    if (linkChild.getAttribute("class") == "") linkChild.removeAttribute("class");
 | 
			
		||||
	}
 | 
			
		||||
    } else if (emailprotectionURLNoHashRegex.test(link.href) && link.hasAttribute("data-cfemail")) {
 | 
			
		||||
	var hash = link.getAttribute("data-cfemail");
 | 
			
		||||
	var decodedEmail = decodeEmail(hash);
 | 
			
		||||
	
 | 
			
		||||
	link.href = "mailto:" + decodedEmail;
 | 
			
		||||
	link.innerText = decodedEmail; //the inner text is just [email protected]
 | 
			
		||||
	
 | 
			
		||||
	//remove the useless attributes
 | 
			
		||||
	link.removeAttribute("data-cfemail");
 | 
			
		||||
	link.classList.remove("__cf_email__");
 | 
			
		||||
 | 
			
		||||
	if (link.getAttribute("class") == "") link.removeAttribute("class");
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	Add table
		
		Reference in a new issue