| 
									
										
										
										
											2019-05-18 10:50:29 +00:00
										 |  |  | let apiurl = 'https://searxes.eu.org/collab/open/ismitm.php'; | 
					
						
							| 
									
										
										
										
											2019-05-05 11:13:28 +00:00
										 |  |  | let TORapiurl = 'http://searxes.nmqnkngye4ct7bgss4bmv5ca3wpa55yugvxen5kz2bbq67lwy6ps54yd.onion/collab/open/ismitm.php'; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-06 02:30:13 +00:00
										 |  |  | fetch('http://searxes.nmqnkngye4ct7bgss4bmv5ca3wpa55yugvxen5kz2bbq67lwy6ps54yd.onion/collab/open/ok', { | 
					
						
							| 
									
										
										
										
											2019-05-05 11:13:28 +00:00
										 |  |  | 	method: 'GET', | 
					
						
							|  |  |  | 	mode: 'cors' | 
					
						
							|  |  |  | }).then(r => r.text()).then(r => { | 
					
						
							| 
									
										
										
										
											2019-05-06 02:30:13 +00:00
										 |  |  | 	if (r == 'ok') { | 
					
						
							| 
									
										
										
										
											2019-05-05 11:13:28 +00:00
										 |  |  | 		apiurl = TORapiurl; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | }).catch(() => {}); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function is_infected(f) { | 
					
						
							|  |  |  | 	return new Promise((g, b) => { | 
					
						
							|  |  |  | 		fetch(apiurl, { | 
					
						
							|  |  |  | 			method: 'POST', | 
					
						
							|  |  |  | 			mode: 'cors', | 
					
						
							|  |  |  | 			headers: { | 
					
						
							|  |  |  | 				'Content-Type': 'application/x-www-form-urlencoded' | 
					
						
							|  |  |  | 			}, | 
					
						
							|  |  |  | 			body: 'f=' + f | 
					
						
							|  |  |  | 		}).then(r => r.json()).then(r => { | 
					
						
							|  |  |  | 			if (r[0]) { | 
					
						
							|  |  |  | 				g(r[1]); | 
					
						
							|  |  |  | 			} else { | 
					
						
							|  |  |  | 				b(); | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 		}).catch(b); | 
					
						
							|  |  |  | 	}); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function i_already_know_you(f) { | 
					
						
							|  |  |  | 	if (!/^([a-z0-9_.-]{1,255})\.([a-z]{2,80})$/.test(f)) { | 
					
						
							|  |  |  | 		return false; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	return new Promise((g, b) => { | 
					
						
							|  |  |  | 		browser.storage.local.get(f).then((ff) => { | 
					
						
							|  |  |  | 			if (ff[f]) { | 
					
						
							|  |  |  | 				if (ff[f] == 'y') { | 
					
						
							|  |  |  | 					g(1); | 
					
						
							|  |  |  | 				} else { | 
					
						
							|  |  |  | 					g(-1); | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 			} else { | 
					
						
							|  |  |  | 				g(0); | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 		}, () => { | 
					
						
							|  |  |  | 			g(0); | 
					
						
							|  |  |  | 		}); | 
					
						
							|  |  |  | 	}); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function i_remember_you(f, t) { | 
					
						
							|  |  |  | 	browser.storage.local.set({ | 
					
						
							|  |  |  | 		[f]: ((t) ? 'y' : 'n') | 
					
						
							|  |  |  | 	}); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-06 02:30:13 +00:00
										 |  |  | function clear_cache_week() { | 
					
						
							|  |  |  | 	browser.storage.local.clear(); | 
					
						
							|  |  |  | 	setTimeout(function () { | 
					
						
							|  |  |  | 		clear_cache_week(); | 
					
						
							|  |  |  | 	}, 604800000); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | clear_cache_week(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | browser.runtime.onMessage.addListener((request, sender, sendResponse) => { | 
					
						
							|  |  |  | 	if (request && sender) { | 
					
						
							|  |  |  | 		i_already_know_you(request).then((r) => { | 
					
						
							|  |  |  | 			if (r == 1 || r == -1) { | 
					
						
							|  |  |  | 				browser.tabs.sendMessage(sender.tab.id, [request, ((r == 1) ? true : false)]); | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 			if (r == 0) { | 
					
						
							|  |  |  | 				is_infected(request).then((a) => { | 
					
						
							|  |  |  | 					i_remember_you(request, a); | 
					
						
							|  |  |  | 					browser.tabs.sendMessage(sender.tab.id, [request, a]); | 
					
						
							|  |  |  | 				}, () => { | 
					
						
							|  |  |  | 					browser.tabs.sendMessage(sender.tab.id, [request, false]); | 
					
						
							|  |  |  | 				}); | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 		}, () => {}); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | }); |