Jump to content

User:Peruvianllama/monobook.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.
//Interiot's javascript edit counter
if (document.title.indexOf('User:Interiot/Tool2/code.js') != -1) {
  mw.loader.load('https://en.wikipedia.org/w/index.php?title=User:Interiot/Tool2/code.js&action=raw&ctype=text/javascript'); }


/////////////////////////////////////////////////////////////////////////////////////////////
// -----------------------------------------------------------------------------
// God-like Monobook skin
// (c) 2005 Sam Hocevar <sam@zoy.org>
// $Id: godmode-light.js 907 2005-06-28 12:57:06Z sam $
// -----------------------------------------------------------------------------
// Blatently stolen from [[User:Bmicomp/monobook.js]]. Don't ask me how anything works.
// Modified to use test-n, test2-n and test3-n. Remember to put the article title in the tag.
// See [[User:Drini]] for information on the -n templates.
// 2005-09-02 Modified VfD functions to reference new AfD pages.
//
// Please note that this version has been edited, possibly extensively, by User:Peruvianllama

// <pre><nowiki>

//Sam's ubergodmode (previously godmode-light).
//document.write('<SCRIPT SRC="http://sam.zoy.org/wikipedia/godmode-light.js"><\/SCRIPT>');
//document.write('<SCRIPT SRC="http://sam.zoy.org/wikipedia/ubergodmode.js"><\/SCRIPT>');
// (Also at http://share.zopatista.com/WikiPedia/godmode-light.js)
//Llama:
document.write('<script type="text/javascript" src="' 
             + 'http://en.wikipedia.org/w/index.php?title=User:Peruvianllama/ubergodmode.js' 
             + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');

// [[User:Lupin/popups.js]] - please include this line 
//document.write('<script type="text/javascript" src="' 
//             + 'http://en.wikipedia.org/w/index.php?title=User:Lupin/popups.js' 
//             + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');

// Filter changes live
// [[User:Lupin/recent2.js]] - please include this line
//document.write('<script type="text/javascript" src="' 
//             + 'http://en.wikipedia.org/w/index.php?title=User:Lupin/recent2.js' 
//             + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');


popupFixDabs=true;

//////////////////////////////////////////
// Tabs by Korath
// returns <li><a href="url">name</a></li>
/////////////////////////////////////////
function addlilink(url, name)
{
  var na = document.createElement('a');
  na.setAttribute('href', url);

  var txt = document.createTextNode(name);
  na.appendChild(txt);

  var li = document.createElement('li');
  li.appendChild(na);
  return li;
}

// appends msg to the currently-editted page, sets the summary to summ,
// and marks or unmarks the Watch this page checkbox according to watch.
function edit_summary_watch(msg, summ, watch)
{
  var f = document.editform, t = f.wpTextbox1;
// Peruvianllama: Removed the extra '\n' inserted before the test- message
//  if (t.value.length > 0)
//    t.value += '\n';
  t.value += msg;
  f.wpSummary.value = summ;
  f.wpWatchthis.checked = watch;
}


// appends msg to the currently-editted page, sets the summary to summ,
// and marks or unmarks the Watch this page checkbox according to watch.
function add_del_tag(msg, summ, watch)
{
  var f = document.editform, t = f.wpTextbox1;
    msg += '\n';
    msg += t.value;
    t.value = msg;
  f.wpSummary.value = summ;
  f.wpWatchthis.checked = watch;
}
  
// adds various tabs to call the above
function add_tabs()
{
  var c1 = document.getElementById('column-one');
  var tabs = c1.getElementsByTagName('div')[0].getElementsByTagName('ul')[0];

  // Only add for pages with "Editing User talk:" somewhere in the title
  if (document.title.indexOf("Editing User talk:") != -1)
    {
  // Customized edit summaries follow, by Peruvianllama
      tabs.appendChild(addlilink('javascript:edit_summary_watch("{{" + "subst:Test-n|}} --~" + "~" + "~" + "~", "vandalism notice:" + " test1-n", true, 1)',"1"));
      tabs.appendChild(addlilink('javascript:edit_summary_watch("{{" + "subst:Test1a-n|}} --~" + "~" + "~" + "~", "vandalism notice:" + " test1a-n", true, 1)',"1a"));
      tabs.appendChild(addlilink('javascript:edit_summary_watch("{{" + "subst:Test2-n|}} --~" + "~" + "~" + "~", "vandalism notice:" + " test2-n", true, 1)',"2"));
      tabs.appendChild(addlilink('javascript:edit_summary_watch("{{" + "subst:Test2a-n|}} --~" + "~" + "~" + "~", "vandalism notice:" + " test2a-n", true, 1)',"2a"));
      tabs.appendChild(addlilink('javascript:edit_summary_watch("{{" + "subst:Test3-n|}} --~" + "~" + "~" + "~", "vandalism notice:" + " test3-n", true, 1)',"3"));
      tabs.appendChild(addlilink('javascript:edit_summary_watch("{{" + "subst:Test4}} --~" + "~" + "~" + "~", "vandalism notice:" + " test4", true, 1)',"4"));
      tabs.appendChild(addlilink('javascript:edit_summary_watch("{{" + "subst:Test5}} --~" + "~" + "~" + "~", "vandalism notice:" + " you have been blocked", true, 1)',"5"));
      tabs.appendChild(addlilink('javascript:edit_summary_watch("{{" + "subst:blanking}} --~" + "~" + "~" + "~", "vandalism notice:" + " blanking", true, 1)',"B"));
//      tabs.appendChild(addlilink('javascript:edit_summary_watch("{{" + "subst:Vanity|}} --~" + "~" + "~" + "~", "vandalism notice:" + " vanity", true, 1)',"Vnty"));
      tabs.appendChild(addlilink('javascript:edit_summary_watch("{{" + "subst:spam1}} --~" + "~" + "~" + "~", "vandalism notice:" + " spam1", true, 1)',"S1"));
      tabs.appendChild(addlilink('javascript:edit_summary_watch("{{" + "subst:spam2}} --~" + "~" + "~" + "~", "vandalism notice:" + " spam2", true, 1)',"S2"));
//      tabs.appendChild(addlilink('javascript:edit_summary_watch("{{" + "subst:rvfd|}} --~" + "~" + "~" + "~", "vandalism notice:" + " rvfd", true, 1)',"rvfd"));
      tabs.appendChild(addlilink('javascript:edit_summary_watch("{{" + "subst:nothanks|}} --~" + "~" + "~" + "~", "vandalism notice:" + " nothanks", true, 1)',"nothanks"));


    }
   if (document.title.indexOf("Editing User talk:") == -1 && document.title.indexOf("Editing User:") == -1 && document.title.indexOf("Editing Wikipedia:Articles for deletion") == -1 && document.title.indexOf("Editing ") == 0)
   {
      tabs.appendChild(addlilink('javascript:add_del_tag("{{" + "d}}", "speedy: {{" + "d}}", true, 1)',"d"));
      tabs.appendChild(addlilink('javascript:add_del_tag("{{" + "db|}}", "speedy: {{" + "db}}", true, 1)',"db"));
      tabs.appendChild(addlilink('javascript:add_del_tag("{{" + "nn-bio}}", "speedy: nn-bio (vanity)", true, 1)',"nn-bio"));
      tabs.appendChild(addlilink('javascript:add_del_tag("{{" + "empty}}", "speedy: empty", true, 1)',"nc"));
      tabs.appendChild(addlilink('javascript:add_del_tag("{{" + "db-attack}}", "speedy: db-attack", true, 1)',"attack"));
      tabs.appendChild(addlilink('javascript:add_del_tag("{{" + "nonsense}}", "speedy: nonsense", true, 1)',"nonsense"));
   }

   if(document.title.indexOf("Editing Wikipedia:Articles for deletion") != -1){                  // In-progress VfD tabs
//        addlilink(tabs, 'javascript:closevfd("Delete", "")', 'D', '');
        tabs.appendChild(addlilink('javascript:closevfd("Speedy Delete", "")', 'SD', ''));
        tabs.appendChild(addlilink('javascript:closevfd("Keep", "")', 'K', ''));
//        addlilink(tabs, 'javascript:closevfd("Keep (No consensus)", "")', 'K,NC', '');
        tabs.appendChild(addlilink('javascript:closevfd("Merge and Redirect", " to [[" + prompt("Merge and redirect to?") + "]]")', 'M&R', ''));
        tabs.appendChild(addlilink('javascript:closevfd("Redirect", " to [[" + prompt("Redirect to?") + "]]")', 'R', ''));
//        addlilink(tabs, 'javascript:closevfd("Ttranswiki", " to " + prompt("Transwiki to?"))', 'T', '');
//        addlilink(tabs, 'javascript:closevfd("Transwiki", " to Wiktionary")', 'WIKT', '');
//        addlilink(tabs, 'javascript:closevfd(prompt("Result?"), "")', 'Oth', '');

    }

   if (document.title.indexOf("Editing") != 0)
   {
   }
}

if (window.addEventListener)
  window.addEventListener("load", add_tabs, false);
else if (window.attachEvent)
  window.attachEvent("onload", add_tabs);

function closevfd(bold, notbold){
    var form = document.editform;
    var txt = form.wpTextbox1;
    txt.value = "{{subst:vt}} '''" + bold + "'''" + notbold + ". --~~~~\n" + txt.value + "\n{{subst:vb}}\n";
    form.wpSummary.value = "Close discussion: " + bold + notbold;
    form.wpWatchthis.checked = false;
}

///////////////////////////////////////////////////////////////////
// AutoVFD by Korath
// This needs to change depending on skin used.
//////////////////////////////////////////////////////////////////
function add_link2(url, name)
{
  var na = document.createElement('a');
  na.setAttribute('href', url);
  na.appendChild(document.createTextNode(name));

  var li = document.createElement('li');
  li.appendChild(na);

  var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];
  tabs.appendChild(li);
}

