User:Dan Koehl/common.js

mw.loader.load('//en.wikipedia.org/w/index.php?title=User:Uziel302/typo.js&action=raw&ctype=text/javascript');

mw.loader.load( "https://meta.wikimedia.org/w/index.php?title=User:Zhaofeng_Li/Reflinks.js&action=raw&ctype=text/javascript" );

mw.util.addPortletLink('p-personal', 'https://en.wikipedia.org/wiki/Wikipedia:STiki/leaderboard', 'sTiki', 'id', 'tooltip'); mw.util.addPortletLink('p-personal', 'https://en.wikipedia.org/wiki/Wikipedia:List_of_Wikipedians_by_number_of_edits#2001%E2%80%933000', '2500', 'id', 'tooltip'); mw.util.addPortletLink('p-personal', 'https://en.wikipedia.org/wiki/Special:CentralAuth/Dan_Koehl', 'SUL', 'id', 'tooltip'); mw.util.addPortletLink('p-personal', 'https://species.wikimedia.org/wiki/User:Dan_Koehl', 'Species', 'id', 'tooltip'); mw.util.addPortletLink('p-personal', 'https://www.wikidata.org/wiki/User:Dan_Koehl', 'Data', 'id', 'tooltip');addPortletLink('p-personal', 'https://tools.wmflabs.org/meta/stalktoy/', 'StalkToy', 'id', 'tooltip'); mw.util.addPortletLink('p-personal', 'https://tools.wmflabs.org/whois/gateway.py', 'Whois', 'id', 'tooltip'); mw.util.addPortletLink('p-personal', 'https://en.wikipedia.org/wiki/Special:BlankPage/RTRC', 'RTRC', 'id', 'tooltip');

var ptLinksToAdd = [ {               label: "New pages", title: "Feed of recently created pages", url: "/wiki/Special:NewPagesFeed", index: 5 },       {                label: "AfD", url: "/wiki/Wikipedia:Articles_for_Deletion", index: 6 } ]; importScript('User:IagoQnsi/addptlinks.js');

// User:Caorongjin/wordcount mw.loader.load('//en.wikipedia.org/w/index.php?title=User%3ACaorongjin%2Fwordcount.js&action=raw&ctype=text/javascript');

importScript('User:MusikAnimal/previewUserboxes.js'); //Linkback: User:MusikAnimal/previewUserboxes.js Added by Script installer

importScript('User:Frietjes/findargdups.js'); // User:Frietjes/findargdups

importScript('User:Evad37/MoveToDraft.js'); //Linkback: User:Evad37/MoveToDraft.js // (mw.loader.getState('ext.gadget.rtrc') ? mw.loader.load('ext.gadget.rtrc') : mw.loader.load('https://www.mediawiki.org/w/load.php?debug=false&modules=ext.gadget.rtrc&lang=' + mw.config.get('wgUserLanguage', 'en')));

importScript('User:Lourdes/PageCuration.js'); // Linkback: User:Lourdes/PageCuration.js

importScript('User:Lourdes/SpecialNewPages.js'); // Linkback: User:Lourdes/SpecialNewPages.js

/* JWB Javascript Wiki Browser from :en:User:Joeytje50/JWB */ importScript( 'User:Joeytje50/JWB.js/load.js' ); // Backlink: User:Joeytje50/JWB.js/load.js

/* * Automatically tick the "Move subpages" option when moving pages. */ var moveSubpagesBox = document.getElementsByName("wpMovesubpages")[0]; if (moveSubpagesBox !== undefined) { moveSubpagesBox.checked = true; }

importScript('User:Cameltrader/Advisor.js'); importScript('User:PC-XT/Advisor.js'); // User:PC-XT/Advisor document.write(' ');

