xvideos filterer

Filter out users or videos based on keywords or names

As of 2019-01-20. See the latest version.

// ==UserScript==
// @name        xvideos filterer
// @namespace   http://uhighiuhhreguhregregje.org
// @description Filter out users or videos based on keywords or names
// @include     http://*.xvideos.com/*
// @include     http://xvideos.com/*
// @include     https://*.xvideos.com/*
// @include     https://xvideos.com/*
// @version     1.2
// @grant       none
// ==/UserScript==

var namelist = new Array("Faggots", "Pornloverx", "Abusing Her", "Angelbuzz", "Lunarrosecrow", "Old Spunkers", "Legal Porno", "Sara Jay", "Throatpukeaddict92", "Shemale20", "Older Woman Fun", "Martoni", "Pervcity", "Cuties Galore", "Slanglongwood", "Bigjov1991", "Onlyoneme24", "Sissytanner", "Qonupevil", "Hollboobs94", "Oddfuturewolfgang", "Fuckupayme2014", "Hardcorehunter", "Thewhiteghetto", "Bignina27", "Amazingly1", "Saranudetee830", "Penny1994", "Thirstybro Quench", "Tiggerdodson", "Southgirls", "Indgnato", "Jamie-black", "Derfgrmn31", "Wicked Sexy Melanie", "Porncucumber", "Carlita Sanz", "Zoe Zane", "Taytay727", "Juhni", "Katavery", "Eagerlymadalyn", "Bredogg", "Tommyx33", "Milf In Love", "Jrocdaprince", "Vikings Of Porn", "Edwinan25", "Tsujikazuki", "Personaking", "KG Tatted 214", "Miniairmac", "Wesley-gta", "Mbolo105", "Blackinseeds", "Herowill", "Mirandastone", "Porn Pros", "Blackjrxiii", "Blackdongs", "Littlesanju143", "Sexiesposa", "Sandeep141981", "Privateblack", "21Sextreme", "Bigredvick", "Galindoj", "Matures HD", "Grandma Friends", "Sandeep141981", "Drfatt", "Frankiebank", "Pure Mature", "Frankiebank", "Lusty Grandmas", "Grandma", "Grandpa", "Grandpas Fuck Teens", "Johnnyboy", "Miss Brat Perversions", "Dcups", "Bigblackck", "Grbch849", "Mmm 100", "Sexy Hub", "Hornypavel", "Priapo69pipi", "Lorrenz777", "Chubby Cam Show Babe", "Takkan123456789", "Wankz", "Puba", "TugPass", "Facesittingbutts", "Juje43", "Mature Nl", "Jack Off To Me", "Bbc Brandon233", "Anal Penetrator", "Danielleo", "Sylse", "Danf", "Kahinomohino", "Teikoku", "Cutepixxx", "Jackpot", "Hornyguyau", "Rang3d", "Ignitionfaygo", "Saohk1", "Sharptiger", "Wowfucker46h", "Dig73", "Dester555", "Ciurybury", "Mrblackcock007", "Lonzen", "Edjr80", "Diceler1983", "Bonitaa80", "Aqa1234564", "Arqwe2cr52247", "Whitegirlemily", "Rebecca", "Jomeflaco", "Busines", "Spanker75", "Mr Siren", "Swamphing53", "Jmaup", "Freaknasty2", "Legal Porno", "Thisguypumpz", "All Ass April", "Chick Pass", "Bussin-in-your-mouth", "MMV", "Bhadiekush", "Sk33t", "Dickherwell", "Blackbonanzaa", "Topfreex", "Homiwaltx7", "Edjr80", "Longpipe336", "Arica-goin-dumb", "Chicuaca", "Justice09", "Facials25", "Roddpowers", "Melindax1", "Loncoleche", "Penitrater00069", "Cesancha159", "Inranla", "Hey Milf", "Lifeofpablo2", "Ravenrith", "Pisser Ca", "Ravenrith", "Blowjobfan1993", "Xxxrooster", "Flightrisk66", "Trazcy Kush", "Phillycheesesteak215", "Sheenaq25", "Hot-roxanne", "Longnydick", "Tamaras25", "Pussylovin33", "Legendarypipegame", "Isabellab24", "Seedsippers", "Ponnuponnu", "Sex Mission", "My Wife Luna", "Tefhun", "Zobonuzu740", "Josh111222", "Rosical24", "Charlee Chase", "Msnovember", "Marleyvom", "Wrektit", "King-slayer-8728", "Flixxxman", "Yandelsantos", "Mary--24", "Scrappersupernova", "Sexsaoyweb", "Heather-from-denver", "Dannypatrickcarter67", "Atheoga", "Drew5431", "Chicago-mia", "Frisco-anna", "Bubalikescake", "Creekside33", "Sozio18", "More Free Porn", "Xbestofpornx", "Throatpieworld", "Reczek95", "Tinylatina", "Keim92", "Tthroat", "Headluver12", "Ressetty", "Sex Feene Ya Bish", "Userrest", "Me15092534", "Citiboi23", "Draenei Slut", "Hell0everyone", "J-o-c-e", "Thug-nasty-entertainment", "Bigkddick", "Beryozkina", "Panxhoss", "Sesiptafe1987");
var tagslist = new Array("gay", "homosexual", "plate", "shitty", "tranny", "kicking", "in balls", "shemale", "retarted", "torture", "murdered", "obese", "diarrhea", "tranny", "shit", "ruined", "needle", "needles", "torture", "spike", "sneeze", "sneezing", "shitting", "queef", "queefing", "grandma", "diseased", "disease", "fart", "farts", "anale", "diaper", "hentai", "puking", "shemales", "executed", "twinks", "execute", "granny", "grannys", "grandpa", "fishbone", "scat", "nasty", "slashed", "cutting", "cuts", "abortion", "isis", "scatlover", "preggo", "burning", "birth", "beheading", "maggot", "maggots", "magot", "shity", "behead", "vomitting", "vomiting", "smut", "beaten", "beating", "constipated", "choked", "feces", "pooping", "pooped", "hanging", "hanged", "fecal", "doughnuts", "vampiress", "kills", "killing", "puke", "pukes", "seizure", "shits", "vomits", "vomit", "ransom", "kidnapped", "hostage", "preggo", "killed", "stabbed", "horrible", "bloody", "dead", "anal", "pregnant", "scat", "baby", "shit", "poop", "crap", "fisting", "shooting", "stabbing", "shitting", "crapping", "snuf", "snuff", "robber", "turd", "shot", "robbery", "diapered", "stretching", "sliced", "fist", "fisting", "shots", "horrific", "horriffic", "injury", "fishes", "hits truck", "hits card", "bus hits", "runs over", "crushed", "injured", "horror", "gunshot", "gunshots", "slitting", "poltergeist", "asphixiated", "pitbull", "strangled", "broomhandle", "dismembered", "broomhandle", "plunger", "dismember", "vivisect", "open chest", "wound", "chest wound", "to death", "asphixiate", "abducted", "hanging", "gaping", "criminals", "shemaale", "dead", "toilet", "explosion", "explode", "explodes", "seagal", "exploding", "suitcase", "torched", "corpse", "cannibal", "canibal", "unlucky", "terror", "roast", "roasting", "toasty", "splitting", "fight", "clown", "circus", "midget", "sick", "ghost", "asphyxia", "pooping", "drowned", "drowns" ,"asphyxiate", "halloween", "wreck", "wrecked", "chokes", "brown", "guy eating", "survival", "face of war", "clamped", "simpleton", "suffocating", "clothespins", "tased", "hung up", "corngirl", "corncob", "knife", "corn", "fisted", "huge ass", "lactating", "corn girl", "meaty", "hand caught", "machine", "butthole", "anally destroyed", "anally", "pussy drill", "pussydrill", "a fish", "painal", "blown off", "blown up", "prostate", "poopy", "shemales", "buttfuck", "mommy", "analyzed", "assriding", "anal-porn", "ass-fucking", "ass-fuck", "assfuck", "assfucking","analporn", "punching", "kicking");
var nlcond = tagslist.join(" ");