function strip_namespace(target)
{
  var colon = target.indexOf(':');
  if (colon != -1)
    {
      var spaces = new Array('User', 'Wikipedia', 'Image', 'MediaWiki', 'Template', 'Help', 'Category');
      var ns = target.substring(0, colon);
      if (ns == '' || ns == 'Talk')
        return target.substring(colon + 1);
      else
        for (var i = 0; i < spaces.length; ++i)
          {
            if (ns == spaces[i]
                || ns == spaces[i] + '_talk')
              return target.substring(colon + 1);
          }
    }

  return target;
}

function vfd()
{
  document.editform.wpTextbox1.value = '{' + '{' + 'subst:afd}}\n' + document.editform.wpTextbox1.value;
  document.editform.wpSummary.value = 'afd';

  var target = document.editform.action;
  target = target.substring(target.indexOf('title=') + 6,
                            target.lastIndexOf('&action=submit'));

  var months = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
  var date = new Date();
  date = date.getUTCFullYear() + '_' + months[date.getUTCMonth()] + '_' + date.getUTCDate();

  var pagename = strip_namespace(target);

  window.open('/w/index.php?title=Wikipedia:Articles_for_deletion/' + pagename + '&action=edit&fakeaction=vfdsub&faketarget=' + target,
              'Afd ' + unescape(target),
              '');
  window.open('/w/index.php?title=Wikipedia:Articles_for_deletion/Log/' + date + '&action=edit&fakeaction=vfdlist&faketarget=' + pagename,
              'VfdLog ' + unescape(target),
              '');
}

