From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.

$.when( mw.loader.using('mediawiki.util'), $.ready ).then( function(){

	

/* Define which tools to use */

if(typeof(dupdet) === "undefined"){ var dupdet = false; }// Currently defaulted to FALSE due to [[User talk:Dcoetzee#Dupe Detector OK?]] ( edit | wlh ) and the fact it may open a lot of tabs.

if(typeof(copyvios) === "undefined"){ var copyvios = true; }// Defaulted to TRUE as it opens just one tab

 

/* Get links from page */

var externalLinks = [];

$('a.external').each(function(){

    externalLinksexternalLinks.length = $(this).attr('href');

});

/* Clean out the duplicates */

externalLinks.sort().reverse();

var uniqueLinks = [];

$.each( externalLinks, function( i, el ){

    if($.inArray(el + '/', uniqueLinks) === -1 && $.inArray(el, uniqueLinks) === -1) uniqueLinks.push(el);

});

uniqueLinks.reverse();

/* Filter out the invalid ones */

var uniqueURLs = [];

$.each( uniqueLinks, function( i, el ){

    if(

/*     Internal WMF links            */

    el.search(/\/\/(enwp|([\w]{2}|test|meta)\.wiki[mp]edia)\.org\/?(w|wiki)?(\/index.php\?)?/i) === -1 &&/* Wikipedias */

    el.search(/\/\/en\.wikichecker\.com\/user\//i) === -1 &&/* Wikichecker */

    el.search(/\/\/tools(erver|\.wmflabs)\.org\/?/i) === -1 &&/* Tools and Labs */

/*     Stats.grok.[\w]{2}            */

    el.search(/\/\/stats\.grok\.[\w]{2}\/?/i) === -1 &&

/*     Wikiblame                     */

    el.search(/\/\/wikipedia\.ramselehof\.de\/wikiblame\.php/i) === -1 &&

/*     Google and Bing searches      */

    el.search(/\/\/(scholar|www).(bing|google).com\/(images|scholar|search|webhp)\?([\w_#&]*)?=/i) === -1 &&

/*     jstor search                  */

    el.search(/\/\/www\.jstor\.org\/action\/doBasicSearch\?Query=/i) === -1 &&

/*     Webchat / IRC                 */

    el.search(/(irc:\/\/|\/\/webchat.freenode.net\/?)/i) === -1 &&

/*     edwardbetts find link tool    */

    el.search(/\/\/edwardbetts\.com\/find_link\?q=/i) === -1

    ){

        if(el.search(/https?:/i) === -1){

            el= 'http:' + el;

        }

        uniqueURLs.push(el);

    }

});

 

/* TRON report */

 

function lpad(n, e, d) {

  var o = ''; if(typeof(d) === 'undefined'){ d='0'; } if(typeof(e) === 'undefined'){ e=2; }

  if(n.length < e){ for(var r=0; r < e - n.length; r++){ o += d; } o += n; } else { o=n; }

  return o;

}

var loadTS = new Date;

loadTS = lpad(loadTS.getUTCFullYear().toString(), 4) + lpad((loadTS.getUTCMonth()+1).toString(), 2) + lpad(loadTS.getUTCDate().toString(), 2) + lpad(loadTS.getUTCHours().toString(), 2) + lpad(loadTS.getUTCMinutes().toString(), 2) + lpad(loadTS.getUTCSeconds().toString(), 2);

var taskBUG = '== [[User:Technical 13/Scripts/CVD.js|CVD]] bug report for ' + mw.config.get('wgPageName') + ' by ' +  mw.config.get('wgUserName').replace(/ /g,'_') + ' ==\n';

taskBUG += '{'+'{User8|' + mw.config.get('wgUserName') + '}} <sup>([[Wikipedia:User access levels|<abbr title="' + mw.config.get('wgUserGroups').join(', ') + '">usergroups</abbr>]])</sup> loaded [[' + mw.config.get('wgPageName').replace(/_/g,' ') + ']] at {'+'{#time: H:i:s, F j, Y|' + loadTS + '}} (UTC).\n' + mw.config.get('wgUserName') + ' is ';

if(copyvios === true && dupdet === true){ taskBUG += 'opening all links using both copyvios and dupdet tools.'; }else if(copyvios === true && dupdet === false){ taskBUG += 'only opening all links using copyvios.'; }else if(copyvios === false && dupdet === true){ taskBUG += 'only opening all links using dupdet.'; }else{ taskBUG += 'not gaining any benefit from using this script'; if(confirm('You have installed the CVD script by [[User:Technical_13]], but have disabled all of its features.\nPlease contact [[User:Technical_13]] if you need assistance in setting up this script.\n\nClick "OK" to request assistance or "Cancel" to dismiss.')){/* OPEN MY USER TALK PAGE WITH A NEW SECTION IN EDIT MODE */} }

taskBUG += 'The script found the following ' + externalLinks.length.toString() + ' link(s) and filtered out ' + (externalLinks.length - uniqueLinks.length).toString() + ' duplicate(s) and ' + (uniqueLinks.length - uniqueURLs.length).toString() + ' invalid link(s).  This left the ' + uniqueURLs.length + ' URL(s) listed below.';

var linkBUG = '{'+'{Hst|reason=Links}}\n{'+'{Div col start|2}}\n# ' + externalLinks.join('\n# ') + '\n{'+'{Div col end}}\n{'+'{Hsb}}';

var urlBUG = '; URLs\n{'+'{Div col start|2}}\n# ' + uniqueURLs.join('\n# ') + '\n{'+'{Div col end}}';

if(externalLinks.length > 0){ var eL = true; } else { var el = false; } if(uniqueURLs.length > 0){ var eU = true; } else { var eU = false; } if(eL && eU){ var bugBUG = '{'+'{Hst|reason='; } if(eL){ bugBUG += 'Links'; } if(eL && eU){ bugBUG += ' and '; } if(eU){ bugBUG += 'URLs' } if(eL && eU){ bugBUG += ' returned by script}}\n'; } if(eL){ bugBUG += linkBUG; } if(eL && eU){ bugBUG += '\n'; } if(eU){ bugBUG += urlBUG; } if(eL && eU){ bugBUG += '\n{'+'{Hsb}}'; }

console.info('<!-- BUG REPORT HELPER CODE BELOW.  Do not include this comment. -->\n%s\n%s\n<!-- END OF BUG REPORT HELPER CODE. Do not include this comment. -->', taskBUG, bugBUG);

 

/* report TROFF */

 

if(copyvios === true && dupdet === true){var countURLs = ' (' + (uniqueURLs.length +1) + ')';}else if(copyvios === false && dupdet === true){var countURLs = ' (' + uniqueURLs.length + ')';}else if(copyvios === true && dupdet === false){var countURLs = ' (1)';}else{var countURLs = '';}

var toolTip = 'Scan for copyright violations in the ' + uniqueURLs.length + ' unique URL';

if(uniqueURLs.length !== 1){ toolTip += 's'; }

toolTip += ' detected using Earwig\'s Copyvio Detector & Derrick Coetzee\'s Duplication Detector tools.  (';

if(uniqueURLs.length > 9){ toolTip += 'WARNING: '; }

toolTip += 'This will open ' + (uniqueURLs.length +1) + ' new tabs/windows.)';

var scanCV = mw.util.addPortletLink(

    'p-tb',

    '#',

    'CVDetector' + countURLs,

    'p-cv-detector',

    toolTip

);

 

$( scanCV ).click( function ( e ) {

    e.preventDefault();

    if(dupdet){

        if(uniqueURLs.length > 19){

            var lottaTabs = confirm('Are you SURE that you want to open ' + (uniqueURLs.length +1) + ' new tabs?');

            if(lottaTabs === true){

                for(var i=0; i < uniqueURLs.length; i++){

                    window.open('http://tools.wmflabs.org/dupdet/compare.php?url1=' + encodeURIComponent('https:' + mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/index.php?title=' + mw.config.get('wgPageName')) + '&url2=' + encodeURIComponent(uniqueURLsi]), '_blank');

                }

            } else {

                alert('Only opening tabs for the first five links then');

               for(var i=0; i < 5; i++){

                    window.open('http:///tools.wmflabs.org/dupdet/compare.php?url1=' + encodeURIComponent('https:' + mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/index.php?title=' + mw.config.get('wgPageName')) + '&url2=' + encodeURIComponent(uniqueURLsi]), '_blank');

                }

            }

        } else {

            for(var i=0; i < uniqueURLs.length; i++){

                window.open('http:///tools.wmflabs.org/dupdet/compare.php?url1=' + encodeURIComponent('https:' + mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/index.php?title=' + mw.config.et('wgPageName')) + '&url2=' + encodeURIComponent(uniqueURLsi]), '_blank');

            }

        }

    }

    if(copyvios){

        window.open('http://tools.wmflabs.org/copyvios?lang=' + mw.config.get('wgContentLanguage') + '&project=' + mw.config.get('wgSiteName').toLowerCase() + '&title=' + encodeURIComponent(mw.config.get('wgPageName')), '_blank');

    }

});



});



/* Ping API */// Disabling for now per request of [[User:The Earwig]] because it is too many queries on the API due to cost concerns

/*

var CopyViosAPIQ = {

	action: 'search',

	project: mw.config.get('wgNoticeProject'),

	lang: mw.config.get('wgPageContentLanguage'),

	oldid: mw.config.get('wgRevisionId')

};

$.get("//tools.wmflabs.org/copyvios/api.json", CopyViosAPIQ, function(CopyViosAPIR){

	console.log(CopyViosAPIR.best.confidence);

	var bestMatchPercent = " (" + Math.round(CopyViosAPIR.best.confidence*1000)/10 + "%)";

	$( '#p-cv-detector' ).html($( '#p-cv-detector' ).html() + bestMatchPercent)

});

*/
From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.

$.when( mw.loader.using('mediawiki.util'), $.ready ).then( function(){

	

/* Define which tools to use */

if(typeof(dupdet) === "undefined"){ var dupdet = false; }// Currently defaulted to FALSE due to [[User talk:Dcoetzee#Dupe Detector OK?]] ( edit | wlh ) and the fact it may open a lot of tabs.

if(typeof(copyvios) === "undefined"){ var copyvios = true; }// Defaulted to TRUE as it opens just one tab

 

/* Get links from page */

var externalLinks = [];

$('a.external').each(function(){

    externalLinksexternalLinks.length = $(this).attr('href');

});

/* Clean out the duplicates */

externalLinks.sort().reverse();

var uniqueLinks = [];

$.each( externalLinks, function( i, el ){

    if($.inArray(el + '/', uniqueLinks) === -1 && $.inArray(el, uniqueLinks) === -1) uniqueLinks.push(el);

});

uniqueLinks.reverse();

/* Filter out the invalid ones */

var uniqueURLs = [];

$.each( uniqueLinks, function( i, el ){

    if(

/*     Internal WMF links            */

    el.search(/\/\/(enwp|([\w]{2}|test|meta)\.wiki[mp]edia)\.org\/?(w|wiki)?(\/index.php\?)?/i) === -1 &&/* Wikipedias */

    el.search(/\/\/en\.wikichecker\.com\/user\//i) === -1 &&/* Wikichecker */

    el.search(/\/\/tools(erver|\.wmflabs)\.org\/?/i) === -1 &&/* Tools and Labs */

/*     Stats.grok.[\w]{2}            */

    el.search(/\/\/stats\.grok\.[\w]{2}\/?/i) === -1 &&

/*     Wikiblame                     */

    el.search(/\/\/wikipedia\.ramselehof\.de\/wikiblame\.php/i) === -1 &&

/*     Google and Bing searches      */

    el.search(/\/\/(scholar|www).(bing|google).com\/(images|scholar|search|webhp)\?([\w_#&]*)?=/i) === -1 &&

/*     jstor search                  */

    el.search(/\/\/www\.jstor\.org\/action\/doBasicSearch\?Query=/i) === -1 &&

/*     Webchat / IRC                 */

    el.search(/(irc:\/\/|\/\/webchat.freenode.net\/?)/i) === -1 &&

/*     edwardbetts find link tool    */

    el.search(/\/\/edwardbetts\.com\/find_link\?q=/i) === -1

    ){

        if(el.search(/https?:/i) === -1){

            el= 'http:' + el;

        }

        uniqueURLs.push(el);

    }

});

 

/* TRON report */

 

function lpad(n, e, d) {

  var o = ''; if(typeof(d) === 'undefined'){ d='0'; } if(typeof(e) === 'undefined'){ e=2; }

  if(n.length < e){ for(var r=0; r < e - n.length; r++){ o += d; } o += n; } else { o=n; }

  return o;

}

var loadTS = new Date;

loadTS = lpad(loadTS.getUTCFullYear().toString(), 4) + lpad((loadTS.getUTCMonth()+1).toString(), 2) + lpad(loadTS.getUTCDate().toString(), 2) + lpad(loadTS.getUTCHours().toString(), 2) + lpad(loadTS.getUTCMinutes().toString(), 2) + lpad(loadTS.getUTCSeconds().toString(), 2);

var taskBUG = '== [[User:Technical 13/Scripts/CVD.js|CVD]] bug report for ' + mw.config.get('wgPageName') + ' by ' +  mw.config.get('wgUserName').replace(/ /g,'_') + ' ==\n';

taskBUG += '{'+'{User8|' + mw.config.get('wgUserName') + '}} <sup>([[Wikipedia:User access levels|<abbr title="' + mw.config.get('wgUserGroups').join(', ') + '">usergroups</abbr>]])</sup> loaded [[' + mw.config.get('wgPageName').replace(/_/g,' ') + ']] at {'+'{#time: H:i:s, F j, Y|' + loadTS + '}} (UTC).\n' + mw.config.get('wgUserName') + ' is ';

if(copyvios === true && dupdet === true){ taskBUG += 'opening all links using both copyvios and dupdet tools.'; }else if(copyvios === true && dupdet === false){ taskBUG += 'only opening all links using copyvios.'; }else if(copyvios === false && dupdet === true){ taskBUG += 'only opening all links using dupdet.'; }else{ taskBUG += 'not gaining any benefit from using this script'; if(confirm('You have installed the CVD script by [[User:Technical_13]], but have disabled all of its features.\nPlease contact [[User:Technical_13]] if you need assistance in setting up this script.\n\nClick "OK" to request assistance or "Cancel" to dismiss.')){/* OPEN MY USER TALK PAGE WITH A NEW SECTION IN EDIT MODE */} }

taskBUG += 'The script found the following ' + externalLinks.length.toString() + ' link(s) and filtered out ' + (externalLinks.length - uniqueLinks.length).toString() + ' duplicate(s) and ' + (uniqueLinks.length - uniqueURLs.length).toString() + ' invalid link(s).  This left the ' + uniqueURLs.length + ' URL(s) listed below.';

var linkBUG = '{'+'{Hst|reason=Links}}\n{'+'{Div col start|2}}\n# ' + externalLinks.join('\n# ') + '\n{'+'{Div col end}}\n{'+'{Hsb}}';

var urlBUG = '; URLs\n{'+'{Div col start|2}}\n# ' + uniqueURLs.join('\n# ') + '\n{'+'{Div col end}}';

if(externalLinks.length > 0){ var eL = true; } else { var el = false; } if(uniqueURLs.length > 0){ var eU = true; } else { var eU = false; } if(eL && eU){ var bugBUG = '{'+'{Hst|reason='; } if(eL){ bugBUG += 'Links'; } if(eL && eU){ bugBUG += ' and '; } if(eU){ bugBUG += 'URLs' } if(eL && eU){ bugBUG += ' returned by script}}\n'; } if(eL){ bugBUG += linkBUG; } if(eL && eU){ bugBUG += '\n'; } if(eU){ bugBUG += urlBUG; } if(eL && eU){ bugBUG += '\n{'+'{Hsb}}'; }

console.info('<!-- BUG REPORT HELPER CODE BELOW.  Do not include this comment. -->\n%s\n%s\n<!-- END OF BUG REPORT HELPER CODE. Do not include this comment. -->', taskBUG, bugBUG);

 

/* report TROFF */

 

if(copyvios === true && dupdet === true){var countURLs = ' (' + (uniqueURLs.length +1) + ')';}else if(copyvios === false && dupdet === true){var countURLs = ' (' + uniqueURLs.length + ')';}else if(copyvios === true && dupdet === false){var countURLs = ' (1)';}else{var countURLs = '';}

var toolTip = 'Scan for copyright violations in the ' + uniqueURLs.length + ' unique URL';

if(uniqueURLs.length !== 1){ toolTip += 's'; }

toolTip += ' detected using Earwig\'s Copyvio Detector & Derrick Coetzee\'s Duplication Detector tools.  (';

if(uniqueURLs.length > 9){ toolTip += 'WARNING: '; }

toolTip += 'This will open ' + (uniqueURLs.length +1) + ' new tabs/windows.)';

var scanCV = mw.util.addPortletLink(

    'p-tb',

    '#',

    'CVDetector' + countURLs,

    'p-cv-detector',

    toolTip

);

 

$( scanCV ).click( function ( e ) {

    e.preventDefault();

    if(dupdet){

        if(uniqueURLs.length > 19){

            var lottaTabs = confirm('Are you SURE that you want to open ' + (uniqueURLs.length +1) + ' new tabs?');

            if(lottaTabs === true){

                for(var i=0; i < uniqueURLs.length; i++){

                    window.open('http://tools.wmflabs.org/dupdet/compare.php?url1=' + encodeURIComponent('https:' + mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/index.php?title=' + mw.config.get('wgPageName')) + '&url2=' + encodeURIComponent(uniqueURLsi]), '_blank');

                }

            } else {

                alert('Only opening tabs for the first five links then');

               for(var i=0; i < 5; i++){

                    window.open('http:///tools.wmflabs.org/dupdet/compare.php?url1=' + encodeURIComponent('https:' + mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/index.php?title=' + mw.config.get('wgPageName')) + '&url2=' + encodeURIComponent(uniqueURLsi]), '_blank');

                }

            }

        } else {

            for(var i=0; i < uniqueURLs.length; i++){

                window.open('http:///tools.wmflabs.org/dupdet/compare.php?url1=' + encodeURIComponent('https:' + mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/index.php?title=' + mw.config.et('wgPageName')) + '&url2=' + encodeURIComponent(uniqueURLsi]), '_blank');

            }

        }

    }

    if(copyvios){

        window.open('http://tools.wmflabs.org/copyvios?lang=' + mw.config.get('wgContentLanguage') + '&project=' + mw.config.get('wgSiteName').toLowerCase() + '&title=' + encodeURIComponent(mw.config.get('wgPageName')), '_blank');

    }

});



});



/* Ping API */// Disabling for now per request of [[User:The Earwig]] because it is too many queries on the API due to cost concerns

/*

var CopyViosAPIQ = {

	action: 'search',

	project: mw.config.get('wgNoticeProject'),

	lang: mw.config.get('wgPageContentLanguage'),

	oldid: mw.config.get('wgRevisionId')

};

$.get("//tools.wmflabs.org/copyvios/api.json", CopyViosAPIQ, function(CopyViosAPIR){

	console.log(CopyViosAPIR.best.confidence);

	var bestMatchPercent = " (" + Math.round(CopyViosAPIR.best.confidence*1000)/10 + "%)";

	$( '#p-cv-detector' ).html($( '#p-cv-detector' ).html() + bestMatchPercent)

});

*/

Videos

Youtube | Vimeo | Bing

Websites

Google | Yahoo | Bing

Encyclopedia

Google | Yahoo | Bing

Facebook