/* Ajax file move module, version [0.0.4c] Originally from: http://en.wikipedia.org/wiki/User:Splarka/ajaxfilemove.js Notes: var sfmMoveToken = ''; var sfmNewTitle = ''; if(mw.config.get('wgNamespaceNumber') == 6 && mw.config.get('wgCurRevisionId')) { $(function {   var move = document.getElementById('ca-move');    if(!move) return    var sm = mw.util.addPortletLink('p-cactions','javascript:sfmInit','speedy move','ca-gonzales','Speed move this File','i',move);  }); } function sfmInit { var def = mw.config.get('wgCanonicalNamespace') + ':'; var suggest = document.querySelectorAll('span.media-move-suggestion'); if(suggest.length > 0) def = getInnerText(suggest[0]) var newtitle = prompt('Move file to page:',def); if(!newtitle) return if(newtitle.toLowerCase.indexOf(mw.config.get('wgCanonicalNamespace').toLowerCase + ':') != 0) { alert('You can\'t move files to other namespaces'); return; } var oldext = mw.config.get('wgPageName').split('.')[mw.config.get('wgPageName').split('.').length-1]; var newext = newtitle.split('.')[newtitle.split('.').length-1]; if(oldext.toLowerCase != newext.toLowerCase) { var conf = confirm('Warning: you appear to be changing this file\'s extension from "' + oldext + '" to "' + newext + '".\nWhile this is works sometimes for very old files uploaded with the wrong\nextension, this is rare. Are you really sure you want to try that?'); if(!conf) return } var bar = document.getElementById('contentSub') || document.getElementById('topbar'); var out = document.createElement('pre'); out.setAttribute('id','sfm-output'); appendCSS('#sfm-output {border:1px solid black !important;padding:.5em;overflow:auto;font-size:120%}'); bar.appendChild(out); var badchars = /([#<>\[\]{}|\/]|\:.*\:)/; if(newtitle == mw.config.get('wgPageName') || newtitle.indexOf(mw.config.get('wgCanonicalNamespace') + ':') != 0 || badchars.test(newtitle)) { out.appendChild(document.createTextNode('! That seems like a bad title to me: ' + newtitle + '')); return; } out.appendChild(document.createTextNode('* Input accepted, fetching edit/move tokens and page text...\n')); document.getElementById('ca-gonzales').style.display = 'none'; var url = mw.config.get('wgScriptPath') + '/api.php?action=query&prop=info|revisions&rvprop=content|timestamp&indexpageids=1&intoken=edit|move&format=json&titles=' + encodeURIComponent(mw.config.get('wgPageName'));
 * Very complex script, but very simple operation:
 * Go to a File: page, click [speedy move], enteew name.
 * Specifically written to move requested images, summaries and template removal regex are hard coded.
 * Framework can be forked though.
 * Does not suppress redirects, a feature could be written though.
 * This would need more complex input, than a prompt.

if(typeof sajax_init_object === 'undefined') return; var req = sajax_init_object; req.open('GET', url, true); req.onreadystatechange = function { if(req.readyState == 4 && req.status == 200) { eval("sfmTokens(" + req.responseText + ",'" + req.responseText.replace(/\'/g,"`") + "')"); } }  sfmNewTitle = newtitle; req.send(null); } function sfmTokens(obj,txt) { //http://test.wikipedia.org/w/api.php?action=query&prop=info|revisions&rvprop=content|timestamp&indexpageids=1&intoken=edit|move&format=jsonfm&titles=File:Test.png var out = document.getElementById('sfm-output'); if(obj['error']) { out.appendChild(document.createTextNode('! Api error: ' + obj['error']['code'] + ' - ' + obj['error']['info'] + '\n')); return; } if(!obj['query'] || !obj['query']['pageids'] || !obj['query']['pages'][obj['query']['pageids'][0]] || !obj['query']['pages'][obj['query']['pageids'][0]]['movetoken'] || !obj['query']['pages'][obj['query']['pageids'][0]]['edittoken'] || !obj['query']['pages'][obj['query']['pageids'][0]]['revisions'][0]['timestamp'] || !obj['query']['pages'][obj['query']['pageids'][0]]['revisions'][0]['*']) { out.appendChild(document.createTextNode('? Unexpected response: ' + txt + '\n')); return; } if(obj['query']['pages'][obj['query']['pageids'][0]]['redirect']) { out.appendChild(document.createTextNode('! This file is apparently a redirect, and should not be moved again.\n')); return; } var edittoken = obj['query']['pages'][obj['query']['pageids'][0]]['edittoken']; var movetoken = obj['query']['pages'][obj['query']['pageids'][0]]['movetoken']; var pagetext = obj['query']['pages'][obj['query']['pageids'][0]]['revisions'][0]['*']; var timestamp = obj['query']['pages'][obj['query']['pageids'][0]]['revisions'][0]['timestamp']; var startstamp = obj['query']['pages'][obj['query']['pageids'][0]]['starttimestamp']; out.appendChild(document.createTextNode('* Got tokens and text, searching for templates...\n')); var templates = /\{\{[\s\n\t]*(ifr|rename[ _]*media|rename[ _]*image|ImageRename|rename)[\s\n\t]*(\|[^\}]*|)\}\}/ig; var found = templates.test(pagetext); if(!found) { out.appendChild(document.createTextNode('! No automatically removable templates found, please continue manually.')); return; } out.appendChild(document.createTextNode('* Move template(s) found and removed, attempting edit...\n')); pagetext = pagetext.replace(templates,''); var params = 'action=edit&format=json&title=' + encodeURIComponent(mw.config.get('wgPageName')) + '&text=' + encodeURIComponent(pagetext) + '&token=' + encodeURIComponent(edittoken) + '&summary=' + encodeURIComponent('Automatic removal of requested move templates in preparation for move.') + '&minor=1&basetimestamp=' + timestamp.replace(/[^\d]/g,''); if(startstamp) params += '&starttimestamp=' + startstamp.replace(/[^\d]/g,'') var url = mw.config.get('wgScriptPath') + '/api.php';

if(typeof sajax_init_object === 'undefined') return; var req = sajax_init_object; req.open('POST', url, true); req.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); req.setRequestHeader('Content-length', params.length); req.setRequestHeader('Connection', 'close'); req.onreadystatechange = function { if(req.readyState == 4 && req.status == 200) { eval("sfmEdit(" + req.responseText + ",'" + req.responseText.replace(/\'/g,"`") + "')"); } }  sfmMoveToken = movetoken; req.send(params); } function sfmEdit(obj,txt) { var out = document.getElementById('sfm-output'); if(obj['error']) { out.appendChild(document.createTextNode('! Api error: ' + obj['error']['code'] + ' - ' + obj['error']['info'] + '\n* Please finish manually.')); return; } else if(obj['edit'] && obj['edit']['result']) { out.appendChild(document.createTextNode('* Edit returned as "' + obj['edit']['result'] + '", attempting to move page to ' + sfmNewTitle + '... \n')); } else { out.appendChild(document.createTextNode('? Unexpected response: ' + txt + '\n* Please finish manually.')); return; } var def = "Semi-automated file move"; var reason = document.querySelectorAll('span.media-move-reason'); if(reason.length > 0) def = getInnerText(reason[0]) var params = 'action=move&format=json&token=' + encodeURIComponent(sfmMoveToken) + '&movetalk=1&from=' + encodeURIComponent(mw.config.get('wgPageName')) + '&to=' + encodeURIComponent(sfmNewTitle) + '&reason=' + encodeURIComponent( 'using User:Splarka/ajaxfilemove.js;' +def ); var url = mw.config.get('wgScriptPath') + '/api.php'; if(typeof sajax_init_object === 'undefined') return; var req = sajax_init_object; req.open('POST', url, true); req.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); req.setRequestHeader('Content-length', params.length); req.setRequestHeader('Connection', 'close'); req.onreadystatechange = function { if(req.readyState == 4 && req.status == 200) { eval("sfmMove(" + req.responseText + ",'" + req.responseText.replace(/\'/g,"`") + "')"); } }  req.send(params); } function sfmMove(obj,txt) { var out = document.getElementById('sfm-output'); if(obj['error']) { out.appendChild(document.createTextNode('* Api error: ' + obj['error']['code'] + ' - ' + obj['error']['info'] + '\n* Please finish manually.')); } else if(obj['move'] && obj['move']['from'] && obj['move']['to']) { out.appendChild(document.createTextNode('* File ' + obj['move']['from'] + ' moved to ' + obj['move']['to'] + '\n* Be sure to ')); var a = document.createElement('a'); a.setAttribute('href',mw.config.get('wgScript') + '?title=Special:WhatLinksHere&hidelinks=1&hidetrans=1&target=' + encodeURIComponent(obj['move']['to'])); a.appendChild(document.createTextNode('Check for double redirects!')); out.appendChild(a); } else { out.appendChild(document.createTextNode('? Unexpected response: ' + txt + '\n* Please finish manually.')); } }

//Mass rollback function //Written by John254 //Adapted from User:Mr.Z-man/rollbackSummary.js //Instructions: Selecting the "rollback all" tab when viewing a user's contributions history //will open all rollback links displayed there. (Use with caution) function rollbackEverythingButton { var hasRollback = document.querySelectorAll("span.mw-rollback-link"); if (hasRollback[0] && (document.title.indexOf("User contributions") != -1) ) { mw.util.addPortletLink('p-cactions', 'javascript:rollbackEverything', "rollback all", "ca-rollbackeverything", "rollback all edits displayed here"); } } $(rollbackEverythingButton); function rollbackEverything { for (var i in document.links) { if (document.links[i].href.indexOf('action=rollback') != -1) { window.open(document.links[i].href); }   } }

/*

var ptLinksToAdd = [ {               label: "Snuggle", title: "Snuggle", url: "/wiki/Wikipedia:Snuggle", index: 5 },

{               label: "New pages", title: "Feed of recently created pages", url: "/wiki/Special:NewPagesFeed", index: 5 },       {                label: "AfD", url: "/wiki/Wikipedia:Articles_for_Deletion", index: 6 },       {                label: "Edit score", url: "/wiki/Wikipedia:List_of_Wikipedians_by_number_of_edits", index: 7 },       {                label: "Meta", url: "https://meta.wikimedia.org/wiki/User:Dan_Koehl", index: 8 },       {                label: "Species", url: "https://species.wikimedia.org/wiki/User:Dan_Koehl", index: 9 },       {                label: "sv:Voy", url: "https://sv.wikipedia.org/wiki/voy:Anv%C3%A4ndare:Dan_Koehl", index: 10 },       {                label: "dawiki", url: "https://da.wikipedia.org/wiki/Bruger:Dan_Koehl", index: 11 },       {                label: "Commons", url: "https://commons.wikimedia.org/wiki/User:Dan_Koehl", index: 12 },       {               label: "Warn",

url: "https://en.wikipedia.org/wiki/Category:User_warning_templates", index: 13

},       {               label: "RVAN" url: "Wikipedia:Administrator_intervention_against_vandalism", }

]; importScript('User:IagoQnsi/addptlinks.js');



/* Adds a toolbox link to do a copyvio check on the given page. */

