User:Jnothman/automod.js
From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. In Internet Explorer and Firefox, hold down the Ctrl key and click the Refresh or Reload button. Opera users have to clear their caches through Tools→Preferences, see the instructions for Opera. Konqueror and Safari users can just click the Reload button.
//<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>

