User:Jnothman/automod.js
Appearance
Code that you insert on this page could contain malicious content capable of compromising your account. If you import a script from another page with "importScript", "mw.loader.load", "iusc", or "lusc", take note that this causes you to dynamically load a remote script, which could be changed by others. Editors are responsible for all edits and actions they perform, including by scripts. User scripts are not centrally supported and may malfunction or become inoperable due to software changes. A guide to help you find broken scripts is available. If you are unsure whether code you are adding to this page is safe, you can ask at the appropriate village pump. This code will be executed when previewing this page. |
Documentation for this user script can be added at User:Jnothman/automod. |
//<pre>
/* Edits a page according to parameters passed in the URL.
e.g. http://en.wikipedia.org/w/index.php?title=Foo&action=edit&amaddbefore=My+text&amsummary=Adding+My+text
will add the words "My text" at the start of the Foo article (on a new line),
with the given edit summary.
Other parameters include:
- amaddafter - adds text at the end of the article
- amatstring - makes amaddafter/before add after/before the first occurrence of the given string
- amclear - clears the article before adding text
- amfind and amreplace - replaces all occurrences of the find string by the replace string
*/
if ((typeof auto_mod_loaded == 'undefined')
|| !auto_mod_loaded) {
auto_mod_loaded = true;
auto_mod_exectd = false;
function am_make_url(title, before, after, summary) {
return 'http://en.wikipedia.org/w/index.php?title='+escape(title)+
'&action=edit'+
'&amaddbefore='+escape(before)+'&amaddafter='+escape(after)+
'&amsummary='+escape(summary);
}
function am_get_title() {
//Avoids problems with & etc, but will also include ' - edit this page', etc
return document.title.substr(0, document.title.lastIndexOf(' - Wikipedia, the free'));
}
function am_tidy_title()
{
var editlk = document.getElementById('ca-edit').getElementsByTagName('a')[0].href;
editlk = editlk.substring(editlk.indexOf('title=') + 6, editlk.lastIndexOf('&action=edit'));
return unescape(editlk);
}
function am_get_query_vars(){
var res = new Array();
var pairs = location.search.substring(1).split("&");
for(var i=0; i < pairs.length; i++){
var pair = pairs[i].split("=");
res[unescape(pair[0])] = unescape(pair[1]).replace(/\+/g, ' ');
}
return res;
}
function am_add_li(portlet, url, text, id, title) {
var tabs = document.getElementById('p-'+portlet).getElementsByTagName('ul')[0]
var na = document.createElement('a');
na.href = url;
na.id = id;
na.appendChild(document.createTextNode(text));
if (title)
na.title = title;
var li = document.createElement('li');
if (id)
li.id = id;
li.appendChild(na);
tabs.appendChild(li);
return li;
}
function am_guess_date() {
var monthnames = new Array( "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
var today = new Date();
return today.getUTCFullYear() + ' ' + monthnames[today.getUTCMonth()] + ' ' + today.getUTCDate();
}
function am_edit_string(s, insertion, loc) {
return s.substring(0, loc) + insertion + s.substring(loc);
}
function auto_mod() {
if (auto_mod_exectd)
return false;
auto_mod_exectd = true;
qvars = am_get_query_vars();
if (qvars['action']=='edit') {
if (qvars['amnull']) {
document.getElementById('editform').submit();
return true;
}
if (qvars['amaddafter'] || qvars['amaddbefore'] || qvars['amreplace']) {
var summ_el = document.getElementById('wpSummary');
if (summ_el.value != '' && summ_el.value.substr(summ_el.value.length - 3, 3) != '*/ ') {
// have already added summary
return true;
}
var text = document.getElementById('wpTextbox1');
if (qvars['amclear'])
text.value = '';
if (qvars['amfind'] && qvars['amreplace'])
text.value = text.value.replace(new RegExp(qvars['amfind'], "g"), qvars['amreplace']);
if (qvars['amaddafter']) {
var loc = text.value.length;
if (qvars['amatstring']) {
var newloc = text.value.indexOf(qvars['amatstring']);
if (newloc > -1) {
loc = newloc + qvars['amatstring'].length;
}
}
var toadd = qvars['amaddafter'];
if ((loc == text.value.length && text.value.charAt(loc - 1) != '\n') || '\n\r'.indexOf(text.value.charAt(loc)) > -1)
toadd = '\n' + toadd;
text.value = am_edit_string(text.value, toadd, loc);
}
if (qvars['amaddbefore']) {
var loc = 0;
if (qvars['amatstring']) {
var newloc = text.value.indexOf(qvars['amatstring']);
if (newloc > -1) {
loc = newloc;
}
}
var toadd = qvars['amaddbefore'];
if ((loc == 0 && text.value.charAt(loc) != '\n') || '\n\r'.indexOf(text.value.charAt(loc - 1)) > -1)
toadd += '\n';
text.value = am_edit_string(text.value, toadd, loc);
}
summ_el.value += (qvars['amsummary'] || ' ');
document.getElementById('editform').submit();
}
return true;
}
return false;
}
function am_add_onload(f) {
// borrowed from [[WP:US]]
if (window.addEventListener) window.addEventListener("load",f,false);
else if (window.attachEvent) window.attachEvent("onload",f);
}
} // end if auto_mod_loaded
//</pre>