mirror of
				https://codeberg.org/crimeflare/cloudflare-tor
				synced 2025-10-25 22:56:44 +02:00 
			
		
		
		
	PR 65
This commit is contained in:
		
						commit
						eed733e504
					
				
					 27 changed files with 0 additions and 6220 deletions
				
			
		|  | @ -1,8 +0,0 @@ | ||||||
| [//]: # (do not edit me; start) |  | ||||||
| 
 |  | ||||||
| Version: null |  | ||||||
| 
 |  | ||||||
| [//]: # (do not edit me; end) |  | ||||||
| 
 |  | ||||||
| - [More Information / Download](../../subfiles/about.bcma.md) |  | ||||||
| - Disclaimer: This is NOT a mirror of upstream git. Synchronization may be delayed. |  | ||||||
							
								
								
									
										1467
									
								
								addons/bcmaCR/cf.js
									
										
									
									
									
								
							
							
						
						
									
										1467
									
								
								addons/bcmaCR/cf.js
									
										
									
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							|  | @ -1,73 +0,0 @@ | ||||||
| <html> |  | ||||||
|    <head> |  | ||||||
|       <meta http-equiv="content-type" content="text/html;charset=UTF-8"> |  | ||||||
|    </head> |  | ||||||
|    <body> |  | ||||||
|        <br> |  | ||||||
|       <b>📢 <span transk="actnow"></span></b><br> |  | ||||||
|       <label><input type="radio" id="ta0" name="ta" value="0"> <span transk="actt0"></span></label><br> |  | ||||||
|       <label><input type="radio" id="ta1" name="ta" value="1"> <span transk="actt1"></span></label><br> |  | ||||||
|       <label><input type="radio" id="ta2" name="ta" value="2"> <span transk="actt2"></span></label><br> |  | ||||||
|       <label><input type="radio" id="ta4" name="ta" value="4"> <span transk="actt4"></span></label><br> |  | ||||||
|       <label><input type="radio" id="ta3" name="ta" value="3"> <span transk="actt3"></span></label> |  | ||||||
|        <br> <br> |  | ||||||
|       <b>🖇 <span transk="uralturl"></span></b><br> |  | ||||||
|       <span transk="ururepl"></span><br> |  | ||||||
|       <input type="text" id="vau" spellcheck="false" value="" placeholder="ekz. https://mia.ekzemplo.net/proxy?url=%%URL%%"> |  | ||||||
|       <button type="button" id="aus">  <span transk="apply"></span>  </button> |  | ||||||
|        <br> <br> |  | ||||||
|       <b>🔔 <span transk="notify"></span></b><br> |  | ||||||
|       <label><input type="checkbox" id="nnf1"> <span transk="notif1"></span></label><br> |  | ||||||
|       <label><input type="checkbox" id="nnf2"> <span transk="notif2"></span></label> |  | ||||||
|        <br> <br> |  | ||||||
|       <b>📒 <span transk="urdomco"></span></b><br> |  | ||||||
|       <textarea cols="50" rows="10" id="t" wrap="off" spellcheck="false" placeholder="Cloudflare domajnoj" readonly></textarea> |  | ||||||
|       <br> |  | ||||||
|       <button type="button" id="exp" disabled>  <span transk="export"></span>  </button> |  | ||||||
|       <button type="button" id="clr">  <span transk="clear"></span>  </button> |  | ||||||
|        <br> <br> |  | ||||||
|       <b>🏳 <span transk="urwhite"></span></b><br> |  | ||||||
|       <textarea cols="50" rows="10" id="g" wrap="off" spellcheck="false" placeholder="ekzemplo.com"></textarea> |  | ||||||
|       <br> |  | ||||||
|       <button type="button" id="ign">  <span transk="apply"></span>  </button> |  | ||||||
|        <br> <br> |  | ||||||
|       <b>💬 Internacio</b><br> |  | ||||||
|       <select id="myul"> |  | ||||||
|          <option value="" selected> --- </option> |  | ||||||
|          <option value="ar">العربية</option> |  | ||||||
|          <option value="bn">বাংলা</option> |  | ||||||
|          <option value="de">Deutsch</option> |  | ||||||
|          <option value="eo">Esperanto 🏆</option> |  | ||||||
|          <option value="es">Español</option> |  | ||||||
|          <option value="fa">فارسی</option> |  | ||||||
|          <option value="fr">Français</option> |  | ||||||
|          <option value="ha">Harshen</option> |  | ||||||
|          <option value="hi">हिंदी</option> |  | ||||||
|          <option value="id">Indonesia</option> |  | ||||||
|          <option value="it">Italiano</option> |  | ||||||
|          <option value="ja">日本語</option> |  | ||||||
|          <option value="jv">ꦧꦱꦗꦮ</option> |  | ||||||
|          <option value="ko">힌디어</option> |  | ||||||
|          <option value="mr">मराठी</option> |  | ||||||
|          <option value="ms">bahasa Melayu</option> |  | ||||||
|          <option value="nl">Nederlands</option> |  | ||||||
|          <option value="pt">Português</option> |  | ||||||
|          <option value="ru">Русский</option> |  | ||||||
|          <option value="sw">Kiswahili</option> |  | ||||||
|          <option value="ta">தமிழ்</option> |  | ||||||
|          <option value="th">ภาษาไทย</option> |  | ||||||
|          <option value="tr">Türkçe</option> |  | ||||||
|          <option value="ur">اردو</option> |  | ||||||
|          <option value="vi">Tiếng Việt</option> |  | ||||||
|          <option value="zh">中文</option> |  | ||||||
|       </select> |  | ||||||
|        <br> <br> |  | ||||||
|       <b>📚 <span transk="useflik"></span></b><br> |  | ||||||
|       <ul> |  | ||||||
|          <li><a href="https://ss.wodferndripvpe6ib4uz4rtngrnzichnirgn7t5x64gxcyroopbhsuqd.onion/ss/tool_ismitm.php" target="_blank"><span transk="tsmitm"></span></a></li> |  | ||||||
|          <li><a href="https://codeberg.org/crimeflare/cloudflare-tor" target="_blank">"The Great Cloudwall"</a></li> |  | ||||||
|       </ul> |  | ||||||
|        <br> |  | ||||||
|       <script src="cg.js"></script> |  | ||||||
|    </body> |  | ||||||
| </html> |  | ||||||
|  | @ -1,100 +0,0 @@ | ||||||
| document.addEventListener('DOMContentLoaded', () => { |  | ||||||
| 	chrome.runtime.sendMessage(['cf'], (r) => { |  | ||||||
| 		fetch('i18n/' + r[5] + '.json', { |  | ||||||
| 			method: 'GET' |  | ||||||
| 		}).then(j => j.json()).then(j => { |  | ||||||
| 			document.querySelectorAll('span[transk]').forEach(x => { |  | ||||||
| 				x.innerText = j[x.getAttribute('transk')]; |  | ||||||
| 			}); |  | ||||||
| 		}); |  | ||||||
| 		document.getElementById('t').value = JSON.parse(r[0]).join("\n"); |  | ||||||
| 		document.getElementById('g').value = JSON.parse(r[1]).join("\n"); |  | ||||||
| 		document.getElementById('vau').value = r[3]; |  | ||||||
| 		document.getElementById('nnf1').checked = r[4][0]; |  | ||||||
| 		document.getElementById('nnf2').checked = r[4][1]; |  | ||||||
| 		switch (r[2]) { |  | ||||||
| 			case 0: |  | ||||||
| 				document.getElementById('ta0').checked = true; |  | ||||||
| 				document.getElementById('ta1').checked = false; |  | ||||||
| 				document.getElementById('ta2').checked = false; |  | ||||||
| 				document.getElementById('ta3').checked = false; |  | ||||||
| 				document.getElementById('ta4').checked = false; |  | ||||||
| 				break; |  | ||||||
| 			case 1: |  | ||||||
| 				document.getElementById('ta0').checked = false; |  | ||||||
| 				document.getElementById('ta1').checked = true; |  | ||||||
| 				document.getElementById('ta2').checked = false; |  | ||||||
| 				document.getElementById('ta3').checked = false; |  | ||||||
| 				document.getElementById('ta4').checked = false; |  | ||||||
| 				break; |  | ||||||
| 			case 3: |  | ||||||
| 				document.getElementById('ta0').checked = false; |  | ||||||
| 				document.getElementById('ta1').checked = false; |  | ||||||
| 				document.getElementById('ta2').checked = false; |  | ||||||
| 				document.getElementById('ta3').checked = true; |  | ||||||
| 				document.getElementById('ta4').checked = false; |  | ||||||
| 				break; |  | ||||||
| 			case 4: |  | ||||||
| 				document.getElementById('ta0').checked = false; |  | ||||||
| 				document.getElementById('ta1').checked = false; |  | ||||||
| 				document.getElementById('ta2').checked = false; |  | ||||||
| 				document.getElementById('ta3').checked = false; |  | ||||||
| 				document.getElementById('ta4').checked = true; |  | ||||||
| 				break; |  | ||||||
| 			default: |  | ||||||
| 				document.getElementById('ta0').checked = false; |  | ||||||
| 				document.getElementById('ta1').checked = false; |  | ||||||
| 				document.getElementById('ta2').checked = true; |  | ||||||
| 				document.getElementById('ta3').checked = false; |  | ||||||
| 				document.getElementById('ta4').checked = false; |  | ||||||
| 				break; |  | ||||||
| 		} |  | ||||||
| 	}); |  | ||||||
| 	document.getElementById('aus').addEventListener('click', function () { |  | ||||||
| 		chrome.runtime.sendMessage(['au', document.getElementById('vau').value]); |  | ||||||
| 	}); |  | ||||||
| 	document.getElementById('clr').addEventListener('click', () => { |  | ||||||
| 		chrome.runtime.sendMessage(['dy']); |  | ||||||
| 		document.getElementById('t').value = ''; |  | ||||||
| 	}); |  | ||||||
| 	document.getElementById('nnf1').addEventListener('click', function () { |  | ||||||
| 		chrome.runtime.sendMessage(['nnf', '1', (this.checked ? true : false)]); |  | ||||||
| 	}); |  | ||||||
| 	document.getElementById('nnf2').addEventListener('click', function () { |  | ||||||
| 		chrome.runtime.sendMessage(['nnf', '2', (this.checked ? true : false)]); |  | ||||||
| 	}); |  | ||||||
| 	document.getElementById('ta0').addEventListener('click', function () { |  | ||||||
| 		if (this.checked) { |  | ||||||
| 			chrome.runtime.sendMessage(['ta', '0']); |  | ||||||
| 		} |  | ||||||
| 	}); |  | ||||||
| 	document.getElementById('ta1').addEventListener('click', function () { |  | ||||||
| 		if (this.checked) { |  | ||||||
| 			chrome.runtime.sendMessage(['ta', '1']); |  | ||||||
| 		} |  | ||||||
| 	}); |  | ||||||
| 	document.getElementById('ta2').addEventListener('click', function () { |  | ||||||
| 		if (this.checked) { |  | ||||||
| 			chrome.runtime.sendMessage(['ta', '2']); |  | ||||||
| 		} |  | ||||||
| 	}); |  | ||||||
| 	document.getElementById('ta3').addEventListener('click', function () { |  | ||||||
| 		if (this.checked) { |  | ||||||
| 			chrome.runtime.sendMessage(['ta', '3']); |  | ||||||
| 		} |  | ||||||
| 	}); |  | ||||||
| 	document.getElementById('ta4').addEventListener('click', function () { |  | ||||||
| 		if (this.checked) { |  | ||||||
| 			chrome.runtime.sendMessage(['ta', '4']); |  | ||||||
| 		} |  | ||||||
| 	}); |  | ||||||
| 	document.getElementById('ign').addEventListener('click', function () { |  | ||||||
| 		chrome.runtime.sendMessage(['ig', document.getElementById('g').value.split("\n")]); |  | ||||||
| 	}); |  | ||||||
| 	document.getElementById('myul').addEventListener('change', () => { |  | ||||||
| 		if (document.getElementById('myul').value != '') { |  | ||||||
| 			chrome.runtime.sendMessage(['ul', document.getElementById('myul').value]); |  | ||||||
| 			location.reload(true); |  | ||||||
| 		} |  | ||||||
| 	}); |  | ||||||
| }); |  | ||||||
|  | @ -1 +0,0 @@ | ||||||
| sync |  | ||||||
|  | @ -1,36 +0,0 @@ | ||||||
| { |  | ||||||
|    "manifest_version": 2, |  | ||||||
|    "name": "Bloku Cloudflaron MITM-Atakon", |  | ||||||
|    "version": "1.0.3.6", |  | ||||||
|    "minimum_chrome_version": "68", |  | ||||||
|    "homepage_url": "https://ss.wodferndripvpe6ib4uz4rtngrnzichnirgn7t5x64gxcyroopbhsuqd.onion/", |  | ||||||
|    "author": "Ss", |  | ||||||
|    "incognito": "split", |  | ||||||
|    "permissions": [ |  | ||||||
|       "<all_urls>", |  | ||||||
|       "activeTab", |  | ||||||
|       "tabs", |  | ||||||
|       "webRequest", |  | ||||||
|       "webRequestBlocking", |  | ||||||
|       "webNavigation", |  | ||||||
|       "notifications", |  | ||||||
|       "storage", |  | ||||||
|       "unlimitedStorage" |  | ||||||
|    ], |  | ||||||
|    "icons": { |  | ||||||
|       "72": "icons/72.png" |  | ||||||
|    }, |  | ||||||
|    "background": { |  | ||||||
|       "scripts": [ |  | ||||||
|          "cf.js" |  | ||||||
|       ] |  | ||||||
|    }, |  | ||||||
|    "options_ui": { |  | ||||||
|       "page": "cg.html" |  | ||||||
|    }, |  | ||||||
|    "browser_action": { |  | ||||||
|       "default_icon": { |  | ||||||
|          "32": "icons/cf_0.png" |  | ||||||
|       } |  | ||||||
|    } |  | ||||||
| } |  | ||||||
|  | @ -1,8 +0,0 @@ | ||||||
| [//]: # (do not edit me; start) |  | ||||||
| 
 |  | ||||||
| Version: null |  | ||||||
| 
 |  | ||||||
| [//]: # (do not edit me; end) |  | ||||||
| 
 |  | ||||||
| - [More Information / Download](../../subfiles/about.isat.md) |  | ||||||
| - Disclaimer: This is NOT a mirror of upstream git. Synchronization may be delayed. |  | ||||||
|  | @ -1,267 +0,0 @@ | ||||||
| let localUse = false, |  | ||||||
| 	localDB = [], |  | ||||||
| 	timr, memcache = {}, |  | ||||||
| 	forcePurge = false, |  | ||||||
| 	apiurl = 'http://api.wodferndripvpe6ib4uz4rtngrnzichnirgn7t5x64gxcyroopbhsuqd.onion/_/is_antitor.php'; |  | ||||||
| /* |  | ||||||
| chrome.storage.local.get(['cep'], g => { |  | ||||||
| 	if (g.cep == 'y') { |  | ||||||
| 		apiurl = 'http://api.wodferndripvpe6ib4uz4rtngrnzichnirgn7t5x64gxcyroopbhsuqd.onion/_/is_antitor.php'; |  | ||||||
| 	} else { |  | ||||||
| 		if (g.cep != 'n') { |  | ||||||
| 			chrome.storage.local.set({ |  | ||||||
| 				'cep': 'n' |  | ||||||
| 			}); |  | ||||||
| 			fetch('http://api.wodferndripvpe6ib4uz4rtngrnzichnirgn7t5x64gxcyroopbhsuqd.onion/_/ok.php', { |  | ||||||
| 				method: 'GET', |  | ||||||
| 				mode: 'cors' |  | ||||||
| 			}).then(r => r.text()).then(r => { |  | ||||||
| 				if (r == 'ok') { |  | ||||||
| 					apiurl = 'http://api.wodferndripvpe6ib4uz4rtngrnzichnirgn7t5x64gxcyroopbhsuqd.onion/_/is_antitor.php'; |  | ||||||
| 					chrome.storage.local.set({ |  | ||||||
| 						'cep': 'y' |  | ||||||
| 					}); |  | ||||||
| 				} |  | ||||||
| 			}).catch(() => {}); |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| }); |  | ||||||
| */ |  | ||||||
| function is_hostile(f) { |  | ||||||
| 	if (localUse) { |  | ||||||
| 		return new Promise((g, b) => { |  | ||||||
| 			g(localDB.includes(f) ? true : false); |  | ||||||
| 		}); |  | ||||||
| 	} |  | ||||||
| 	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_know_you(f) { |  | ||||||
| 	if (!/^([a-z0-9_.-]{1,255})\.([a-z]{2,80})$/.test(f)) { |  | ||||||
| 		return new Promise((g, b) => { |  | ||||||
| 			g(200); |  | ||||||
| 		}); |  | ||||||
| 	} |  | ||||||
| 	let m; |  | ||||||
| 	if (memcache[f] != undefined) { |  | ||||||
| 		m = memcache[f]; |  | ||||||
| 		return new Promise((g, b) => { |  | ||||||
| 			g(m); |  | ||||||
| 		}); |  | ||||||
| 	} |  | ||||||
| 	return new Promise((g, b) => { |  | ||||||
| 		chrome.storage.local.get([f], (ff) => { |  | ||||||
| 			if (ff[f]) { |  | ||||||
| 				if (ff[f] == 'y') { |  | ||||||
| 					memcache[f] = 1; |  | ||||||
| 					g(1); |  | ||||||
| 				} else { |  | ||||||
| 					memcache[f] = -1; |  | ||||||
| 					g(-1); |  | ||||||
| 				} |  | ||||||
| 			} else { |  | ||||||
| 				g(0); |  | ||||||
| 			} |  | ||||||
| 		}); |  | ||||||
| 	}); |  | ||||||
| } |  | ||||||
| function forget_cache() { |  | ||||||
| 	chrome.storage.local.get(['ign1', 'obs', 'dbg', 'alt', 'cep', 'mul', 'opd', 'ldb'], g => { |  | ||||||
| 		chrome.storage.local.clear(); |  | ||||||
| 		memcache = {}; |  | ||||||
| 		chrome.storage.local.set({ |  | ||||||
| 			'ign1': (g.ign1 == 'y' ? 'y' : 'n') |  | ||||||
| 		}); |  | ||||||
| 		chrome.storage.local.set({ |  | ||||||
| 			'obs': (g.obs == 'y' ? 'y' : 'n') |  | ||||||
| 		}); |  | ||||||
| 		chrome.storage.local.set({ |  | ||||||
| 			'dbg': (g.dbg == 'y' ? 'y' : 'n') |  | ||||||
| 		}); |  | ||||||
| 		chrome.storage.local.set({ |  | ||||||
| 			'alt': (g.alt == 'y' ? 'y' : 'n') |  | ||||||
| 		}); |  | ||||||
| 		chrome.storage.local.set({ |  | ||||||
| 			'cep': (g.cep == 'y' ? 'y' : 'n') |  | ||||||
| 		}); |  | ||||||
| 		chrome.storage.local.set({ |  | ||||||
| 			'mul': (g.mul != undefined ? g.mul : 'eo') |  | ||||||
| 		}); |  | ||||||
| 		chrome.storage.local.set({ |  | ||||||
| 			'opd': (g.opd == 'n' ? 'n' : 'y') |  | ||||||
| 		}); |  | ||||||
| 		chrome.storage.local.set({ |  | ||||||
| 			'ldb': (g.ldb != undefined ? g.ldb : '[]') |  | ||||||
| 		}); |  | ||||||
| 		chrome.storage.local.set({ |  | ||||||
| 			'lastU': Math.round((new Date()).getTime() / 1000) |  | ||||||
| 		}); |  | ||||||
| 		chrome.storage.local.set({ |  | ||||||
| 			'lastV': (chrome.runtime.getManifest()).version |  | ||||||
| 		}); |  | ||||||
| 	}); |  | ||||||
| 	clearTimeout(timr); |  | ||||||
| 	timr = setTimeout(function () { |  | ||||||
| 		forget_cache(); |  | ||||||
| 	}, 1814400000); |  | ||||||
| } |  | ||||||
| chrome.storage.local.get(['lastU', 'lastV', 'ldb', 'opd'], g => { |  | ||||||
| 	localUse = (g.opd == 'n') ? true : false; |  | ||||||
| 	localDB = JSON.parse(g.ldb || '[]'); |  | ||||||
| 	if (g.lastU) { |  | ||||||
| 		if (Math.abs(Math.round((new Date()).getTime() / 1000) - g.lastU) > 1814400) { |  | ||||||
| 			chrome.storage.local.get(['ign1', 'obs', 'dbg', 'alt', 'cep', 'mul', 'opd', 'ldb'], g => { |  | ||||||
| 				chrome.storage.local.clear(); |  | ||||||
| 				memcache = {}; |  | ||||||
| 				chrome.storage.local.set({ |  | ||||||
| 					'ign1': (g.ign1 == 'y' ? 'y' : 'n') |  | ||||||
| 				}); |  | ||||||
| 				chrome.storage.local.set({ |  | ||||||
| 					'obs': (g.obs == 'y' ? 'y' : 'n') |  | ||||||
| 				}); |  | ||||||
| 				chrome.storage.local.set({ |  | ||||||
| 					'dbg': (g.dbg == 'y' ? 'y' : 'n') |  | ||||||
| 				}); |  | ||||||
| 				chrome.storage.local.set({ |  | ||||||
| 					'alt': (g.alt == 'y' ? 'y' : 'n') |  | ||||||
| 				}); |  | ||||||
| 				chrome.storage.local.set({ |  | ||||||
| 					'cep': (g.cep == 'y' ? 'y' : 'n') |  | ||||||
| 				}); |  | ||||||
| 				chrome.storage.local.set({ |  | ||||||
| 					'mul': (g.mul != undefined ? g.mul : 'eo') |  | ||||||
| 				}); |  | ||||||
| 				chrome.storage.local.set({ |  | ||||||
| 					'opd': (g.opd == 'n' ? 'n' : 'y') |  | ||||||
| 				}); |  | ||||||
| 				chrome.storage.local.set({ |  | ||||||
| 					'ldb': (g.ldb != undefined ? g.ldb : '[]') |  | ||||||
| 				}); |  | ||||||
| 				chrome.storage.local.set({ |  | ||||||
| 					'lastU': Math.round((new Date()).getTime() / 1000) |  | ||||||
| 				}); |  | ||||||
| 			}); |  | ||||||
| 		} |  | ||||||
| 	} else { |  | ||||||
| 		chrome.storage.local.set({ |  | ||||||
| 			'lastU': Math.round((new Date()).getTime() / 1000) |  | ||||||
| 		}); |  | ||||||
| 	} |  | ||||||
| 	let nowVer = (chrome.runtime.getManifest()).version; |  | ||||||
| 	if (g.lastV != nowVer || forcePurge) { |  | ||||||
| 		chrome.storage.local.get(['ign1', 'obs', 'dbg', 'alt', 'cep', 'mul', 'opd', 'ldb'], g => { |  | ||||||
| 			chrome.storage.local.clear(); |  | ||||||
| 			memcache = {}; |  | ||||||
| 			chrome.storage.local.set({ |  | ||||||
| 				'ign1': (g.ign1 == 'y' ? 'y' : 'n') |  | ||||||
| 			}); |  | ||||||
| 			chrome.storage.local.set({ |  | ||||||
| 				'obs': (g.obs == 'y' ? 'y' : 'n') |  | ||||||
| 			}); |  | ||||||
| 			chrome.storage.local.set({ |  | ||||||
| 				'dbg': (g.dbg == 'y' ? 'y' : 'n') |  | ||||||
| 			}); |  | ||||||
| 			chrome.storage.local.set({ |  | ||||||
| 				'alt': (g.alt == 'y' ? 'y' : 'n') |  | ||||||
| 			}); |  | ||||||
| 			chrome.storage.local.set({ |  | ||||||
| 				'cep': (g.cep == 'y' ? 'y' : 'n') |  | ||||||
| 			}); |  | ||||||
| 			chrome.storage.local.set({ |  | ||||||
| 				'mul': (g.mul != undefined ? g.mul : 'eo') |  | ||||||
| 			}); |  | ||||||
| 			chrome.storage.local.set({ |  | ||||||
| 				'opd': (g.opd == 'n' ? 'n' : 'y') |  | ||||||
| 			}); |  | ||||||
| 			chrome.storage.local.set({ |  | ||||||
| 				'ldb': (g.ldb != undefined ? g.ldb : '[]') |  | ||||||
| 			}); |  | ||||||
| 			chrome.storage.local.set({ |  | ||||||
| 				'lastU': Math.round((new Date()).getTime() / 1000) |  | ||||||
| 			}); |  | ||||||
| 			chrome.storage.local.set({ |  | ||||||
| 				'lastV': (chrome.runtime.getManifest()).version |  | ||||||
| 			}); |  | ||||||
| 		}); |  | ||||||
| 	} |  | ||||||
| 	timr = setTimeout(function () { |  | ||||||
| 		forget_cache(); |  | ||||||
| 	}, 1814400000); |  | ||||||
| }); |  | ||||||
| chrome.runtime.onMessage.addListener((requests, sender, sendResponse) => { |  | ||||||
| 	if (requests) { |  | ||||||
| 		if (requests === 'clear') { |  | ||||||
| 			forget_cache(); |  | ||||||
| 			return; |  | ||||||
| 		} |  | ||||||
| 		if (requests.indexOf('dbmode,') === 0) { |  | ||||||
| 			switch (requests) { |  | ||||||
| 				case 'dbmode,s1': |  | ||||||
| 					chrome.storage.local.set({ |  | ||||||
| 						'opd': 'y' |  | ||||||
| 					}); |  | ||||||
| 					localUse = false; |  | ||||||
| 					break; |  | ||||||
| 				case 'dbmode,s0': |  | ||||||
| 					chrome.storage.local.set({ |  | ||||||
| 						'opd': 'n' |  | ||||||
| 					}); |  | ||||||
| 					localUse = true; |  | ||||||
| 					break; |  | ||||||
| 				case 'dbmode,cl': |  | ||||||
| 					chrome.storage.local.set({ |  | ||||||
| 						'ldb': '[]' |  | ||||||
| 					}); |  | ||||||
| 					localDB = []; |  | ||||||
| 					break; |  | ||||||
| 				case 'dbmode,rl': |  | ||||||
| 					chrome.storage.local.get(['ldb'], (g) => { |  | ||||||
| 						localDB = JSON.parse(g.ldb || '[]'); |  | ||||||
| 					}); |  | ||||||
| 					break; |  | ||||||
| 			} |  | ||||||
| 			return; |  | ||||||
| 		} |  | ||||||
| 		requests.forEach(request => { |  | ||||||
| 			i_know_you(request).then((r) => { |  | ||||||
| 				if (r == 1 || r == -1) { |  | ||||||
| 					chrome.tabs.sendMessage(sender.tab.id, [request, ((r == 1) ? true : false)]); |  | ||||||
| 				} |  | ||||||
| 				if (r == 0) { |  | ||||||
| 					is_hostile(request).then((a) => { |  | ||||||
| 						if (a) { |  | ||||||
| 							chrome.storage.local.set({ |  | ||||||
| 								[request]: 'y' |  | ||||||
| 							}); |  | ||||||
| 						} else { |  | ||||||
| 							chrome.storage.local.set({ |  | ||||||
| 								[request]: 'n' |  | ||||||
| 							}); |  | ||||||
| 						} |  | ||||||
| 						if (Object.keys(memcache).length > 650) { |  | ||||||
| 							memcache = {}; |  | ||||||
| 						} |  | ||||||
| 						chrome.tabs.sendMessage(sender.tab.id, [request, a]); |  | ||||||
| 					}, () => { |  | ||||||
| 						chrome.tabs.sendMessage(sender.tab.id, [request, false]); |  | ||||||
| 					}); |  | ||||||
| 				} |  | ||||||
| 			}, () => {}); |  | ||||||
| 		}); |  | ||||||
| 	} |  | ||||||
| 	return; |  | ||||||
| }); |  | ||||||
|  | @ -1,59 +0,0 @@ | ||||||
| <html> |  | ||||||
|    <head> |  | ||||||
|       <meta http-equiv="content-type" content="text/html;charset=UTF-8"> |  | ||||||
|    </head> |  | ||||||
|    <body style="display:none"> |  | ||||||
|        <br> |  | ||||||
|       <label><input type="checkbox" id="ign1"> <span tek="tlign1"></span></label><br> |  | ||||||
|       <label><input type="checkbox" id="obs"> <span tek="tlobs"></span></label><br> |  | ||||||
|       <label><input type="checkbox" id="alt"> <span tek="tlalt"></span></label><br> |  | ||||||
|       <label><input type="checkbox" id="dbg" disabled> <span tek="tldbg"></span></label><br> |  | ||||||
|       <br> <br> |  | ||||||
|       <span tek="opmode"></span><br> |  | ||||||
|       <label><input type="radio" name="opm" id="opon"> <span tek="opmon"></span></label>  [ → <a href="https://ss.wodferndripvpe6ib4uz4rtngrnzichnirgn7t5x64gxcyroopbhsuqd.onion/#!op=info/api" target="_blank">Ss API</a> ]<br> |  | ||||||
|       <label><input type="radio" name="opm" id="opoff"> <span tek="opmoff"></span></label>  [ → <a href="./localdb.html" target="_blank"><span tek="opmode"></span></a> ]<br> |  | ||||||
|       <br> <br> |  | ||||||
|       💬  |  | ||||||
|       <select id="myul"> |  | ||||||
|          <option value="" selected> --- </option> |  | ||||||
|          <option value="ar">العربية</option> |  | ||||||
|          <option value="bn">বাংলা</option> |  | ||||||
|          <option value="de">Deutsch</option> |  | ||||||
|          <option value="eo">Esperanto 🏆</option> |  | ||||||
|          <option value="es">Español</option> |  | ||||||
|          <option value="fa">فارسی</option> |  | ||||||
|          <option value="fr">Français</option> |  | ||||||
|          <option value="ha">Harshen</option> |  | ||||||
|          <option value="hi">हिंदी</option> |  | ||||||
|          <option value="id">Indonesia</option> |  | ||||||
|          <option value="it">Italiano</option> |  | ||||||
|          <option value="ja">日本語</option> |  | ||||||
|          <option value="jv">ꦧꦱꦗꦮ</option> |  | ||||||
|          <option value="ko">힌디어</option> |  | ||||||
|          <option value="mr">मराठी</option> |  | ||||||
|          <option value="ms">bahasa Melayu</option> |  | ||||||
|          <option value="nl">Nederlands</option> |  | ||||||
|          <option value="pt">Português</option> |  | ||||||
|          <option value="ru">Русский</option> |  | ||||||
|          <option value="sw">Kiswahili</option> |  | ||||||
|          <option value="ta">தமிழ்</option> |  | ||||||
|          <option value="th">ภาษาไทย</option> |  | ||||||
|          <option value="tr">Türkçe</option> |  | ||||||
|          <option value="ur">اردو</option> |  | ||||||
|          <option value="vi">Tiếng Việt</option> |  | ||||||
|          <option value="zh">中文</option> |  | ||||||
|       </select> |  | ||||||
|       <br> <br> <br> |  | ||||||
|       <span tek="aboutcache"></span><br> |  | ||||||
|       <span id="smsa"><button type="button" id="sms">  <span tek="statsshow"></span>  </button></span> |  | ||||||
|       <span id="smsb" style="display:none"> |  | ||||||
|        <br> |  | ||||||
|       <span tek="hostile"></span>: <span id="viry">?</span><br> |  | ||||||
|       <span tek="neutral"></span>: <span id="virn">?</span><br> |  | ||||||
|       <span tek="total"></span>: <span id="viro">?</span><br> |  | ||||||
|        <br> |  | ||||||
|       <button type="button" id="crs">  <span tek="statsclear"></span>  </button> |  | ||||||
|       </span> |  | ||||||
|       <br><br><script src="cg.js"></script> |  | ||||||
|    </body> |  | ||||||
| </html> |  | ||||||
|  | @ -1,90 +0,0 @@ | ||||||
| document.addEventListener('DOMContentLoaded', () => { |  | ||||||
| 	chrome.storage.local.get(['ign1', 'obs', 'dbg', 'alt', 'mul', 'opd'], g => { |  | ||||||
| 		document.getElementById('ign1').checked = (g.ign1 == 'y') ? true : false; |  | ||||||
| 		document.getElementById('obs').checked = (g.obs == 'y') ? true : false; |  | ||||||
| 		document.getElementById('alt').checked = (g.alt == 'y') ? true : false; |  | ||||||
| 		document.getElementById('opon').checked = (g.opd != 'n') ? true : false; |  | ||||||
| 		document.getElementById('opoff').checked = (g.opd == 'n') ? true : false; |  | ||||||
| 		let ul = g.mul || 'eo'; |  | ||||||
| 		fetch('i18n/' + ul + '.json', { |  | ||||||
| 			method: 'GET' |  | ||||||
| 		}).then(j => j.json()).then(j => { |  | ||||||
| 			document.querySelectorAll('span[tek]').forEach(x => { |  | ||||||
| 				x.innerText = j[x.getAttribute('tek')]; |  | ||||||
| 			}); |  | ||||||
| 		}); |  | ||||||
| 		document.body.style.display = 'block'; |  | ||||||
| 	}); |  | ||||||
| }); |  | ||||||
| document.getElementById('myul').addEventListener('change', () => { |  | ||||||
| 	let xul = document.getElementById('myul').value; |  | ||||||
| 	if (xul.length == 2) { |  | ||||||
| 		chrome.storage.local.set({ |  | ||||||
| 			'mul': xul |  | ||||||
| 		}); |  | ||||||
| 		location.reload(true); |  | ||||||
| 	} |  | ||||||
| }); |  | ||||||
| document.getElementById('ign1').addEventListener('click', () => { |  | ||||||
| 	chrome.storage.local.set({ |  | ||||||
| 		'ign1': (document.getElementById('ign1').checked ? 'y' : 'n') |  | ||||||
| 	}); |  | ||||||
| }); |  | ||||||
| document.getElementById('obs').addEventListener('click', () => { |  | ||||||
| 	chrome.storage.local.set({ |  | ||||||
| 		'obs': (document.getElementById('obs').checked ? 'y' : 'n') |  | ||||||
| 	}); |  | ||||||
| }); |  | ||||||
| document.getElementById('alt').addEventListener('click', () => { |  | ||||||
| 	chrome.storage.local.set({ |  | ||||||
| 		'alt': (document.getElementById('alt').checked ? 'y' : 'n') |  | ||||||
| 	}); |  | ||||||
| }); |  | ||||||
| document.getElementById('opon').addEventListener('click', () => { |  | ||||||
| 	chrome.runtime.sendMessage('dbmode,s1', () => { |  | ||||||
| 		location.reload(); |  | ||||||
| 	}); |  | ||||||
| }); |  | ||||||
| document.getElementById('opoff').addEventListener('click', () => { |  | ||||||
| 	chrome.runtime.sendMessage('dbmode,s0', () => { |  | ||||||
| 		location.reload(); |  | ||||||
| 	}); |  | ||||||
| }); |  | ||||||
| document.getElementById('crs').addEventListener('click', () => { |  | ||||||
| 	chrome.runtime.sendMessage('clear', () => { |  | ||||||
| 		location.reload(); |  | ||||||
| 	}); |  | ||||||
| }); |  | ||||||
| document.getElementById('sms').addEventListener('click', () => { |  | ||||||
| 	document.getElementById('smsa').style.display = 'none'; |  | ||||||
| 	chrome.storage.local.get(null, g => { |  | ||||||
| 		let iY = 0, |  | ||||||
| 			iN = 0, |  | ||||||
| 			iT, tmp, akd = []; |  | ||||||
| 		Object.keys(g).forEach(a => { |  | ||||||
| 			if (!['ign1', 'obs', 'dbg', 'alt', 'lastU', 'lastV', 'cep', 'mul', 'opd', 'ldb'].includes(a) && (g[a] == 'y' || g[a] == 'n')) { |  | ||||||
| 				if (!akd.includes(a)) { |  | ||||||
| 					akd.push(a); |  | ||||||
| 					if (g[a] == 'y') { |  | ||||||
| 						iY++; |  | ||||||
| 					} else { |  | ||||||
| 						iN++; |  | ||||||
| 					} |  | ||||||
| 				} |  | ||||||
| 			} |  | ||||||
| 		}); |  | ||||||
| 		iT = iY + iN; |  | ||||||
| 		if (iT > 0) { |  | ||||||
| 			tmp = (iY * 100 / iT).toFixed(1); |  | ||||||
| 			document.getElementById('viry').innerText = iY + ' (' + tmp + '%)'; |  | ||||||
| 			tmp = (iN * 100 / iT).toFixed(1); |  | ||||||
| 			document.getElementById('virn').innerText = iN + ' (' + tmp + '%)'; |  | ||||||
| 			document.getElementById('viro').innerText = (iY + iN); |  | ||||||
| 		} else { |  | ||||||
| 			document.getElementById('viry').innerText = 0; |  | ||||||
| 			document.getElementById('virn').innerText = 0; |  | ||||||
| 			document.getElementById('viro').innerText = 0; |  | ||||||
| 		} |  | ||||||
| 		document.getElementById('smsb').style.display = 'inline'; |  | ||||||
| 	}); |  | ||||||
| }); |  | ||||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							|  | @ -1,17 +0,0 @@ | ||||||
| <html> |  | ||||||
|    <head> |  | ||||||
|       <meta http-equiv="content-type" content="text/html;charset=UTF-8"> |  | ||||||
|       <title>🗄</title> |  | ||||||
|    </head> |  | ||||||
|    <body style="display:none"> |  | ||||||
|       <br> |  | ||||||
|       <meter id="pbr" value="0" min="0" max="100" style="width:50%"></meter><br><br> |  | ||||||
|       <button type="button" id="ldb_i">  📝 <span tek="opximp"></span>  </button> |  | ||||||
|       <button type="button" id="ldb_c">  🗑 <span tek="opxclr"></span>  </button> |  | ||||||
|       <span style="display:none"> |  | ||||||
|       <input type="file" id="f" accept="text/plain"> |  | ||||||
|       <span tek="opxdone"></span> |  | ||||||
|       </span> |  | ||||||
|       <script src="localdb.js"></script> |  | ||||||
|    </body> |  | ||||||
| </html> |  | ||||||
|  | @ -1,67 +0,0 @@ | ||||||
| let irun = false; |  | ||||||
| document.addEventListener('DOMContentLoaded', () => { |  | ||||||
| 	chrome.storage.local.get(['mul'], g => { |  | ||||||
| 		let ul = g.mul || 'eo'; |  | ||||||
| 		fetch('i18n/' + ul + '.json', { |  | ||||||
| 			method: 'GET' |  | ||||||
| 		}).then(j => j.json()).then(j => { |  | ||||||
| 			document.querySelectorAll('span[tek]').forEach(x => { |  | ||||||
| 				x.innerText = j[x.getAttribute('tek')]; |  | ||||||
| 			}); |  | ||||||
| 			document.body.style.display = 'block'; |  | ||||||
| 		}); |  | ||||||
| 	}); |  | ||||||
| }); |  | ||||||
| document.getElementById('f').addEventListener('change', e => { |  | ||||||
| 	let ff = e.target.files[0]; |  | ||||||
| 	if (ff) { |  | ||||||
| 		let r = new FileReader(); |  | ||||||
| 		r.addEventListener('load', e => { |  | ||||||
| 			if (ff.size > 4) { |  | ||||||
| 				let g = e.target.result.replace(/(?:\r\n|\r|\n)/g, "\n").split("\n"); |  | ||||||
| 				if (g.length > 0) { |  | ||||||
| 					chrome.storage.local.get(['ldb'], gs => { |  | ||||||
| 						irun = true; |  | ||||||
| 						let cnt0, cnt1 = 0, |  | ||||||
| 							gc = 1, |  | ||||||
| 							db = JSON.parse(gs.ldb || '[]'); |  | ||||||
| 						cnt0 = db.length; |  | ||||||
| 						document.getElementById('pbr').max = g.length; |  | ||||||
| 						g.forEach(x => { |  | ||||||
| 							document.getElementById('pbr').value = gc; |  | ||||||
| 							gc++; |  | ||||||
| 							if (/^([0-9a-z.-]{4,400})\.([a-z]{2,40})$/.test(x) && !db.includes(x)) { |  | ||||||
| 								db.push(x); |  | ||||||
| 							} |  | ||||||
| 						}); |  | ||||||
| 						g = null; |  | ||||||
| 						cnt1 = db.length; |  | ||||||
| 						if (cnt1 != cnt0) { |  | ||||||
| 							chrome.storage.local.set({ |  | ||||||
| 								'ldb': JSON.stringify(db) |  | ||||||
| 							}); |  | ||||||
| 						} |  | ||||||
| 						chrome.runtime.sendMessage('dbmode,rl', () => { |  | ||||||
| 							alert(document.querySelector('span[tek=opxdone]').innerText + "\n\n" + cnt0 + " -> " + cnt1); |  | ||||||
| 							location.reload(); |  | ||||||
| 						}); |  | ||||||
| 					}); |  | ||||||
| 				} |  | ||||||
| 			} |  | ||||||
| 		}); |  | ||||||
| 		r.readAsText(ff); |  | ||||||
| 	} |  | ||||||
| }); |  | ||||||
| document.getElementById('ldb_i').addEventListener('click', () => { |  | ||||||
| 	if (!irun) { |  | ||||||
| 		document.getElementById('f').click(); |  | ||||||
| 	} |  | ||||||
| }); |  | ||||||
| document.getElementById('ldb_c').addEventListener('click', () => { |  | ||||||
| 	if (!irun) { |  | ||||||
| 		chrome.runtime.sendMessage('dbmode,cl', () => { |  | ||||||
| 			alert(document.querySelector('span[tek=opxdone]').innerText); |  | ||||||
| 			location.reload(); |  | ||||||
| 		}); |  | ||||||
| 	} |  | ||||||
| }); |  | ||||||
|  | @ -1,37 +0,0 @@ | ||||||
| { |  | ||||||
|    "manifest_version": 2, |  | ||||||
|    "name": "Ĉu ĉi tiuj ligoj blokos Tor-uzanton?", |  | ||||||
|    "version": "1.0.2.2", |  | ||||||
|    "minimum_chrome_version": "68", |  | ||||||
|    "homepage_url": "https://ss.wodferndripvpe6ib4uz4rtngrnzichnirgn7t5x64gxcyroopbhsuqd.onion/", |  | ||||||
|    "author": "Ss", |  | ||||||
|    "incognito": "split", |  | ||||||
|    "permissions": [ |  | ||||||
|       "storage", |  | ||||||
|       "unlimitedStorage" |  | ||||||
|    ], |  | ||||||
|    "icons": { |  | ||||||
|       "72": "icons/72.png" |  | ||||||
|    }, |  | ||||||
|    "background": { |  | ||||||
|       "scripts": [ |  | ||||||
|          "bg.js" |  | ||||||
|       ] |  | ||||||
|    }, |  | ||||||
|    "options_ui": { |  | ||||||
|       "chrome_style": false, |  | ||||||
|       "page": "cfg.html" |  | ||||||
|    }, |  | ||||||
|    "content_scripts": [ |  | ||||||
|       { |  | ||||||
|          "matches": [ |  | ||||||
|             "http://*/*", |  | ||||||
|             "https://*/*" |  | ||||||
|          ], |  | ||||||
|          "js": [ |  | ||||||
|             "cs.js" |  | ||||||
|          ], |  | ||||||
|          "run_at": "document_end" |  | ||||||
|       } |  | ||||||
|    ] |  | ||||||
| } |  | ||||||
|  | @ -1,8 +0,0 @@ | ||||||
| [//]: # (do not edit me; start) |  | ||||||
| 
 |  | ||||||
| Version: null |  | ||||||
| 
 |  | ||||||
| [//]: # (do not edit me; end) |  | ||||||
| 
 |  | ||||||
| - [More Information / Download](../../subfiles/about.ismm.md) |  | ||||||
| - Disclaimer: This is NOT a mirror of upstream git. Synchronization may be delayed. |  | ||||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							|  | @ -1,60 +0,0 @@ | ||||||
| <html> |  | ||||||
|    <head> |  | ||||||
|       <meta http-equiv="content-type" content="text/html;charset=UTF-8"> |  | ||||||
|    </head> |  | ||||||
|    <body style="display:none"> |  | ||||||
|        <br> |  | ||||||
|       <label><input type="checkbox" id="ign1"> <span tek="tlign1"></span></label><br> |  | ||||||
|       <label><input type="checkbox" id="ign2"> <span tek="tlign2"></span></label><br> |  | ||||||
|       <label><input type="checkbox" id="obs"> <span tek="tlobs"></span></label><br> |  | ||||||
|       <label><input type="checkbox" id="alt"> <span tek="tlalt"></span></label><br> |  | ||||||
|       <label><input type="checkbox" id="dbg" disabled> <span tek="tldbg"></span></label><br> |  | ||||||
|       <br> <br> |  | ||||||
|       <span tek="opmode"></span><br> |  | ||||||
|       <label><input type="radio" name="opm" id="opon"> <span tek="opmon"></span></label>  [ → <a href="https://ss.wodferndripvpe6ib4uz4rtngrnzichnirgn7t5x64gxcyroopbhsuqd.onion/#!op=info/api" target="_blank">Ss API</a> ]<br> |  | ||||||
|       <label><input type="radio" name="opm" id="opoff"> <span tek="opmoff"></span></label>  [ → <a href="./localdb.html" target="_blank"><span tek="opmode"></span></a> ]<br> |  | ||||||
|       <br> <br> |  | ||||||
|       💬  |  | ||||||
|       <select id="myul"> |  | ||||||
|          <option value="" selected> --- </option> |  | ||||||
|          <option value="ar">العربية</option> |  | ||||||
|          <option value="bn">বাংলা</option> |  | ||||||
|          <option value="de">Deutsch</option> |  | ||||||
|          <option value="eo">Esperanto 🏆</option> |  | ||||||
|          <option value="es">Español</option> |  | ||||||
|          <option value="fa">فارسی</option> |  | ||||||
|          <option value="fr">Français</option> |  | ||||||
|          <option value="ha">Harshen</option> |  | ||||||
|          <option value="hi">हिंदी</option> |  | ||||||
|          <option value="id">Indonesia</option> |  | ||||||
|          <option value="it">Italiano</option> |  | ||||||
|          <option value="ja">日本語</option> |  | ||||||
|          <option value="jv">ꦧꦱꦗꦮ</option> |  | ||||||
|          <option value="ko">힌디어</option> |  | ||||||
|          <option value="mr">मराठी</option> |  | ||||||
|          <option value="ms">bahasa Melayu</option> |  | ||||||
|          <option value="nl">Nederlands</option> |  | ||||||
|          <option value="pt">Português</option> |  | ||||||
|          <option value="ru">Русский</option> |  | ||||||
|          <option value="sw">Kiswahili</option> |  | ||||||
|          <option value="ta">தமிழ்</option> |  | ||||||
|          <option value="th">ภาษาไทย</option> |  | ||||||
|          <option value="tr">Türkçe</option> |  | ||||||
|          <option value="ur">اردو</option> |  | ||||||
|          <option value="vi">Tiếng Việt</option> |  | ||||||
|          <option value="zh">中文</option> |  | ||||||
|       </select> |  | ||||||
|       <br> <br> <br> |  | ||||||
|       <span tek="aboutcache"></span><br> |  | ||||||
|       <span id="smsa"><button type="button" id="sms">  <span tek="statsshow"></span>  </button></span> |  | ||||||
|       <span id="smsb" style="display:none"> |  | ||||||
|        <br> |  | ||||||
|       <span tek="hostile"></span>: <span id="viry">?</span><br> |  | ||||||
|       <span tek="neutral"></span>: <span id="virn">?</span><br> |  | ||||||
|       <span tek="total"></span>: <span id="viro">?</span><br> |  | ||||||
|        <br> |  | ||||||
|       <button type="button" id="crs">  <span tek="statsclear"></span>  </button> |  | ||||||
|       </span> |  | ||||||
|       <br><br><script src="cg.js"></script> |  | ||||||
|    </body> |  | ||||||
| </html> |  | ||||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							|  | @ -1,73 +0,0 @@ | ||||||
| if (document.body && !['ss.wodferndripvpe6ib4uz4rtngrnzichnirgn7t5x64gxcyroopbhsuqd.onion', 'searxes.wodferndripvpe6ib4uz4rtngrnzichnirgn7t5x64gxcyroopbhsuqd.onion', 'searxes.eu.org', 'api.searxes.eu.org', 'ansero.wodferndripvpe6ib4uz4rtngrnzichnirgn7t5x64gxcyroopbhsuqd.onion', 'ansero.eu.org'].includes(location.hostname)) { |  | ||||||
| 	let cs = (function () { |  | ||||||
| 		let s = document.createElement('style'); |  | ||||||
| 		document.head.appendChild(s); |  | ||||||
| 		return s.sheet; |  | ||||||
| 	})(); |  | ||||||
| 	if (cs) { |  | ||||||
| 		cs.insertRule("a[data-mitm=y]{cursor:not-allowed !important;text-decoration-line:line-through !important;text-decoration-color:red !important;text-decoration-style:double !important}", 0); |  | ||||||
| 		cs.insertRule("a[data-mitm=y]::before{content:'[\\26A0]';font-weight:bold !important;color:red !important;display:inline-block !important}", 1); |  | ||||||
| 		cs.insertRule("a[data-mitm=y]:hover::before{content:'[\\26A1]'}", 2); |  | ||||||
| 		cs.insertRule("a[data-mitm=y]:hover{color:red !important}", 3); |  | ||||||
| 		cs.insertRule("img[data-mitm=y]{cursor:not-allowed !important;border:2px red dotted !important}", 4); |  | ||||||
| 		cs.insertRule("img[data-mitm=y]:hover{filter:sepia(20%)}", 5); |  | ||||||
| 	} |  | ||||||
| 	chrome.storage.local.get(['ign1', 'ign2', 'obs', 'dbg', 'alt'], (g) => { |  | ||||||
| 		let asked = ['', 'ss.wodferndripvpe6ib4uz4rtngrnzichnirgn7t5x64gxcyroopbhsuqd.onion', 'searxes.wodferndripvpe6ib4uz4rtngrnzichnirgn7t5x64gxcyroopbhsuqd.onion', 'searxes.eu.org', 'api.searxes.eu.org', 'ansero.wodferndripvpe6ib4uz4rtngrnzichnirgn7t5x64gxcyroopbhsuqd.onion', 'ansero.eu.org', 'addons.mozilla.org', 'addons.thunderbird.net', 'web.archive.org', 't.co']; |  | ||||||
| 		if (g.ign1 == 'y') { |  | ||||||
| 			asked.push(location.hostname); |  | ||||||
| 		} |  | ||||||
| 		let qstall = (g.ign2 == 'y') ? 'a[href]:not([data-mitm])' : 'a[href]:not([data-mitm]),img[src]:not([data-mitm])'; |  | ||||||
| 		let running = false; |  | ||||||
| 		function scanme() { |  | ||||||
| 			if (!running) { |  | ||||||
| 				running = true; |  | ||||||
| 				let unknown = []; |  | ||||||
| 				document.querySelectorAll(qstall).forEach(a => { |  | ||||||
| 					let aF = (a.tagName == 'A' ? (new URL(a.href)).hostname : (new URL(a.src)).hostname) || ''; |  | ||||||
| 					a.dataset.mitm = aF; |  | ||||||
| 					if (!asked.includes(aF)) { |  | ||||||
| 						asked.push(aF); |  | ||||||
| 						if (!/^(.*)\.(danwin1210\.me|wikipedia\.org|onion|i2p|invalid|test|local|localhost|([0-9]{1,3})|bbs|chan|cyb|dyn|geek|gopher|indy|libre|neo|null|o|oss|oz|parody|pirate|bit|lib|coin|emc|bazar|fur)$/.test(aF) && aF.length >= 4) { |  | ||||||
| 							unknown.push(aF); |  | ||||||
| 						} |  | ||||||
| 					} |  | ||||||
| 				}); |  | ||||||
| 				if (unknown.length > 0) { |  | ||||||
| 					chrome.runtime.sendMessage(unknown); |  | ||||||
| 				} |  | ||||||
| 				running = false; |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 		chrome.runtime.onMessage.addListener((request, sender, sendResponse) => { |  | ||||||
| 			if (request.length == 2) { |  | ||||||
| 				document.querySelectorAll(g.ign2 == 'y' ? "a[href][data-mitm='" + request[0] + "']" : "a[href][data-mitm='" + request[0] + "'],img[src][data-mitm='" + request[0] + "']").forEach(a => { |  | ||||||
| 					if (request[1]) { |  | ||||||
| 						a.dataset.mitm = 'y'; |  | ||||||
| 						if (g.alt == 'y' && a.tagName == 'A') { |  | ||||||
| 							if (!a.href.startsWith('https://web.archive.org/web/')) { |  | ||||||
| 								a.href = 'https://web.archive.org/web/' + a.href; |  | ||||||
| 							} |  | ||||||
| 							a.title = 'Arkivo!'; |  | ||||||
| 						} else { |  | ||||||
| 							a.title = 'MITM!'; |  | ||||||
| 						} |  | ||||||
| 					} else { |  | ||||||
| 						a.dataset.mitm = 'n'; |  | ||||||
| 					} |  | ||||||
| 				}); |  | ||||||
| 			} |  | ||||||
| 			sendResponse(true); |  | ||||||
| 			return; |  | ||||||
| 		}); |  | ||||||
| 		scanme(); |  | ||||||
| 		if (g.obs == 'y') { |  | ||||||
| 			(new MutationObserver(scanme)).observe(document, { |  | ||||||
| 				attributes: true, |  | ||||||
| 				attributeFilter: ['href'], |  | ||||||
| 				childList: true, |  | ||||||
| 				subtree: true |  | ||||||
| 			}); |  | ||||||
| 		} |  | ||||||
| 	}); |  | ||||||
| } |  | ||||||
|  | @ -1,17 +0,0 @@ | ||||||
| <html> |  | ||||||
|    <head> |  | ||||||
|       <meta http-equiv="content-type" content="text/html;charset=UTF-8"> |  | ||||||
|       <title>🗄</title> |  | ||||||
|    </head> |  | ||||||
|    <body style="display:none"> |  | ||||||
|       <br> |  | ||||||
|       <meter id="pbr" value="0" min="0" max="100" style="width:50%"></meter><br><br> |  | ||||||
|       <button type="button" id="ldb_i">  📝 <span tek="opximp"></span>  </button> |  | ||||||
|       <button type="button" id="ldb_c">  🗑 <span tek="opxclr"></span>  </button> |  | ||||||
|       <span style="display:none"> |  | ||||||
|       <input type="file" id="f" accept="text/plain"> |  | ||||||
|       <span tek="opxdone"></span> |  | ||||||
|       </span> |  | ||||||
|       <script src="localdb.js"></script> |  | ||||||
|    </body> |  | ||||||
| </html> |  | ||||||
|  | @ -1,67 +0,0 @@ | ||||||
| let irun = false; |  | ||||||
| document.addEventListener('DOMContentLoaded', () => { |  | ||||||
| 	chrome.storage.local.get(['mul'], g => { |  | ||||||
| 		let ul = g.mul || 'eo'; |  | ||||||
| 		fetch('i18n/' + ul + '.json', { |  | ||||||
| 			method: 'GET' |  | ||||||
| 		}).then(j => j.json()).then(j => { |  | ||||||
| 			document.querySelectorAll('span[tek]').forEach(x => { |  | ||||||
| 				x.innerText = j[x.getAttribute('tek')]; |  | ||||||
| 			}); |  | ||||||
| 			document.body.style.display = 'block'; |  | ||||||
| 		}); |  | ||||||
| 	}); |  | ||||||
| }); |  | ||||||
| document.getElementById('f').addEventListener('change', e => { |  | ||||||
| 	let ff = e.target.files[0]; |  | ||||||
| 	if (ff) { |  | ||||||
| 		let r = new FileReader(); |  | ||||||
| 		r.addEventListener('load', e => { |  | ||||||
| 			if (ff.size > 4) { |  | ||||||
| 				let g = e.target.result.replace(/(?:\r\n|\r|\n)/g, "\n").split("\n"); |  | ||||||
| 				if (g.length > 0) { |  | ||||||
| 					chrome.storage.local.get(['ldb'], gs => { |  | ||||||
| 						irun = true; |  | ||||||
| 						let cnt0, cnt1 = 0, |  | ||||||
| 							gc = 1, |  | ||||||
| 							db = JSON.parse(gs.ldb || '[]'); |  | ||||||
| 						cnt0 = db.length; |  | ||||||
| 						document.getElementById('pbr').max = g.length; |  | ||||||
| 						g.forEach(x => { |  | ||||||
| 							document.getElementById('pbr').value = gc; |  | ||||||
| 							gc++; |  | ||||||
| 							if (/^([0-9a-z.-]{4,400})\.([a-z]{2,40})$/.test(x) && !db.includes(x)) { |  | ||||||
| 								db.push(x); |  | ||||||
| 							} |  | ||||||
| 						}); |  | ||||||
| 						g = null; |  | ||||||
| 						cnt1 = db.length; |  | ||||||
| 						if (cnt1 != cnt0) { |  | ||||||
| 							chrome.storage.local.set({ |  | ||||||
| 								'ldb': JSON.stringify(db) |  | ||||||
| 							}); |  | ||||||
| 						} |  | ||||||
| 						chrome.runtime.sendMessage('dbmode,rl', () => { |  | ||||||
| 							alert(document.querySelector('span[tek=opxdone]').innerText + "\n\n" + cnt0 + " -> " + cnt1); |  | ||||||
| 							location.reload(); |  | ||||||
| 						}); |  | ||||||
| 					}); |  | ||||||
| 				} |  | ||||||
| 			} |  | ||||||
| 		}); |  | ||||||
| 		r.readAsText(ff); |  | ||||||
| 	} |  | ||||||
| }); |  | ||||||
| document.getElementById('ldb_i').addEventListener('click', () => { |  | ||||||
| 	if (!irun) { |  | ||||||
| 		document.getElementById('f').click(); |  | ||||||
| 	} |  | ||||||
| }); |  | ||||||
| document.getElementById('ldb_c').addEventListener('click', () => { |  | ||||||
| 	if (!irun) { |  | ||||||
| 		chrome.runtime.sendMessage('dbmode,cl', () => { |  | ||||||
| 			alert(document.querySelector('span[tek=opxdone]').innerText); |  | ||||||
| 			location.reload(); |  | ||||||
| 		}); |  | ||||||
| 	} |  | ||||||
| }); |  | ||||||
|  | @ -1,37 +0,0 @@ | ||||||
| { |  | ||||||
|    "manifest_version": 2, |  | ||||||
|    "name": "Ĉu ligoj estas vundeblaj al MITM-atako?", |  | ||||||
|    "version": "1.0.20.2", |  | ||||||
|    "minimum_chrome_version": "68", |  | ||||||
|    "homepage_url": "https://ss.wodferndripvpe6ib4uz4rtngrnzichnirgn7t5x64gxcyroopbhsuqd.onion/", |  | ||||||
|    "author": "Ss", |  | ||||||
|    "incognito": "split", |  | ||||||
|    "permissions": [ |  | ||||||
|       "storage", |  | ||||||
|       "unlimitedStorage" |  | ||||||
|    ], |  | ||||||
|    "icons": { |  | ||||||
|       "72": "icons/72.png" |  | ||||||
|    }, |  | ||||||
|    "background": { |  | ||||||
|       "scripts": [ |  | ||||||
|          "bg.js" |  | ||||||
|       ] |  | ||||||
|    }, |  | ||||||
|    "options_ui": { |  | ||||||
|       "chrome_style": false, |  | ||||||
|       "page": "cfg.html" |  | ||||||
|    }, |  | ||||||
|    "content_scripts": [ |  | ||||||
|       { |  | ||||||
|          "matches": [ |  | ||||||
|             "http://*/*", |  | ||||||
|             "https://*/*" |  | ||||||
|          ], |  | ||||||
|          "js": [ |  | ||||||
|             "cs.js" |  | ||||||
|          ], |  | ||||||
|          "run_at": "document_end" |  | ||||||
|       } |  | ||||||
|    ] |  | ||||||
| } |  | ||||||
|  | @ -1,8 +0,0 @@ | ||||||
| [//]: # (do not edit me; start) |  | ||||||
| 
 |  | ||||||
| Version: null |  | ||||||
| 
 |  | ||||||
| [//]: # (do not edit me; end) |  | ||||||
| 
 |  | ||||||
| - [More Information / Download](../../subfiles/about.urjm.md) |  | ||||||
| - Disclaimer: This is NOT a mirror of upstream git. Synchronization may be delayed. |  | ||||||
|  | @ -1,34 +0,0 @@ | ||||||
| let history = {}; |  | ||||||
| chrome.webRequest.onResponseStarted.addListener(i => { |  | ||||||
| 	if ([403, 406, 410, 429, 451, 462].includes(i.statusCode)) { |  | ||||||
| 		let iFQDN = (new URL(i.url)).hostname; |  | ||||||
| 		if (['searxes.eu.org', 'ansero.eu.org', 'ss.wodferndripvpe6ib4uz4rtngrnzichnirgn7t5x64gxcyroopbhsuqd.onion', 'searxes.wodferndripvpe6ib4uz4rtngrnzichnirgn7t5x64gxcyroopbhsuqd.onion', 'ansero.wodferndripvpe6ib4uz4rtngrnzichnirgn7t5x64gxcyroopbhsuqd.onion'].includes(iFQDN)) { |  | ||||||
| 			return; |  | ||||||
| 		} |  | ||||||
| 		let iServer = '?'; |  | ||||||
| 		i.responseHeaders.forEach(x => { |  | ||||||
| 			if (x.name == 'Server' || x.name == 'server') { |  | ||||||
| 				iServer = x.value; |  | ||||||
| 			} |  | ||||||
| 		}); |  | ||||||
| 		history[iFQDN] = [i.url, iServer, i.statusCode, (new Date()).toUTCString()]; |  | ||||||
| 	} |  | ||||||
| 	return; |  | ||||||
| }, { |  | ||||||
| 	urls: ['http://*/*', 'https://*/*'], |  | ||||||
| 	types: ['main_frame'] |  | ||||||
| }, ['responseHeaders']); |  | ||||||
| chrome.runtime.onMessage.addListener((request, sender, sendResponse) => { |  | ||||||
| 	if (request && sender) { |  | ||||||
| 		if (request == 'get') { |  | ||||||
| 			sendResponse(history); |  | ||||||
| 		} |  | ||||||
| 		if (request == 'clear') { |  | ||||||
| 			history = {}; |  | ||||||
| 			sendResponse(true); |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| }); |  | ||||||
| chrome.browserAction.onClicked.addListener(() => { |  | ||||||
| 	chrome.runtime.openOptionsPage(); |  | ||||||
| }); |  | ||||||
|  | @ -1,20 +0,0 @@ | ||||||
| <html> |  | ||||||
|    <head> |  | ||||||
|       <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate"> |  | ||||||
|       <meta http-equiv="content-type" content="text/html;charset=UTF-8"> |  | ||||||
|       <title>📝</title> |  | ||||||
|    </head> |  | ||||||
|    <body style="display:none"> |  | ||||||
|       <br><br> |  | ||||||
|       <b>Detaloj</b><br> |  | ||||||
|       <table style="width:90%" border=1> |  | ||||||
|          <tbody></tbody> |  | ||||||
|       </table> |  | ||||||
|       <br> |  | ||||||
|       <input id="clear" type="button" value=" Malplenigu liston "><br> |  | ||||||
|       <br><br> |  | ||||||
|       <b>Nur FQDN</b><br> |  | ||||||
|       <textarea id="export" cols=60 rows=20 readonly></textarea> |  | ||||||
|       <script src="log.js"></script> |  | ||||||
|    </body> |  | ||||||
| </html> |  | ||||||
|  | @ -1,18 +0,0 @@ | ||||||
| function newrow(w) { |  | ||||||
| 	let tt = document.getElementsByTagName('tbody')[0]; |  | ||||||
| 	let tr = tt.insertRow(tt.rows.length); |  | ||||||
| 	tr.innerHTML = w; |  | ||||||
| } |  | ||||||
| newrow('<tr><td><b>FQDN</b></td><td><b>Servilo</b></td><td><b>Stato</b></td><td><b>Kie</b></td><td><b>Kiam</b></td></tr>'); |  | ||||||
| chrome.runtime.sendMessage('get', g => { |  | ||||||
| 	for (let k in g) { |  | ||||||
| 		newrow('<tr><td>' + k + '</td><td>' + g[k][1] + '</td><td>' + g[k][2] + '</td><td><a href="' + g[k][0] + '" rel="noreferrer noopener" target="_blank"> 🔗 </a></td><td>' + g[k][3] + '</td></tr>'); |  | ||||||
| 		document.getElementById('export').innerHTML += k + "\n"; |  | ||||||
| 	} |  | ||||||
| }); |  | ||||||
| document.body.style.display = 'block'; |  | ||||||
| document.getElementById('clear').addEventListener('click', () => { |  | ||||||
| 	chrome.runtime.sendMessage('clear', () => { |  | ||||||
| 		location.reload(true); |  | ||||||
| 	}); |  | ||||||
| }); |  | ||||||
|  | @ -1,31 +0,0 @@ | ||||||
| { |  | ||||||
|    "manifest_version": 2, |  | ||||||
|    "name": "Kiu retejo malakceptis min?", |  | ||||||
|    "version": "1.0.2", |  | ||||||
|    "minimum_chrome_version": "60", |  | ||||||
|    "homepage_url": "https://ss.wodferndripvpe6ib4uz4rtngrnzichnirgn7t5x64gxcyroopbhsuqd.onion/", |  | ||||||
|    "author": "Ss", |  | ||||||
|    "incognito": "split", |  | ||||||
|    "permissions": [ |  | ||||||
|       "webRequest", |  | ||||||
|       "<all_urls>" |  | ||||||
|    ], |  | ||||||
|    "icons": { |  | ||||||
|       "72": "icons/72.png" |  | ||||||
|    }, |  | ||||||
|    "background": { |  | ||||||
|       "scripts": [ |  | ||||||
|          "bg.js" |  | ||||||
|       ] |  | ||||||
|    }, |  | ||||||
|    "options_ui": { |  | ||||||
|       "open_in_tab": true, |  | ||||||
|       "chrome_style": false, |  | ||||||
|       "page": "log.html" |  | ||||||
|    }, |  | ||||||
|    "browser_action": { |  | ||||||
|       "default_icon": { |  | ||||||
|          "72": "icons/72.png" |  | ||||||
|       } |  | ||||||
|    } |  | ||||||
| } |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue