User:Ark25/WikiSearch

From Wikipedia, the free encyclopedia
// ==UserScript==

// @name          Ark's Wiki Search - version 3.1b

// @namespace     http://ro.wikipedia.org/wiki/User:Ark25

// @description   A basic example of Greasemonkey that causes an alert when a certain string is found.

// @include        https://*.wikipedia.org/*

// ==/UserScript==

var Manifest = "   This program is in the Public Domain. You can use it as you wish.   ";
var Manual = "First install GreaseMonkey addon for Firefox";
var Manual = "Then save this text into a file named 'WikiSearch.user.js' on your disk and then browse with Firefox to file:///C:/MyFolder/WikiSearch.user.js";
var Version_Log = "v1 (2014-03-15) - simple search";
var Version_Log = "v2 (2014-03-15) - multiple word search";
var Version_Log = "v3 (2014-03-16) - search only when editing, search for commas not followed by spaces";

// Set Warn_Me_Only_When_Editing to  1  -  if you want the script to warn you only when you edit Wikipedia pages (i.e. it won't warn you when you just read Wikipedia pages)
var Warn_Me_Only_When_Editing = 1;

// set Case_Insensitive to  1  -  if you want the search to be case insensitive
var Case_Insensitive = 0;

var My_Search_Strings = ["{{def", "nascut", "născut"];

var u = document.URL;
var d = content.document.body.innerHTML;
if (Warn_Me_Only_When_Editing) if (!(u.match(/action=edit/))) throw new Error();
var d = d.replace(/[\n\r]/g, "");

// Keep only what's inside the edit window (if you edit the page)
var d = d.replace(/.*wpTextbox1/, "");
var d = d.replace(/<\/textarea>.*/, "");

// Keep only what's inside the edit window (if you are just viewing the page)
var d = d.replace(/.*<!-- start content -->/, "");
var d = d.replace(/<!-- end content -->.*/, "");

if (Case_Insensitive) {
  var d = d.toLowerCase();
  for (i=0;i<My_Search_Strings.length;i++) My_Search_Strings[i] = My_Search_Strings[i].toLowerCase();
}

for (i=0;i<My_Search_Strings.length;i++) 
  if (d.indexOf(My_Search_Strings[i]) >= 0) alert("Page contains " + My_Search_Strings[i] + " !!");

// Uncomment the next lines to search for a COMMA that is not followed by SPACE
var d = d.replace(/, /g, "");
var d = d.replace(/[0-9],[0-9]/g, "");
if (d.indexOf(",") >= 0) {
  var n = d.indexOf(",")
  var s = d.substr(n, 20);
  alert("Page contains COMMA that is not followed by SPACE !!  " + "  —  " + s);
}