mw.loader.using("mediawiki.util", function {   mw.util.addPortletLink( "p-tb", "https://tools.wmflabs.org/copyvios/?lang=" + mw.config.get("wgContentLanguage") + "&project=" + mw.config.get("wgSiteName").toLowerCase + "&title=" + encodeURIComponent(mw.config.get("wgPageName")), "Copyvio check", "t-copyvio-check", "Check this page for copyright violations" ); });

$(function {	var cn = "";	if (mw.config.get('wgAction') === 'edit&redlink')		mw.loader.using('moment', function  { setTimeout(function {			$('#wpUploadDescription').val( '\n'+ ''+ cn +' är en svensk adelsätt med ursprung från Y, som adlades och introducerades på Sveriges Riddarhus som adlig ätt nummer. En gren av ätten upphöjdes till friherrlig rang.\n\n'+ '== Adliga ätten X nummer ==\n'+ 'X adlades av och ätten introducerades samma år på Riddarhuset som adlig ätt med nummer Y. \n\n'+ '== Friherrliga ätten X nummer ==\n'+ '\n'+ 'XX upphöjdes till friherre YYYY och hans ätt introducerades samma år som friherrlig ätt '+ cn +' med nummer YY på Riddarhuset. \n\n'+ '== Referenser ==\n'+ '*\n'+ '}}\n\n'+ '=== Noter ===\n'+ ' \n\n'+ 'Kategori:Svenska adelsätter\n'+ 'Kategori:Svenska friherrliga ätter\n' );		}, 100 );	});	//Om inte vapen finns, ladda upp vapen på commons	else		$('#n-uploadbtn>a').attr('href','//commons.wikimedia.org/w/index.php?title=Special:Upload&uselang='+ ((mw.config.get('wgUserLanguage') === 'en')?'': mw.config.get('wgUserLanguage')) + 'ownwork'); });