Usuario:Axxgreazz/quickimgdelete.js

De Wikipedia, la enciclopedia libre

Nota: Después de guardar, debes refrescar la caché de tu navegador para ver los cambios. Internet Explorer: mantén presionada Ctrl mientras pulsas Actualizar. Firefox: mientras presionas Mayús pulsas el botón Actualizar, (o presiona Ctrl-Shift-R). Los usuarios de Google Chrome y Safari pueden simplemente pulsar el botón Recargar. Para más detalles e instrucciones acerca de otros exploradores, véase Ayuda:Cómo limpiar la caché.

// <pre><nowiki> 
/* quickimgdelete.js
 * Current version: 1.2.1
 * =======================================
 * Created by [[User:Howcheng|Howard Cheng]]
 * Released under the [[GNU Public License]] (GPL)
 * Full documentation at [[User talk:Howcheng/quickimgdelete.js]]
 * =======================================
 */
(function() {
	if (typeof msActivarModulo === 'undefined') {
		mw.log.error('Error in loading sequence for [[Usuario:Axxgreazz/quickimgdelete.js]]')
		return;
	}
// Should the edits be saved automatically?
if(window.nfd_autosave == false){}else if(window.nfd_autosave){}else{ nfd_autosave = true; }
if(window.mnx_autosave == false){}else if(window.mnx_autosave){}else{ mnx_autosave = true; }

// String constants
nfd_text = "Nominate for deletion";
nfd_tooltip = "Nominate this image for deletion";
nfd_prompt = "Why do you want to nominate this image for deletion?";
nfd_delReq = "Commons:Deletion_requests";
nfd_deleteTemplate = "delete";
nfd_idwTemplate = "idw";

mns_text = "No source";
mns_tooltip = "Mark this image as missing required source information";
mnl_text = "No license";
mnl_tooltip = "Mark this image as missing required licensing information";
mnx_lang = "lang?";
mnx_langquery = "In which language should the msg be given?";

// Site info
scriptPath = "/w/index.php";
prettyPath = "/wiki/";
wikiHostname = "commons.wikimedia.org";


var now = new Date();
var timestamp = now.getUTCFullYear() + '/';
now.getUTCMonth() < 9 ? timestamp += '0' + (now.getUTCMonth() + 1) : timestamp += (now.getUTCMonth() + 1);
timestamp += '/';
now.getUTCDate() < 10 ? timestamp += '0' + now.getUTCDate() : timestamp += now.getUTCDate();
nfd_datePage = nfd_delReq + "/" + timestamp;
var monthsArray = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
var timestamp2 = monthsArray[now.getUTCMonth()] + " " + now.getUTCDate();

function openWindow(url) {
  var res = window.open(url, '_blank');
  if (!res) alert("openWindow: window.open() returned null");
}

function getUploader() {
  // Get uploader from first point in the list under "File history"
  // Uploader is stored in second A tag in UL tag under "File history"
  // Returns title of user page (without name space) in URL form
  var el = document.getElementById('filehistory')
  if (!el) {
    alert("getUploader: Cannot find filehistory ... exiting");
    return null;
  }
  while (el.nextSibling) {
    el = el.nextSibling;
    if (el.tagName && el.tagName.toLowerCase() == 'ul') 
      break;
  }
  if (!el) {
    alert("getUploader: Cannot find UL tag ... exiting");
    return null;
  }
  var el = el.getElementsByTagName('li')[0];
  if (!el) {
    alert("getUploader: Cannot find LI tag ... exiting");
    return null;
  }
  var as = el.getElementsByTagName('a');

  var re1 = new RegExp('http://' + (wikiHostname + prettyPath).replace(/\./g, '\\.') + 'User:(.*)$');
  var re2 = new RegExp('http://' + (wikiHostname + scriptPath).replace(/\./g, '\\.') + '\\?title=User:([^&]*)');
  var m;
  for (var k=0; k<as.length; k++) {
     m = re1.exec(as[k].href);
     if (m) return m[1];
     m = re2.exec(as[k].href);
     if (m) return m[1];
  }
  alert("getUploader: Cannot find uploader ... exiting");
  return null;
}

function nfd_nomForDel() {
  var reason = prompt(nfd_prompt, '');
  if (!reason) return;
  var pagename = encodeURIComponent(mw.config.get('wgPageName'));
  var uploader = getUploader();
  if (!uploader) return;
  openWindow(scriptPath + '?title=User_talk:' + uploader
     + '&action=edit&fakeaction=nfd_warn&target=' + pagename);
  openWindow(scriptPath + '?title=' + nfd_delReq + '/' + pagename 
     + '&action=edit&fakeaction=nfd_add&target=' + pagename + '&reason='
     + encodeURIComponent(reason));
  openWindow(scriptPath + '?title=' + nfd_datePage +
     '&action=edit&fakeaction=nfd_add2&target=' + pagename);
  var editlk = document.getElementById('ca-edit').getElementsByTagName('a')[0].href;
  document.location = editlk + '&fakeaction=nfd_delete&reason=' + encodeURIComponent(reason);
}

function nfd_addDeleteTemplate() {
  var reason = decodeURIComponent(getParamValue('reason'));
  var txt = '{{' + nfd_deleteTemplate + '|' + reason + '}}';
  document.editform.wpTextbox1.value = txt + '\n' + document.editform.wpTextbox1.value;
  document.editform.wpSummary.value = txt;
  if (nfd_autosave) document.editform.wpSave.click();
}

function nfd_addIdwTemplate(target) {
  var txt = '{{subst:' + nfd_idwTemplate + '|' + target + '}}';
  document.editform.wpTextbox1.value += 
    (document.editform.wpTextbox1.value.length > 0 ? '\n' : '') +
    txt + '~~' + '~~\n';
  document.editform.wpSummary.value = txt;
  if (nfd_autosave) document.editform.wpSave.click();
}

function nfd_updateDelReq(target, reason) {
  document.editform.wpTextbox1.value += 
    (document.editform.wpTextbox1.value.length > 0 ? '\n' : '') +
    '{{subst:delete2|image=' + target + '|reason=' + reason + ' -- ~~' + '~~}}';
  document.editform.wpSummary.value = 'Nominating [[' + target + ']]';
  if (nfd_autosave) document.editform.wpSave.click();
}

function nfd_updateDelReq2(target) {
  document.editform.wpTextbox1.value += 
    (document.editform.wpTextbox1.value.length > 0 ? '\n' : '==' + timestamp2 + '==\n') +
    '{{subst:delete3|pg=' + target + '}}';
  document.editform.wpSummary.value = 'Nominating [[' + target + ']]';
  if (nfd_autosave) document.editform.wpSave.click();
}


function nfd_onload() 
{
   if (typeof ms_Activa_Quickimgdelete == 'undefined') { ms_Activa_Quickimgdelete = true;}
   if (!msActivarModulo(ms_Activa_Quickimgdelete)) return;

   if (wgCanonicalNamespace == "Image") {
    addLink('p-tb', 'javascript:nfd_nomForDel()', msStringU(nfd_text), 'nom-for-del', msStringU(nfd_tooltip));
   }
   var fakeaction = getParamValue('fakeaction');
   if (fakeaction == 'nfd_delete')
     nfd_addDeleteTemplate();
   else if (fakeaction == 'nfd_warn')
     nfd_addIdwTemplate(decodeURIComponent(getParamValue('target')));
   else if (fakeaction == 'nfd_add')
     nfd_updateDelReq(decodeURIComponent(getParamValue('target')), decodeURIComponent(getParamValue('reason')));
   else if (fakeaction == 'nfd_add2')
     nfd_updateDelReq2(decodeURIComponent(getParamValue('target')));
}

$(nfd_onload);

function mnx_mark(imagepage_fakeaction, usertalk_fakeaction, message_lang) {
  if (!message_lang) return; //User pressed cancel

  var pagename = encodeURIComponent(mw.config.get('wgPageName'));
  var uploader = getUploader();
  if (!uploader) return;
  openWindow(scriptPath + '?title=User_talk:' + uploader
     + '&action=edit&fakeaction=' + usertalk_fakeaction + '&target=' + pagename + '&mnx_lang=' + message_lang);
  var editlk = document.getElementById('ca-edit').getElementsByTagName('a')[0].href;
  document.location = editlk + '&fakeaction=' + imagepage_fakeaction + '&mnx_lang=' + message_lang;
}

function mnx_addTemplate(template, sorl) {
  if (template == 'nsd') template='no source since';
  if (template == 'nld') template='no license';
  if (getParamValue('mnx_lang')) { 
          template = template + '/' + getParamValue('mnx_lang');
          template = template + '|' + 'month={{subst:CURRENTMONTHNAME}}|day={{subst:CURRENTDAY}}|year={{subst:CURRENTYEAR}}';
  }
  
  var txt = '{{' + template + '}}';
// this MUST be subst since templates are NSD, NLD  // Correction, see a few lines above currently // it employes "no source since" and "no license" template so it shouldn't be substed.
  document.editform.wpTextbox1.value = txt + '\n' + document.editform.wpTextbox1.value;
  document.editform.wpSummary.value = 'marking image as missing essential ' + sorl + ' information. If this is not fixed this image might be deleted after 7 days.';
// this is the edit summary for when you mark the image. you can change it if you want.
// sorl = "source" or "license"
  if (mnx_autosave) document.editform.wpSave.click();
}

function mnx_addUserWarningTemplate(imagetarget) {
  var txt = '{{subst:image source' + (getParamValue('mnx_lang') ? '/' + getParamValue('mnx_lang') : '' ) + '|' + imagetarget + '}}';
// add in subst: if you want to subst these warnings
  document.editform.wpTextbox1.value += '\n' + txt + '~~' + '~~\n';
  document.editform.wpSummary.value = "Warning: image missing source or licensing information.";
// this is the edit summary for when you leave the user warning on the talk page.
// you can change it if you want.
  if (mnx_autosave) document.editform.wpSave.click();
}

function mnx_onload() 
{
   if (typeof ms_Activa_Quickimgdelete == 'undefined') { ms_Activa_Quickimgdelete = true;}
   if (!msActivarModulo(ms_Activa_Quickimgdelete)) return;

   if (wgNamespaceNumber == 6) {
     addLink('p-tb', 'javascript:mnx_mark(\'mns_mns\', \'mnx_warn\', \'en\')', msStringU(mns_text), 'mark-no-source', msStringU(mns_tooltip), null, null, 'javascript:mnx_mark(\'mns_mns\', \'mnx_warn\', prompt(\'' + msStringU(mnx_langquery) + '\', wgUserLanguage))', msStringU(mnx_lang));
     addLink('p-tb', 'javascript:mnx_mark(\'mnl_mnl\', \'mnx_warn\', \'en\')', msStringU(mnl_text), 'mark-no-license', msStringU(mnl_tooltip), null, null, 'javascript:mnx_mark(\'mnl_mnl\', \'mnx_warn\', prompt(\'' + msStringU(mnx_langquery) + '\', wgUserLanguage))', msStringU(mnx_lang));
   }
   var fakeaction = getParamValue('fakeaction');

   if (fakeaction == 'mns_mns'){
     mnx_addTemplate('nsd','source');
}  if (fakeaction == 'mnl_mnl'){
     mnx_addTemplate('nld','license');
}  if (fakeaction == 'mnx_warn'){
     mnx_addUserWarningTemplate(decodeURIComponent(getParamValue('target')));
} }

$(mnx_onload);

}());
//</nowiki></pre>