function autovfd()
{
  if (document.title.indexOf('Editing ') == 0)
    {
      var action = '';
      var target = '';
      if (location.search)
        {
          var l = location.search.substring(1).split('&');
          for (var i = 0; i < l.length; ++i)
            {
              var eq = l[i].indexOf('=');
              var name = l[i].substring(0, eq);
              if (name == 'fakeaction')
                action = l[i].substring(eq + 1);
              else if (name == 'faketarget')
                target = unescape(l[i].substring(eq + 1)).replace(/_/g, ' ');
            }
        }

      if (action == 'vfdlist')
        {
          document.editform.wpTextbox1.value += '{{' + 'subst:afd3|pg=' + target + '}}\n';
          document.editform.wpSummary.value = '[[Wikipedia:Articles for deletion/' + target + ']]';
        }
      else if (action == 'vfdsub')
        {
          if (document.editform.wpTextbox1.value.length > 0)
            {
              target = document.editform.action;
              target = unescape(target.substring(target.indexOf('title=') + 6, target.lastIndexOf('&action=submit'))).replace(/_/g, ' ');
              window.alert("There's an old vfd at the default location already.\n\n" +
                           'Please either move it out of the way (and update existing links to it), or file the Vfd by hand in another location (such as [[' + target + ' (2)]]).');
            }
          else
            document.editform.wpTextbox1.value += '{' + '{' + 'subst:afd2|pg=' + target + '|text=' + '}' + '}' +
  '-- ~' + '~' + '~' + '~\n' +
              '\n*\'\'\' \'\'\'\n*\'\'\' \'\'\'\n*\'\'\' \'\'\'\n';
        }
      else
        add_link2('javascript:vfd()', 'Afd');
    }
}

if (window.addEventListener)
  window.addEventListener('load', autovfd, false);
else if (window.attachEvent)
  window.attachEvent('onload', autovfd);

