User:Titodutta/scripts/SearchHelper.js

/* The script adds a few options beside article Main script by Writ and may be seen at https://en.wikipedia.org/wiki/User:Writ_Keeper/Scripts/googleTitle.js Script improved by User:SD0001, see diff https://en.wikipedia.org/wiki/Special:ComparePages?page1=User%3ATitodutta%2Fscripts%2FSearchHelper.js&rev1=&page2=User%3ASD0001%2FSearchHelper.js&rev2=&action=&diffonly=&unhide=&diffmode=source

Attribution: Code rewritten by Mr. Stradivarius on 8 December 2021 to fix cross-site scripting vulnerability in the Wikidata link, see details here https://en.wikipedia.org/w/index.php?title=User%3ATitodutta%2Fscripts%2FSearchHelper.js&type=revision&diff=1059282493&oldid=1053495203

$(document).ready(function {	function getSubject	{		let pageName = mw.config.get("wgTitle");		if (pageName.charAt(pageName.length - 1) == ")") {			return pageName.substring(0, pageName.lastIndexOf("(") - 1);		}		else		{			return pageName;		}	}	function escapeSubject(subject)	{		return encodeURIComponent(subject.replace(/_/g, " "))	}	function createLink(url, display)	{		return $("")			.attr("href", url)			.append($(" ") .css("font-size", "x-small") .text(display) );	}

function appendLinks($node, links) {		$.each(			links,			function (index, $link)			{				$node.append(document.createTextNode(" "), $link);			}		); }	$firstHeading = $("#firstHeading"); if(mw.config.get("wgCanonicalNamespace") == "" || mw.config.get("wgCanonicalNamespace") == "Draft") {		let subject = getSubject; let links = [ /*WRS from User:Sam Sailor/Scripts/WRStitle.js*/ createLink(				"https://www.google.com/custom?hl=en&cx=007734830908295939403%3Agalkqgoksq0&cof=FORID%3A13%3BAH%3Aleft%3BCX%3AWikipedia%2520Reference%2520Search&q=" + escapeSubject(subject),				"WRS"			), createLink(				"http://www.google.com/search?q=" + escapeSubject(subject) + "+-wikipedia.org",				"Google search"			), createLink(				"https://news.google.com/search?q=" + escapeSubject(subject) + "+-wikipedia.org",				"Google News"			), createLink(				"https://www.google.com/search?tbm=bks&q=" + escapeSubject(subject) + "+-wikipedia.org",				"Google Books"			), createLink(				"https://www.google.com/search?tbm=isch&q=" + escapeSubject(subject),				"Google images"			), createLink(				"https://search.yahoo.com/search?p=" + escapeSubject(subject),				"Yahoo"			), createLink(				"https://duckduckgo.com/?q=" + escapeSubject(subject),				"DuckDuckGo"			), createLink(				"https://www.youtube.com/results?search_query=" + escapeSubject(subject),				"YouTube"			), createLink(				"https://commons.wikimedia.org/w/index.php?search=" + escapeSubject(subject),				"Commons"			), createLink(				"http://www.flickr.com/search/?l=commderiv&q=" + escapeSubject(subject),				"Flickr (CC)"			), createLink(				"https://www.imdb.com/find?q=" + escapeSubject(subject),				"IMDb"			), createLink(				"https://www.jstor.org/action/doBasicSearch?Query=" + escapeSubject(subject),				"JSTOR"			), createLink(				"http://edwardbetts.com/find_link/" + escapeSubject(subject),				"Find link"			), createLink(				"https://www.google.com/custom?hl=en&cx=014196815420355252912:fownxmjrhle&cof=FORID%3A13%3BAH%3Aleft%3BCX%3AWikipedia%2520Reference%2520Search&q=" + escapeSubject(subject),				"Indian newspapers"			) ];		appendLinks( $firstHeading, links ); }

if (mw.config.get("wgCanonicalNamespace") == "" && $('#t-wikibase').length ) {		let link = createLink(			$('li#t-wikibase a:first').attr('href'),			"Wikidata"		); appendLinks( $firstHeading, [link] ); }

});