User:Nauticashades/quickimgdelete.js

/* */ /* quickimgdelete.js * Current version: 1.1 * ======================================= * Created by 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 -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 = ''; var editformval = qid_removeUntaggedTemplate(document.editform.wpTextbox1.value); document.editform.wpTextbox1.value = txt + '\n' + editformval; document.editform.wpSummary.value = 'nomination for deletion'; if (qid_autosave) document.editform.wpSave.click; }

function nfd_addIdwTemplate(target) { var txt =  + 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 = '' + imageName + ''; 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'))); }

addOnloadHook(nfd_onload);

//================================================================================ // ==Automatic 'mark no source' (mns) and 'mark no license' (mnl) script== // mnx = applies to both // // Configuration mns_text = "Mark as no source"; mns_tooltip = "Mark this image as missing required source information";

mnl_text = "Mark as no license"; mnl_tooltip = "Mark this image as missing required licensing information";

mnr_text = "Mark as no rationale"; mnr_tooltip = "Mark this image as missing fair use rationale";

mor_text = "Mark as orphaned fairuse"; mor_tooltip = "Mark this image as an orphaned fair use image";

mrfu_text = "Mark as replaceable fairuse"; mrfu_tooltip = "Mark this image as a replaceable 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 = ''; // 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; case "rfu": summary = "This fair use appears to illustrate a subject for which a free image could reasonably be found or created and will be deleted in seven days."; 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 = "image source"; editSummary = "Warning: image missing source information."; break; case "mnx_mnl": template = "image copyright"; editSummary = "Warning: image missing license information."; break; case "mnx_mnr": template = "missing rationale"; editSummary = "Warning: image missing fair use rationale."; break; case "mnx_mor": template = "orphaned"; editSummary = "The fair use image you uploaded is now orphaned."; break; case "mnx_mrfu": template = "replaceable"; editSummary = "The fair use image you uploaded is replaceable by a free one."; imagetarget = imagetarget.substring(6); // break; } var txt =  + 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('Image:') == 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); addLink('p-tb', 'javascript:mnx_markNo(\'mnx_mrfu\')', mrfu_text, 'mark-replaceable', mrfu_tooltip); } var fakeaction = getParamValue('fakeaction');

switch (fakeaction) { case 'mnx_mns': mnx_addTemplate('nsd'); break; case 'mnx_mnl': mnx_addTemplate('nld'); break; case 'mnx_mnr': mnx_addTemplate('nrd'); break; case 'mnx_mor': mnx_addTemplate('orfud'); break; case 'mnx_mrfu': mnx_addTemplate('rfu'); break; case 'mnx_warn': mnx_addUserWarningTemplate(getParamValue('type'), decodeURIComponent(getParamValue('target'))); break; } }

addOnloadHook(mnx_onload); /* */