User:Lijealso/quickimgdelete.js
Jump to navigation
Jump to search
Note: After saving, you have to bypass your browser's cache to see the changes. Internet Explorer: press Ctrl-F5, Mozilla: hold down Shift while clicking Reload (or press Ctrl-Shift-R), Opera/Konqueror: press F5, Safari: hold down Shift + Alt while clicking Reload, Chrome: hold down Shift while clicking Reload.
Documentation for this user script can be added at User:Lijealso/quickimgdelete. |
- Report page listing warnings and errors.
/* <pre><nowiki> */
/* quickimgdelete.js
* Current version: 1.0.2
* =======================================
* Created by [[User:Howcheng|Howard Cheng]]
* Released under the [[GNU Public License]] (GPL)
* Full documentation at [[User talk:Howcheng/quickimgdelete.js]]
* =======================================
*/
// ==Helper functions==
// from [[User:Jnothman/automod.js]]
function GuessUTCDate() {
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();
}
// From [[en:User:Lupin/autoedit.js]]
function getParamValue(paramName) {
var cmdRe=RegExp('[&?]'+paramName+'=([^&]*)');
var h=document.location;
var m=cmdRe.exec(h);
if (m) {
try {
return decodeURIComponent(m[1]);
} catch (someError) {}
}
return null;
}
function qid_openWindow(url, windowName) {
if (!windowName) windowName = 'qid_window';
var res = window.open(url, windowName);
if (!res) alert("qid_openWindow: window.open() returned null");
}
function qid_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("qid_getUploader: Cannot find filehistory ... exiting");
return null;
}
while (el.nextSibling) {
el = el.nextSibling;
if (el.tagName && el.tagName.toLowerCase() == 'ul')
break;
}
if (!el) {
alert("qid_getUploader: Cannot find UL tag ... exiting");
return null;
}
var el = el.getElementsByTagName('li')[0];
if (!el) {
alert("qid_getUploader: Cannot find LI tag ... exiting");
return null;
}
var as = el.getElementsByTagName('a');
var re1 = new RegExp('http://' + (qid_hostname + qid_prettypath).replace(/\./g, '\\.') + 'User:(.*)$');
var re2 = new RegExp('http://' + (qid_hostname + qid_path).replace(/\./g, '\\.') + '\\?title=User:([^&]*)');
var re3 = /User( talk)?:(.*)$/; // this is for IE and handling Unicode characters
var m;
for (var k=0; k<as.length; k++) {
m = re3.exec(as[k].title);
if (m) return encodeURIComponent(m[2]);
m = re1.exec(as[k].href);
if (m) return m[1];
m = re2.exec(as[k].href);
if (m) return m[1];
}
alert("qid_getUploader: Cannot find uploader ... exiting");
return null;
}
function qid_removeUntaggedTemplate(editformval) {
var untaggedpos = editformval.indexOf('{{untagged');
if (untaggedpos > -1) {
var lastbracepos = editformval.indexOf('}}', untaggedpos) + 1;
editformval = editformval.substr(0, untaggedpos) + editformval.substr(lastbracepos + 2);
}
return editformval;
}
// ==General configuration==
qid_autosave = true; // Should the edits be saved automatically?
// Site info
qid_path = "/w/index.php";
qid_prettypath = "/wiki/";
qid_hostname = window.location.hostname;
// ==Automatic 'nominate for deletion' script==
// Configuration
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 = "Wikipedia:Images_and_media_for_deletion/" + GuessUTCDate();
nfd_deleteTemplate = "ifd";
nfd_idwTemplate = "idw";
nfd_ifdTemplate = "ifd2";
function nfd_nomForDel() {
var reason = prompt(nfd_prompt, '');
if (!reason) return;
var pagename = encodeURIComponent(getPname());
var uploader = qid_getUploader();
if (!uploader) return;
qid_openWindow(qid_path + '?title=User_talk:' + uploader
+ '&action=edit&fakeaction=nfd_warn&target=' + pagename);
qid_openWindow(qid_path + '?title=' + nfd_delReq + '&action=edit&fakeaction=nfd_add'
+ '&target=' + pagename + '&reason=' + encodeURIComponent(reason)
+ '&uploader=' + uploader, 'qid_ifd_window');
var editlk = document.getElementById('ca-edit').getElementsByTagName('a')[0].href;
window.location = editlk + '&fakeaction=nfd_delete';
}
function nfd_addDeleteTemplate() {
var txt = '{{' + nfd_deleteTemplate + '}}';
var editformval = qid_removeUntaggedTemplate(document.editform.wpTextbox1.value);
document.editform.wpTextbox1.value = txt + '\n' + editformval;
document.editform.wpSummary.value = 'nomination for [[WP:IFD|deletion]]';
if (qid_autosave) document.editform.wpSave.click();
}
function nfd_addIdwTemplate(target) {
var txt = '{{subst:' + nfd_idwTemplate + '|' + target + '}}';
document.editform.wpTextbox1.value += '\n' + txt + '\n';
document.editform.wpSummary.value = txt;
if (qid_autosave) document.editform.wpSave.click();
}
function nfd_updateDelReq(target, reason, uploader) {
var colonPos = target.indexOf(':');
var imageName = target.substring(colonPos + 1);
var txt = '{{subst:' + nfd_ifdTemplate + '|' + imageName +
'|Uploader=' + uploader + '|Reason=' + reason + '}}';
document.editform.wpTextbox1.value += '\n' + txt + ' ~~' + '~~ \n';
document.editform.wpSummary.value = 'Nominating [[:' + target + ']]';
if (qid_autosave) document.editform.wpSave.click();
}
function nfd_onload() {
var pname = getPname();
if (pname.indexOf('Image:') == 0) {
addLink('p-tb', 'javascript:nfd_nomForDel()', nfd_text, 'nom-for-del', nfd_tooltip);
}
var fakeaction = getParamValue('fakeaction');
if (fakeaction == 'nfd_delete')
nfd_addDeleteTemplate();
else if (fakeaction == 'nfd_warn')
nfd_addIdwTemplate(unescape(getParamValue('target')));
else if (fakeaction == 'nfd_add')
nfd_updateDelReq(decodeURIComponent(getParamValue('target')), decodeURIComponent(getParamValue('reason')),
decodeURIComponent(getParamValue('uploader')));
}
$(nfd_onload);
//================================================================================
// ==Automatic 'mark no source' (mns) and 'mark no license' (mnl) script== // mnx = applies to both
//
// Configuration
mns_text = "ISD2";
mns_tooltip = "Mark this image as missing required source information";
mnl_text = "Li2";
mnl_tooltip = "Mark this image as missing required licensing information";
mnr_text = "Cd2";
mnr_tooltip = "Mark this image as missing fair use rationale";
mor_text = "Ci2";
mor_tooltip = "Mark this image as an orphaned fair use image";
function mnx_markNo(action) {
var pagename = encodeURIComponent(getPname());
var uploader = qid_getUploader();
if (!uploader) return;
qid_openWindow(qid_path + '?title=User_talk:' + uploader
+ '&action=edit&fakeaction=mnx_warn&target=' + pagename
+ '&type=' + action);
var editlk = document.getElementById('ca-edit').getElementsByTagName('a')[0].href;
window.location = editlk + '&fakeaction=' + action ;
}
function mnx_addTemplate(template) {
var txt = '{{subst:' + template + '}}';
// this MUST be subst since templates are NSD, NLD
var editformval = qid_removeUntaggedTemplate(document.editform.wpTextbox1.value);
document.editform.wpTextbox1.value = txt + '\n' + editformval;
var summary;
switch (template) {
case "nsd":
summary = "Image is missing source information and will be deleted in seven days if it is not added.";
break;
case "nld":
summary = "Image is missing license information and will be deleted in seven days if it is not added.";
break;
case "nrd":
summary = "Image is missing fair use rationale and will be deleted in seven days if it is not added.";
break;
case "orfud":
summary = "This fair use image is not used in any articles and will be deleted in seven days if it remains so.";
break;
}
document.editform.wpSummary.value = summary
if (qid_autosave) document.editform.wpSave.click();
}
function mnx_addUserWarningTemplate(type, imagetarget) {
var template;
var editSummary;
switch (type) {
case "mnx_mns":
template = "av-img";
editSummary = "Aviso: Imagem com origem e licença desconhecidas";
break;
case "mnx_mnl":
template = "av-img";
editSummary = "Aviso: imagem foi marcada como tendo uma licença livre, mas não dispõe da informação requerida para essa licença";
break;
case "mnx_mnr":
template = "av-img";
editSummary = "Aviso: imagem tem um status de direitos autorais desconhecido";
break;
case "mnx_mor":
template = "av-img";
editSummary = "Aviso: imagem está protegida por copyright e/ou tem restrições de uso";
break;
}
var txt = '{{subst:' + template + '|' + imagetarget + '}}';
// add in subst: if you want to subst these warnings
document.editform.wpTextbox1.value += '\n' + txt + ' ~~' + '~~\n';
document.editform.wpSummary.value = editSummary;
// this is the edit summary for when you leave the user warning on the talk page.
// you can change it if you want.
if (qid_autosave) document.editform.wpSave.click();
}
function mnx_onload() {
if (getPname().indexOf('Imagem:') == 0) {
addLink('p-tb', 'javascript:mnx_markNo(\'mnx_mns\')', mns_text, 'mark-no-source', mns_tooltip);
addLink('p-tb', 'javascript:mnx_markNo(\'mnx_mnl\')', mnl_text, 'mark-no-license', mnl_tooltip);
addLink('p-tb', 'javascript:mnx_markNo(\'mnx_mnr\')', mnr_text, 'mark-no-rationale', mnr_tooltip);
addLink('p-tb', 'javascript:mnx_markNo(\'mnx_mor\')', mor_text, 'mark-orphaned', mor_tooltip);
}
var fakeaction = getParamValue('fakeaction');
switch (fakeaction) {
case 'mnx_mns':
mnx_addTemplate('ISD2');
break;
case 'mnx_mnl':
mnx_addTemplate('LI2');
break;
case 'mnx_mnr':
mnx_addTemplate('CD2');
break;
case 'mnx_mor':
mnx_addTemplate('CI2');
break;
case 'mnx_warn':
mnx_addUserWarningTemplate(getParamValue('type'), decodeURIComponent(getParamValue('target')));
break;
}
}
$(mnx_onload);
/* </nowiki></pre> */