User:Pathoschild/common.js

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.
///NOTE TO SELF: switch to monobook skin to use production scripts
// <nowiki><pre>
mw.loader.load( "https://meta.wikimedia.org/w/index.php?title=User:Zhaofeng_Li/Reflinks.js&action=raw&ctype=text/javascript" );//importScript('User:Ucucha/HarvErrors.js');
importScript("User:PleaseStand/segregate-refs.js");
importScript("User:Ohconfucius/test/EngvarB.js");	//Engvar
importScript("User:Ohconfucius/dashes.js");
importScript("User:Splarka/diffreveal.js");       //reveals unicode characters when viewing diffs
importScript("User:Ohconfucius/script/flagcruft.js");   //flagcruft, tablesort
importScript("User:Ohconfucius/test/formatgeneral.js");
importScript("User:Ohconfucius/script/tometricunits.js");
importScript("User:Ohconfucius/test/MOSNUM dates.js");
importScript("User:Ohconfucius/test/Common Terms.js");
importScript("User:Ohconfucius/test/Sources.js");
importScript("User:Ohconfucius/script/foreigndates.js");
mw.loader.load('//en.wikipedia.org/w/index.php?title=User:Joeytje50/JWB.js/load.js&action=raw&ctype=text/javascript');

importScript('User:Evad37/duplinks-alt.js'); // [[User:Evad37/duplinks-alt]]

// a collection of single-purpos regexes are stored at "User:Ohconfucius/test/throwaway_regexes"

/**** dyk ****/
// [[User:Dr pda/prosesize.js]]
importScript('User:Dr pda/prosesize.js'); //[[User:Dr pda/prosesize.js]]


/**** afd helper ****/
mw.loader.load//en.wikipedia.org/w/index.php?title=User:Jnothman/afd_helper/script.js&action=raw&ctype=text/javascript');

/* This is to keep track of who is using this extension: [[User:Jnothman/afd_helper/script.js]] */

/** ------------------------------------------------------------------------ **/
/// EDIT SUMMARIES & USE DMY TEMPLATE

function Ohc_edit_summary1() {
	//Add a tag to the summary box
//	setoptions(minor='true')	//removed ",watch='false'" in response to user notification 13 Nov. 2010
	setreason('[[User:Ohconfucius/script|Script]]-assisted [[WP:MOS|style]] fixes', 'appendonce');
	doaction('diff');
}

function Ohc_edit_summary2(editor) {
	editor
		.options({ minor: false, watch: false })
		.appendEditSummary('[[User:Ohconfucius/script|Script]]-assisted [[WP:MOS|style]] fixes and per [[Help:Citation Style 1|CS1]]')
		.clickDiff();
}

