მედიავიკი:Gadget-oneclickdelete.js
შენიშვნა: შენახვის შემდეგ შესაძლოა დაგჭირდეთ ბრაუზერის ქეშის გაწმენდა ცვლილებების სანახავად. Google Chrome, Firefox, Microsoft Edge და Safari: დააჭირეთ ⇧ Shift ღილაკს და შემდეგ - ღილაკს Reload.
//ლოკალიზაცია - მომხმარებელი:გიო_ოქრო
//<nowiki>
if (mw.config.get("wgNamespaceNumber") >= 0 && mw.config.get("wgIsProbablyEditable")) {
var oneClickDelete = {};
$(document).ready(function() {
oneClickDelete.addReason = function(reason, tag) {
oneClickDelete.reasons.push([tag, reason]);
//oneClickDelete.tag[reason] = tag;
};
oneClickDelete.delete = function(reason, tag) {
console.log("Getting token...");
$.get(mw.config.get("wgScriptPath") + "/api.php", {
"action": "query",
"meta": "tokens",
"type": "csrf",
"format": "json"
}).done(function(token) {
if (token.error) {
mw.notify($("<span class=\"error\">" + token.error.info + "</span>"));
} else {
var temp = tag.substring(3, 6);
if (temp.toLowerCase() != "st:" && temp.toLowerCase() != "c1") {
$.post(mw.config.get("wgScriptPath") + '/api.php', {
"action": "delete",
"format": "json",
"title": mw.config.get("wgPageName"),
"reason": reason,
"token": token.query.tokens.csrftoken
}).done(function(editresult) {
if (editresult.error) {
mw.notify($("<span class=\"error\">" + editresult.error.info + "</span>"));
} else {
location.href = "/wiki/" + mw.config.get("wgPageName");
}
}).fail(function(editresult) {
mw.notify("<span class=\"error\">" + editresult + "</span>");
});
} else {
oneClickDelete.addTag(tag);
}
}
}).fail(function(token) {
mw.notify($("<span class=\"error\">" + token + "</span>"));
});
};
oneClickDelete.addTag = function(reason) {
if (reason) {
console.log("Getting wikitext...");
$.get(mw.config.get("wgScriptPath") + "/api.php", {
"action": "parse",
"prop": "wikitext",
"page": mw.config.get("wgPageName"),
"format": "json"
}).done(function(result) {
if (result.error) {
mw.notify($("<span class=\"error\">" + result.error.info + "</span>"));
} else if (result.parse.wikitext["*"].toLowerCase().substring(0, 100).includes("{{წასაშლელი|") || result.parse.wikitext["*"].toLowerCase().substring(0, 100).includes("{{წასაშლელი|")) {
mw.notify($("<span class=\"error\">" + "გვერდი უკვე მონიშნულია როგორც წასაშლელი. გთხოვთ, ხელით ჩაასწოროთ იგი საჭიროების შემთხვევაში." + "</span>"));
} else {
console.log("ტოკენის მიღება...");
$.get(mw.config.get("wgScriptPath") + "/api.php", {
"action": "query",
"meta": "tokens",
"type": "csrf",
"format": "json"
}).done(function(token) {
if (token.error) {
mw.notify($("<span class=\"error\">" + token.error.info + "</span>"));
} else {
console.log("ვიკიტექსტის შექმნა და შენახვა...");
var newwikitext = result.parse.wikitext["*"];
if (reason == "db-g10") {
newwikitext = "<noinclude>{{წასაშლელი|" + reason + "}}</noinclude>";
} else //{
// if (reason != "subst:void") {
// newwikitext = "<noinclude>{{" + reason + "}}</noinclude>" + newwikitext;
// } else
{
newwikitext = "{{წასაშლელი|" + reason + "}}" + newwikitext;
}
// }
$.post(mw.config.get("wgScriptPath") + '/api.php', {
"action": "edit",
"format": "json",
"title": mw.config.get("wgPageName"),
"text": newwikitext,
"summary": "გვერდი წასაშლელია ([[en:User:Awesome Aasim/oneclickdelete|oneclickdelete]])",
"token": token.query.tokens.csrftoken
}).done(function(editresult) {
if (editresult.error) {
mw.notify($("<span class=\"error\">" + editresult.error.info + "</span>"));
} else {
location.href = "/wiki/" + mw.config.get("wgPageName");
}
}).fail(function(editresult) {
mw.notify("<span class=\"error\">" + editresult + "</span>");
});
}
}).fail(function(token) {
mw.notify($("<span class=\"error\">" + token + "</span>"));
});
}
}).fail(function(result) {
mw.notify($("<span class=\"error\">" + result + "</span>"));
});
}
};
oneClickDelete.select = $('<select name="deletiontemplate" style="width:100px" id="qcsd-dropdown" class="mw-ui-input"/>');
oneClickDelete.el = $('<div class="mw-indicator"><form id="qcsd"></form></div>');
$.get(mw.config.get("wgScriptPath") + "/api.php", {
"action": "parse",
"prop": "wikitext",
"format": "json",
"page": mw.config.get("wgPageName")
}).done(function(result) {
if (!result.error) {
// reasons begin
oneClickDelete.reasons = [];
// general
oneClickDelete.addReason("ზოგადი", "-");
oneClickDelete.addReason("[[ვპ:სწკ#ზ1|ზ1]]: გვერდი გაუგებარი შინაარსით", "ზ1");
if (mw.config.get("wgNamespaceNumber") != 2) {
oneClickDelete.addReason("[[ვპ:სწკ#ზ2|ზ2]]: ტესტური გვერდი", "ზ2");
}
oneClickDelete.addReason("[[ვპ:სწკ#ზ3|ზ3]]: ვანდალიზმის გვერდი", "ზ3");
oneClickDelete.addReason("[[ვპ:სწკ#ზ4|ზ4]]: ადრე წაშლილი გვერდის ასლი", "ზ4");
oneClickDelete.addReason("[[ვპ:სწკ#ზ5|ზ5]]: წაშლა გვერდის ერთადერთმა ავტორმა მოითხოვა", "ზ5");
oneClickDelete.addReason("[[ვპ:სწკ#ზ6|ზ6]]: წაშლილი გვერდის განხილვა", "ზ6");
oneClickDelete.addReason("[[ვპ:სწკ#ზ7|ზ7]]: გვერდის გადატანის მიზნით", "ზ7");
oneClickDelete.addReason("[[ვპ:სწკ#ზ8|ზ8]]: უკვე არსებული გვერდის ასლი", "ზ8");
oneClickDelete.addReason("[[ვპ:სწკ#ზ9|ზ9]]: რეკლამა ან სპამი", "ზ9");
oneClickDelete.addReason("[[ვპ:სწკ#ზ10|ზ10]]: განხილვის გვერდის არამიზნობრივი გამოყენება", "ზ10");
if (result.parse.wikitext["*"].toLowerCase().substring(0, "#გადამისამართება".length).match(/.*\#გადამისამართება.*/g)) {
// გადამისამართება
oneClickDelete.addReason("გადამისამართებები", "-");
oneClickDelete.addReason('[[ვპ:სწკ#გ1|გ1]]: გადამისამართება არარსებულ გვერდზე', 'გ1');
oneClickDelete.addReason('[[ვპ:სწკ#გ2|გ2]]: გადამისამართება სახელთა სივრცეებს შორის', 'გ2');
oneClickDelete.addReason('[[ვპ:სწკ#გ3|გ3]]: გადამისამართების სათაურში შეცდომა', 'გ3');
oneClickDelete.addReason('[[ვპ:სწკ#გ4|გ4]]: სათაური არ არის სახელობით ბრუნვაში', 'გ4');
oneClickDelete.addReason('[[ვპ:სწკ#გ5|გ5]]: სემანტიკურად არასწორი გადამისამართება', 'გ5');
oneClickDelete.addReason('[[ვპ:სწკ#გ6|გ6]]: გადამისამართება განხილვის გვერდზე', 'გ6');
} else {
if (mw.config.get("wgNamespaceNumber") == 0) {
// სტატია
oneClickDelete.addReason("სტატიები", "-");
oneClickDelete.addReason('[[ვპ:სწკ#ს1|ს1]]: ცარიელი ან ძალიან მოკლე გვერდი (3 წინადადებაზე ნაკლები)', 'ს1');
oneClickDelete.addReason('[[ვპ:სწკ#ს2|ს2]]: სტატია არ აკმაყოფილებს ვპ:ბიო-ს', 'ს2');
oneClickDelete.addReason('[[ვპ:სწკ#ს3|ს3]]: სტატია არაქართულ ენაზე ან მანქანური თარგმანი', 'ს3');
oneClickDelete.addReason('[[ვპ:სწკ#ს4|ს4]]: მხოლოდ (გარე ან შიდა) ბმულებისგან შემდგარი სტატია', 'ს4');
oneClickDelete.addReason('[[ვპ:სწკ#ს5|ს5]]: სტატია ენციკლოპედიური მნიშვნელობის დადასტურების გარეშე', 'ს5');
oneClickDelete.addReason('[[ვპ:სწკ#ს6|ს6]]: საავტორო უფლებების აშკარა დარღვევა', 'ს6');
oneClickDelete.addReason("სტატიას არ აქვს წყარო");
// oneClickDelete.addReason('რაიმე განსაკუთრებული მიზეზი', 'აქ მისი კოდი');
}
if (mw.config.get("wgNamespaceNumber") == 6) {
// ფაილი
oneClickDelete.addReason("ფაილები", "-");
oneClickDelete.addReason('[[ვპ:სწკ#ფ1|ფ1]]: ზუსტი ან უარესი ასლი', 'ფ1');
oneClickDelete.addReason('[[ვპ:სწკ#ფ2|ფ2]]: ცარიელი ან დაზიანებული ფაილი', 'ფ2');
oneClickDelete.addReason('[[ვპ:სწკ#ფ3|ფ3]]: გაურკვეველი სალიცენზიო სტატუსი', 'ფ3');
oneClickDelete.addReason('[[ვპ:სწკ#ფ4|ფ4]]: გამოუყენებელი არათავისუფალი ფაილი', 'ფ4');
oneClickDelete.addReason('[[ვპ:სწკ#ფ5|ფ5]]: სგკ კრიტერიუმების შეუსაბამო ფაილი', 'ფ5');
oneClickDelete.addReason('[[ვპ:სწკ#ფ6|ფ6]]: გაუმართლებლად გამოყენებული არათავისუფალი ფაილი', 'ფ6');
oneClickDelete.addReason('[[ვპ:სწკ#ფ7|ფ7]]: შეცვლადი არათავისუფალი ფაილი', 'ფ7');
oneClickDelete.addReason('[[ვპ:სწკ#ფ8|ფ8]]: ფაილი ხელმისაწვდომია ვიკისაწყობში', 'ფ8');
oneClickDelete.addReason('[[ვპ:სწკ#ფ9|ფ9]]: ფაილი, რომელიც აშკარად არღვევს არაჰოსტინგს', 'ფ9');
}
if (mw.config.get("wgNamespaceNumber") == 14) {
// კატეგორია
oneClickDelete.addReason("კატეგორიები", "-");
oneClickDelete.addReason('[[ვპ:სწკ#კ1|კ1]]: ცარიელი კატეგორია', 'კ1');
oneClickDelete.addReason('[[ვპ:სწკ#კ2|კ2]]: გადამისამართებული კატეგორია', 'კ2');
}
if (mw.config.get("wgNamespaceNumber") == 2 || mw.config.get("wgNamespaceNumber") == 3) {
// მომხმარებლის გვერდი
oneClickDelete.addReason("მომხმარებლის გვერდები", "-");
oneClickDelete.addReason('[[ვპ:სწკ#მ1|მ1]]: ავტორის (მფლობელის) მოთხოვნა', 'მ1');
oneClickDelete.addReason('[[ვპ:სწკ#მ2|მ2]]: ანონიმური მომხმარებლის განხილვა', 'მ2');
oneClickDelete.addReason('[[ვპ:სწკ#მ3|მ3]]: არარსებული მომხმარებელი', 'მ3');
oneClickDelete.addReason('[[ვპ:სწკ#მ4|მ4]]: არამიზნობრივი გამოყენება', 'მ4');
oneClickDelete.addReason('[[ვპ:სწკ#მ5|მ5]]: სტატია მომხმარებლის პირად გვერდზე', 'მ5');
}
// if (mw.config.get("wgNamespaceNumber") == 100) {
// // portals
// oneClickDelete.addReason("პორტალები", "-");
// oneClickDelete.addReason('[[ვპ:სწკ#პ1|პ1]]: Meets article criteria for speedy deletion [[ვპ:სწკ#A1|A1]]', 'db-p1|a1');
// }
}
oneClickDelete.select.append($('<option />').prop('disabled', true).prop('selected', true).text("წაშლა"));
oneClickDelete.select.append($('<option />').attr('value', 'subst:void').text("გაუქმება"));
oneClickDelete.select.change(function(e) {
//debugger;
oneClickDelete.select.prop("disabled", true);
if (mw.config.get("wgUserGroups").includes("sysop")) {
oneClickDelete.delete($("#qcsd-dropdown option:selected").text(), $("#qcsd-dropdown").val());
} else {
oneClickDelete.addTag($("#qcsd-dropdown").val());
}
});
oneClickDelete.reasons.forEach(function(r) {
if (r[0] == "-") {
oneClickDelete.select.append($('<option />').prop('disabled', true).text(r[1]));
} else {
oneClickDelete.select.append($('<option />').attr('value', r[0]).text("\xA0\xA0" + r[1]));
}
});
oneClickDelete.el.appendTo("#siteNotice");
if (mw.config.get("skin") != "minerva") {
oneClickDelete.el.css({"float": "right", "margin-left": "10px"});
}
oneClickDelete.select.appendTo("#qcsd");
}
}).fail(function(result) {
});
});
}
//</nowiki>