///////////////////////////////////////////////////////////////////
// AutoCopyvio - Created by bmicomp from modified autovfd
//////////////////////////////////////////////////////////////////
function add_link2(url, name)
{
  var na = document.createElement('a');
  na.setAttribute('href', url);
  na.appendChild(document.createTextNode(name));

  var li = document.createElement('li');
  li.appendChild(na);

  var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];
  tabs.appendChild(li);
}

function strip_namespace(target)
{
  var colon = target.indexOf(':');
  if (colon != -1)
    {
      var spaces = new Array('User', 'Wikipedia', 'Image', 'MediaWiki', 'Template', 'Help', 'Category');
      var ns = target.substring(0, colon);
      if (ns == '' || ns == 'Talk')
        return target.substring(colon + 1);
      else
        for (var i = 0; i < spaces.length; ++i)
          {
            if (ns == spaces[i]
                || ns == spaces[i] + '_talk')
              return target.substring(colon + 1);
          }
    }

  return target;
}

function copyvio()
{
  document.editform.wpTextbox1.value = '{' + '{' + 'copyvio|url=}}';
  document.editform.wpSummary.value = 'copyvio';

  var target = document.editform.action;
  target = target.substring(target.indexOf('title=') + 6,
                            target.lastIndexOf('&action=submit'));

  var months = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
  var date = new Date();
//  date = months[date.getUTCMonth()] + '_' + date.getUTCDate();
  var datestring = date.getUTCFullYear() + '_' + months[date.getUTCMonth()] + '_' + date.getUTCDate();

  var pagename = strip_namespace(target);

  window.open('/w/index.php?title=Wikipedia:Copyright_problems/' + datestring + '&action=edit&fakeaction=copyviolist&faketarget=' + pagename,
              'status,toolbar,location,menubar,directories,resizeable,scrollbars');
}

function autocopyvio()
{
  if (document.title.indexOf('Editing ') == 0)
    {
      var action = '';
      var target = '';
      if (location.search)
        {
          var l = location.search.substring(1).split('&');
          for (var i = 0; i < l.length; ++i)
            {
              var eq = l[i].indexOf('=');
              var name = l[i].substring(0, eq);
              if (name == 'fakeaction')
                action = l[i].substring(eq + 1);
              else if (name == 'faketarget')
                target = unescape(l[i].substring(eq + 1)).replace(/_/g, ' ');
                
            }
        }

      if (action == 'copyviolist')
        {
//          var index = document.editform.wpTextbox1.value.lastIndexOf("\n==Footer==");
/*            if (index == -1) 
          {
            window.alert("Couldn't find footer\n\n");
          } 
          else
          { */
//            var firsthalf = document.editform.wpTextbox1.value.substr(0,index);
//            var secondhalf = document.editform.wpTextbox1.value.substr(index);
            document.editform.wpTextbox1.value += '*[[' + target + ']] <span class="plainlinks">([http://en.wikipedia.org/{{localurl:' + target + '|action=history}} history] &middot; [http://en.wikipedia.org/{{localurl:' + target + '|diff=0}} last edit])</span>' + ' from [' + '] ~' + '~~' + '~';
            document.editform.wpSummary.value = 'Copyvio ' + '[[' + target + ']]';
          }
//        }
      else
        add_link2('javascript:copyvio()', 'copyvio');
    }
}

if (window.addEventListener)
  window.addEventListener('load', autocopyvio, false);
else if (window.attachEvent)
  window.attachEvent('onload', autocopyvio);


// "Unwatch" function for watch list
addOnloadHook(function () {
    var query_prefix = "title=Special:Watchlist&action=submit&remove=1&id[]=";
    //var query_prefix = "action=unwatch&title=";

    if (window.location.href.indexOf("Special:Watchlist") == -1) return;
    var links = document.getElementById('content').getElementsByTagName('a');
    for (var i = 0; i < links.length; i++) {
        if (links[i].href.substring(links[i].href.length-15) != '&action=history')
            continue;
        var unwatch = document.createElement('a');
        unwatch.href = "/w/index.php?" + query_prefix + encodeURIComponent(links[i].title);
        unwatch.title = "Unwatch "+links[i].title;
        unwatch.appendChild(document.createTextNode("unwatch"));
        links[i].parentNode.insertBefore(unwatch, links[i].nextSibling);
        // kluge to handle case where "diff" is unlinked:
        var delim = links[i].previousSibling;
        delim = (delim.nodeType == 3 ? delim.nodeValue : "");
        links[i].parentNode.insertBefore(document.createTextNode(delim.replace(/^.*diff/, "")), unwatch);
    }
});

// 

// </pre></nowiki></pre>