function Ohc_for_AWB(editor) {
	editor
		.replace(/([\s\t]+)(?:regex|txt.value=txt.value.replace)\(\//gi, '$1ArticleText=Regex.Replace(ArticleText, @"(?i)')
		.replace(/\/gi, [\'\"]/gi, '", "')
		.replace(/\'(\);[\s\t]*)/gi, '"$1');
}

function Ohc_transcripts() {
	regex(/(\d?:|)\d\d?:\d\d\n/gi, '');
	regex(/(\w,?)\s?\n/gi, '$1 ');

}

function Ohc_for_Petscan() {
	regex(/\[\[([^|\]\s]+) ([^|\]\s]+) ([^|\]\s]+) ([^|\]\s]+) ([^|\]\s]+) ([^|\]\s]+) ([^|\]\s]+) ([^|\]\s]+)\|([^\]]*)\]\]/gi, '[https://en.wikipedia.org/w/index.php?title=$1_$2_$3_$4_$5_$6_$7_$8&action=edit $1_$2_$3_$4_$5_$6_$7_$8]');
	regex(/\[\[([^|\]\s]+) ([^|\]\s]+) ([^|\]\s]+) ([^|\]\s]+) ([^|\]\s]+) ([^|\]\s]+) ([^|\]\s]+)\|([^\]]*)\]\]/gi, '[https://en.wikipedia.org/w/index.php?title=$1_$2_$3_$4_$5_$6_$7&action=edit $1_$2_$3_$4_$5_$6_$7]');
	regex(/\[\[([^|\]\s]+) ([^|\]\s]+) ([^|\]\s]+) ([^|\]\s]+) ([^|\]\s]+) ([^|\]\s]+)\|([^\]]*)\]\]/gi, '[https://en.wikipedia.org/w/index.php?title=$1_$2_$3_$4_$5_$6&action=edit $1_$2_$3_$4_$5_$6]');
	regex(/\[\[([^|\]\s]+) ([^|\]\s]+) ([^|\]\s]+) ([^|\]\s]+) ([^|\]\s]+)\|([^\]]*)\]\]/gi, '[https://en.wikipedia.org/w/index.php?title=$1_$2_$3_$4_$5&action=edit $1_$2_$3_$4_$5]');
	regex(/\[\[([^|\]\s]+) ([^|\]\s]+) ([^|\]\s]+) ([^|\]\s]+)\|([^\]]*)\]\]/gi, '[https://en.wikipedia.org/w/index.php?title=$1_$2_$3_$4&action=edit $1_$2_$3_$4]');
	regex(/\[\[([^|\]\s]+) ([^|\]\s]+) ([^|\]\s]+)\|([^\]]*)\]\]/gi, '[https://en.wikipedia.org/w/index.php?title=$1_$2_$3&action=edit $1_$2_$3]');
	regex(/\[\[([^|\]\s]+) ([^|\]\s]+)\|([^\]]*)\]\]/gi, '[https://en.wikipedia.org/w/index.php?title=$1_$2&action=edit $1_$2]');
	regex(/\[\[([^|\]\s]+)\|([^\]]*)\]\]/gi, '[https://en.wikipedia.org/w/index.php?title=$1&action=edit $1]');
}

function Ohc_insert_tag() {
 var txt=document.editform.wpTextbox1;
// current month-year
    var currentDate = new Date();
    var currmonth = currentDate.getMonth();
    var curryear  = currentDate.getFullYear();
    var myMonths = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
    var curryyyymm = myMonths[currmonth] + ' ' + curryear;

/// insert 'use British English' template
    txt.value=txt.value.replace(/\{\{(Use Australian English\s?)(\|[^}]*)?\}\}/gi, '{{$1|date='+curryyyymm+'}}');
    txt.value=txt.value.replace(/\{\{(Use (?:Bangladeshi|Commonwealth|Pakistani|Irish|Scottish|Singapore|Hong Kong|Indian|New Zealand|South African) English\s?)(\|[^}]*)?\}\}/gi, '{{EngvarB|date='+curryyyymm+'}}');
    txt.value=txt.value.replace(/\{\{(?:use British(?: \(Oxford\)|) English)(\|[^}]*)?\}\}/gi, '{{EngvarB|date='+curryyyymm+'}}');
    txt.value=txt.value.replace(/\{\{Engvar[A-Z][a-z]*\s?(\|[^}]*)?\}\}/gi, '{{EngvarB|date='+curryyyymm+'}}');

    var rxpdd = new RegExp("{{(Use (?:Australian|Scottish|British|Indian|New Zealand|South African) English|EngvarB)\\|date="+curryyyymm+"}}", "gi");
    var dflagfound = txt.value.search(rxpdd);
    if (dflagfound == -1)
    {
        txt.value='{{EngvarB|date='+curryyyymm+'}}\r\n'+txt.value;
    }
}

/** ------------------------------------------------------------------------ **/
/// COMPOSITE SCRIPT DRIVERS