function xpath(doc, xpath) {
	return doc.evaluate(xpath, doc, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
    }

function escapeRegExp(str) {
  return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
}

var newAllDivs = xpath(document, "//div[@id='content']/div/div[starts-with(@id,'video_')]/div[@class='thumb-under']/p/a");
var allNameDivs = xpath(document, "//div[@id='content']/div/div[starts-with(@id,'video_')]/div[@class='thumb-under']/p[@class='metadata']/span/a");


for (var x=0;x<newAllDivs.snapshotLength;x++) {
	var text = newAllDivs.snapshotItem(x).textContent;
	var allWords = text.split(" ");
  var applied = 0;
	for (var z=0; z<allWords.length; z++) {
    for (var x1=0; x1<tagslist.length; x1++) {
			var w1 = new RegExp('\b'+escapeRegExp(tagslist[x1])+'\b','gmi');
		  //var w2 = new RegExp(escapeRegExp(tagslist[x1])+' ','gmi');
		  var w3 = new RegExp(' '+escapeRegExp(tagslist[x1])+' ','gmi');
			var w4 = new RegExp('^'+escapeRegExp(tagslist[x1])+' ','gmi');
			var w5 = new RegExp(' '+escapeRegExp(tagslist[x1])+'$','gmi');
	  	if (text.match(w1) || text.match(w3) || text.match(w4) || text.match(w5)) {
			 newAllDivs.snapshotItem(x).parentNode.parentNode.parentNode.setAttribute("style", "display:none!important;visibility:hidden!important;");
			 applied=1;
			 break;
		  }
		 }
		if (applied==1) {
		 break;
		}
	
  }
	try {
	var name = allNameDivs.snapshotItem(x).textContent;
	for (var z=0; z<namelist.length; z++) {
			var w1 = new RegExp('\b'+escapeRegExp(namelist[z])+'\b','gmi');
		  //var w2 = new RegExp(escapeRegExp(tagslist[z])+' ','gmi');
		  var w3 = new RegExp(' '+escapeRegExp(namelist[z])+' ','gmi');
			var w4 = new RegExp('^'+escapeRegExp(namelist[z])+' ','gmi');
			var w5 = new RegExp(' '+escapeRegExp(namelist[z])+'$','gmi');
			//if (text.match(w1) || text.match(w3) || text.match(w4) || text.match(w5)) {
			if (name==namelist[z]) {
				allNameDivs.snapshotItem(x).parentNode.parentNode.parentNode.parentNode.setAttribute("style", "display:none!important;visibility:hidden!important;");
			 applied=1;
			 break;
			}
		if (applied==1) {
		 break;
		}
	}
	}catch(e) {}
	
}