mirror of
				https://codeberg.org/crimeflare/cloudflare-tor
				synced 2025-11-04 02:17:00 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			92 lines
		
	
	
		
			No EOL
		
	
	
		
			2.5 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			92 lines
		
	
	
		
			No EOL
		
	
	
		
			2.5 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<html>
 | 
						|
   <head>
 | 
						|
      <title>Search</title>
 | 
						|
      <style>
 | 
						|
body {
 | 
						|
	background: #f0f0f0
 | 
						|
}
 | 
						|
input#what {
 | 
						|
	width: 80%
 | 
						|
}
 | 
						|
span.srch_sect {
 | 
						|
	color: #2f4f4f
 | 
						|
}
 | 
						|
a.srch_link {
 | 
						|
	color: #4b0082
 | 
						|
}
 | 
						|
span.srch_url {
 | 
						|
	color: #20b2aa
 | 
						|
}
 | 
						|
a[onclick] {
 | 
						|
	cursor: pointer
 | 
						|
}
 | 
						|
      </style>
 | 
						|
      <script>
 | 
						|
 | 
						|
// read API document
 | 
						|
let apiurl = 'https://api.nnpaefp7pkadbxxkhz2agtbv2a4g5sgo2fbmv3i7czaua354334uqqad.onion/_/ansero.php';
 | 
						|
let favurl = 'https://api.nnpaefp7pkadbxxkhz2agtbv2a4g5sgo2fbmv3i7czaua354334uqqad.onion/_/favicon.php?f=';
 | 
						|
let mylang = 'en-US';
 | 
						|
let hide_domain = []; // e.g. 'google.com'
 | 
						|
let hide_fqdn = []; // e.g. 'en.wikipedia.org'
 | 
						|
let removeMITMsites = false;
 | 
						|
 | 
						|
function searchfor(key) {
 | 
						|
	document.getElementById('what').value = key;
 | 
						|
	search();
 | 
						|
}
 | 
						|
 | 
						|
function search() {
 | 
						|
	let answer = '',
 | 
						|
		keyword = document.getElementById('what').value;
 | 
						|
	if (keyword.length < 2) {
 | 
						|
		return false;
 | 
						|
	}
 | 
						|
	fetch(apiurl, {
 | 
						|
		method: 'POST',
 | 
						|
		mode: 'cors',
 | 
						|
		headers: {
 | 
						|
			'Content-Type': 'application/x-www-form-urlencoded'
 | 
						|
		},
 | 
						|
		body: 't=json' + (removeMITMsites ? '&m' : '') + '&l=' + mylang + '&q=' + encodeURI(keyword)
 | 
						|
	}).then(r => r.json()).then(r => {
 | 
						|
		if (r.info.desc != undefined) {
 | 
						|
			answer += '<span class="srch_sect">';
 | 
						|
			answer += '' + r.info.desc + '<br>';
 | 
						|
			answer += '<a href="' + r.info.url + '" class="srch_link">' + r.info.title + '</a>';
 | 
						|
			answer += '</span><br><br>';
 | 
						|
		}
 | 
						|
		if (r.sgst.length > 0) {
 | 
						|
			answer += '<span class="srch_sect">Search other: <br>';
 | 
						|
			r.sgst.forEach(x => {
 | 
						|
				answer += '[<a class="srch_link" onclick="searchfor(\'' + x + '\');return false;">' + x + '</a>]<br>';
 | 
						|
			});
 | 
						|
			answer += '</span><br><br>';
 | 
						|
		}
 | 
						|
		r.res.forEach(x => {
 | 
						|
			if (!hide_fqdn.includes(x.fqdn) && !hide_domain.includes(x.dom)) {
 | 
						|
				answer += '<span class="srch_sect">';
 | 
						|
				answer += '<img src="' + favurl + (x.url.startsWith('https:') ? '1-' : '0-') + x.fqdn + '"> ';
 | 
						|
				answer += '<a href="' + x.url + '" class="srch_link">' + (x.mitm == 1 ? '[MITM!!] ' : '') + x.title + '</a><br>';
 | 
						|
				answer += '' + x.desc + '<br>';
 | 
						|
				answer += '<span class="srch_url">' + x.url + '</span></span>';
 | 
						|
				answer += '<br><br>';
 | 
						|
			}
 | 
						|
		});
 | 
						|
		document.getElementById('resultarea').innerHTML = answer;
 | 
						|
	}).catch(e => console.log(e));
 | 
						|
	return false;
 | 
						|
}
 | 
						|
 | 
						|
      </script>
 | 
						|
   </head>
 | 
						|
   <body>
 | 
						|
      <form action="#" onsubmit="return search()">
 | 
						|
         <input type="text" id="what" placeholder="Search for..." minlength="2" required>
 | 
						|
         <input type="submit" value="Search">
 | 
						|
      </form>
 | 
						|
      <br>
 | 
						|
      <br>
 | 
						|
      <span id="resultarea"></span>
 | 
						|
   </body>
 | 
						|
</html> |