function ONETOUCH_DMY(editor) {
// Add a tag to the summary box
 var txt=document.editform.wpTextbox1;
	//Ohc_ref_format();
	Ohc_retrain_links();
	Ohc_CommonTerms();
	//ohc_replaceflag();
	ohc_delink_dates(editor);
	ohc_expand_ref_dates(editor);
	ohc_protect_dates(editor);
	ohc_fix_unambiguous_dates(editor);
	ohc_body_dates_to_dmy(editor);
	ohc_delink_year_in_X(editor);
	ohc_dmy_publication_dates(editor);
	ohc_delink_ISO_to_dmy(editor);
	ohc_unprotect_dates(editor);
	autoEdFunctions(); //dashes
	Ohc_formatgeneral();
	ohc_sources_driver(editor);
	Ohc_edit_summary2(editor);
}

function ONETOUCH_MDY(editor) {
// Add a tag to the summary box
 var txt=document.editform.wpTextbox1;
//	Ohc_ref_format();
	Ohc_CommonTerms();

	ohc_delink_dates(editor);
	ohc_expand_ref_dates(editor);
	ohc_protect_dates(editor);
	ohc_fix_unambiguous_dates(editor);
	ohc_body_dates_to_mdy(editor);
	ohc_delink_year_in_X(editor);
	ohc_mdy_publication_dates(editor);
	ohc_delink_ISO_to_mdy(editor);
	ohc_unprotect_dates(editor);
	autoEdFunctions(); //dashes
	Ohc_formatgeneral();
	ohc_sources_driver(editor);
	Ohc_edit_summary2(editor);
}

function ohc_sources_driver(editor) {
      Ohc_remove_urls();
      ohc_protect_urls();
      Ohc_sources_prep();
      ohc_foreign_dates();
      Ohc_unpipe();
      Ohc_dab_news_sources();
      Ohc_sourcename();
      Ohc_sourcework();
      Ohc_sourcepub();
      Ohc_sourceagency();
      Ohc_redo_pipe();
      Ohc_publishers();
      Ohc_sources_cleanup();
      ohc_unprotect_urls();
}

function ONETOUCH_FMT(editor) {
// Add a tag to the summary box
 var txt=document.editform.wpTextbox1;
	Ohc_CommonTerms();
	autoEdFunctions(); //dashes
	ohc_sources_driver(editor);
	Ohc_formatgeneral();
	Ohc_edit_summary2(editor);
}

/** ------------------------------------------------------------------------ **/


/**
 * TemplateScript adds configurable templates and scripts to the sidebar, and adds an example regex editor.
 * @see https://meta.wikimedia.org/wiki/TemplateScript
 * @update-token [[File:Pathoschild/templatescript.js]]
 */
$.ajax('//tools-static.wmflabs.org/meta/scripts/pathoschild.templatescript.js', { dataType:'script', cache:true }).then(function() {
	pathoschild.TemplateScript.add(
		[
			//{ name: 'delink dates', script: function(editor) { ohc_delink_dates(editor); }, tooltip: 'delink dates' },
			{ name: 'One Touch: DMY', script: function(editor) { ONETOUCH_DMY(editor); }, tooltip: 'day month + CT' },
			{ name: 'One Touch: MDY', script: function(editor) { ONETOUCH_MDY(editor); }, tooltip: 'month day + CT' },
			{ name: 'One Touch: FORMAT', script: function(editor) { ONETOUCH_FMT(editor); }, tooltip: 'general fmt, CT + cites' },
			//{ name: 'Make AWB', script: function(editor) { Ohc_for_AWB(editor); }, tooltip: 'Make AWB code' },
			//{ name: 'Expand dates', script: function(editor) { ohc_refs_to_yyyymmdd(editor); }, tooltip: 'yyyy-mm-dd' },
			{ name: 'SLASH-US', script: function(editor) { ohc_US_slash_dates_to_mdy(editor); }, tooltip: 'US-slash' },
			{ name: 'SLASH-UK', script: function(editor) { ohc_UK_slash_dates_to_dmy(editor); }, tooltip: 'UK-slash' },
		],
		{ category: 'General' }
	);
});
// </pre></nowiki>