ব্যবহারকারী:SHEIKH/দ্রুত অপসারণ প্রক্রিয়া.js

লক্ষ্য করুন: প্রকাশ করার পর, পরিবর্তনগুলো দেখতে আপনাকে আপনার ব্রাউজারের ক্যাশে পরিষ্কার করার প্রয়োজন হতে পারে।

  • ফায়ারফক্স / সাফারি: পুনরায় লোড-এ ক্লিক করার সময় শিফট টিপে ধরে রাখুন, অথবা হয় Ctrl-F5 বা Ctrl-R টিপুন (ম্যাকে ⌘-R টিপুন)
  • গুগল ক্রোম: Ctrl-Shift-R (ম্যাকে ⌘-Shift-R) টিপুন
  • ইন্টারনেট এক্সপ্লোরার / এজ: Ctrl ধরে রাখা অবস্থায় Refresh-এ ক্লিক করুন, অথবা Ctrl-F5 টিপুন
  • অপেরা: Ctrl-F5 টিপুন।
/*
//মূল স্ক্রিপ্ট- [[:en:User:Awesome Aasim]]
//পরামর্শ- [[User:SHEKH]]
//বাংলা উইকির জন্য কাস্টমাইজেশন ও অনুবাদ [[User:Yahya]] [[User:SHEKH]]
 */

//<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 + " ([[:w:bn:User:SHEIKH/দ্রুত অপসারণ প্রক্রিয়া|দ্রুত অপসারণ প্রক্রিয়া]])",
							"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("{{db") || result.parse.wikitext["*"].toLowerCase().substring(0, 100).includes("{{db")) {
						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": "{{" + reason + "}} যোগ করা হয়েছে ([[:w:bn:User:SHEIKH/দ্রুত অপসারণ প্রক্রিয়া|দ্রুত অপসারণ প্রক্রিয়া]])",
									"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("[[WP:স১|স১]]: অপ্রাসঙ্গিক, অবোধগম্য এবং অর্থহীন", "db-g1");
				if (mw.config.get("wgNamespaceNumber") != 2) {
					oneClickDelete.addReason("[[WP:স২|স২]]: পরীক্ষামূলক পাতা", "db-g2");
				}
				oneClickDelete.addReason("[[WP:স৩|স৩]]: সুনিশ্চিত ধ্বংসপ্রবণতা", "db-g3");
				oneClickDelete.addReason("[[WP:স৩|স৩]]: ভয়ানক ধোঁকাবাজি", "db-hoax");
				oneClickDelete.addReason("[[WP:স৪|স৪]]: অপসারণ আলোচনার মাধ্যমে অপসারিত পাতা পুনঃতৈরি", "db-g4");
				oneClickDelete.addReason("[[WP:স৫|স৫]]: বাধাপ্রাপ্ত ব্যবহারকারী কর্তৃক তৈরি", "db-g5");
				oneClickDelete.addReason("[[WP:স৬|স৬]]: ভুলক্রমে তৈরি পাতা", "db-error");
				oneClickDelete.addReason("[[WP:স৭|স৭]]: লেখকের অনুরোধে", "db-g7");
				oneClickDelete.addReason("[[WP:স৮|স৮]]: বিদ্যমান নেই এমন পাতার উপর নির্ভরশীল পাতা", "db-g8");
				if (result.parse.wikitext["*"].toLowerCase().substring(0, "#redirect".length).match(/.*\#redirect.*/g)) {
					oneClickDelete.addReason("[[WP:স৮|স৮]]: ভুল পুনর্নির্দেশ", "db-redirnone");
				} else {
					if (mw.config.get("wgNamespaceNumber") % 2 == 1) {
						oneClickDelete.addReason("[[WP:স৮|স৮]]: বিদ্যমান নয় এমন পাতার আলাপ পাতা", "db-talk");
					}
					if (mw.config.get("wgPageName").includes("/") && mw.config.get("wgNamespaceNumber") != 0) {
						oneClickDelete.addReason("[[WP:স৮|স৮]]: বিদ্যমান নয় এমন পাতার উপপাতা", "db-subpage");
					}
					if (mw.config.get("wgNamespaceNumber") == 6) {
						oneClickDelete.addReason("[[WP:স৮|স৮]]: অনুরূপ ফাইল নেই এমন ফাইলের বিবরণ পাতা", "db-imagepage");
					}
					if (mw.config.get("wgNamespaceNumber") == 14) {
						oneClickDelete.addReason("[[WP:স৮|স৮]]: Category populated by deleted/retargeted template", "db-templatecat");
					}
					
				}
				oneClickDelete.addReason("[[WP:স১০|স১০]]: আক্রমণাত্মক পাতা", "db-g10");
				oneClickDelete.addReason("[[WP:স১১|স১১]]: স্প্যাম/দ্ব্যর্থহীন বিজ্ঞাপন", "db-g11");
				if (mw.config.get("wgNamespaceNumber") == 2) {
					oneClickDelete.addReason("[[WP:স১১|স১১]]: স্প্যাম ব্যবহারকারী পাতা", "db-spamuser");
				}
				oneClickDelete.addReason("[[WP:স১৩|স১৩]]: পরিত্যক্ত খসড়া ও নিবন্ধ", "db-g13");
				oneClickDelete.addReason("[[WP:স১৪|স১৪]]: অপ্রয়োজনীয় দ্ব্যর্থতা নিরসন", "db-g14");
				if (result.parse.wikitext["*"].toLowerCase().substring(0, "#redirect".length).match(/.*\#redirect.*/g)) {
					// redirect - এখানে একটু পরিবর্তন প্রয়োজন
					oneClickDelete.addReason("পুনর্নির্দেশসমূহ", "-");
					oneClickDelete.addReason('[[WP:প২|প২]]: অনুপযুক্ত ভিন্ন নামস্থানে পুনর্নির্দেশ', 'db-r2');
					oneClickDelete.addReason('[[WP:প৩|প৩]]: অভাবনীয় বানান ভুলের কারণে তৈরি পুনর্নির্দেশ', 'db-r3');
					if (mw.config.get("wgNamespaceNumber") == 6) {
						oneClickDelete.addReason('Redirect with Wikimedia Commons match', 'db-r4');
					}
				} else {
					if (mw.config.get("wgNamespaceNumber") == 0) {
						// article
						oneClickDelete.addReason("মূল নিবন্ধ", "-");
						oneClickDelete.addReason('[[WP:নি১|নি১]]: কোন প্রসঙ্গ নেই', 'db-a1');
						oneClickDelete.addReason('[[WP:নি৩|নি৩]]: বিষয়বস্তুবিহীন', 'db-a3');
						oneClickDelete.addReason('[[WP:নি৫|নি৫]]: অপর কোনো উইকি প্রকল্পে বিদ্যমান নিবন্ধ', 'db-a5');
						//oneClickDelete.addReason('[[WP:নি৭|নি৭]]: গুরুত্ব সম্পর্কে কোনও প্রমাণ নেই (ব্যক্তি, প্রাণী, সংস্থা, ওয়েব বিষয়বস্তু, ঘটনা)', 'db-a7');
						oneClickDelete.addReason('[[WP:নি৭|নি৭]]: গুরুত্বের ব্যাখ্যা নেই (ব্যক্তি)', 'db-person');
						oneClickDelete.addReason('[[WP:নি৭|নি৭]]: গুরুত্বের ব্যাখ্যা নেই (ব্যান্ড)', 'db-band');
						oneClickDelete.addReason('[[WP:নি৭|নি৭]]: গুরুত্বের ব্যাখ্যা নেই (ক্লাব)', 'db-club');
						oneClickDelete.addReason('[[WP:নি৭|নি৭]]: গুরুত্বের ব্যাখ্যা নেই (কোম্পানি)', 'db-inc');
						oneClickDelete.addReason('[[WP:নি৭|নি৭]]: গুরুত্বের ব্যাখ্যা নেই (ওয়েবসাইট)', 'db-web');
						oneClickDelete.addReason('[[WP:নি৭|নি৭]]: গুরুত্বের ব্যাখ্যা নেই (প্রানি)', 'db-animal');
						oneClickDelete.addReason('[[WP:নি৭|নি৭]]: গুরুত্বের ব্যাখ্যা নেই (ঘটনা)', 'db-event');
						oneClickDelete.addReason('[[WP:নি৯|নি৯]]: গুরুত্বের ব্যাখ্যা নেই (সঙ্গীত)', 'db-a9');
						oneClickDelete.addReason('[[WP:নি১১|নি১১]]: স্পষ্টত আবিষ্কৃত বা উদ্ভাবিত', 'db-a11');
					}
					if (mw.config.get("wgNamespaceNumber") == 6) {
						// files
						oneClickDelete.addReason("ফাইল", "-");
						oneClickDelete.addReason('[[WP:চ২|চ২]]: ত্রুটিপূর্ণ, অনুপস্থিত অথবা শুন্য ফাইল', 'db-f2');
						oneClickDelete.addReason('[[WP:চ৩|চ৩]]: অসম্পূর্ণ লাইসেন্স', 'db-f3');
						oneClickDelete.addReason('No source', 'subst:nsd');
						oneClickDelete.addReason('No license', 'subst:nld');
						oneClickDelete.addReason('No source or license', 'subst:nsdnld');
						oneClickDelete.addReason('[[WP:চ৫|চ৫]]: অনাথ মুক্ত-নয় চিত্রসমূহের ব্যবহার', 'db-f5');
						oneClickDelete.addReason('Orphaned non-free file', 'subst:orfud');
						oneClickDelete.addReason('Orphaned non-free revisions', 'subst:orfurrev');
						oneClickDelete.addReason('Missing non-free use rationale', 'subst:nrd');
						oneClickDelete.addReason('[[WP:চ৭|চ৭]]: অকার্যকর ন্যায্য ব্যবহারের দাবী', 'db-f7');
						oneClickDelete.addReason('Replacable with free images', 'subst:rfu');
						oneClickDelete.addReason('Disputed fair use rationale', 'subst:dfu');
						oneClickDelete.addReason('[[WP:চ৮|চ৮]]: কমন্সে উপলভ্য ফাইল', 'db-f8');
						oneClickDelete.addReason('[[WP:চ১০|চ১০]]: অপ্রয়োজনীয় নন-মিডিয়া ফাইলসমুহ', 'db-f10');
						oneClickDelete.addReason('No evidence of permission', 'subst:npd');
					}
					if (mw.config.get("wgNamespaceNumber") == 14) {
						// categories
						oneClickDelete.addReason("বিষয়শ্রেণী", "-");
						oneClickDelete.addReason('[[WP:বি১|বি১]]: খালি বিষয়শ্রেণী', 'db-c1');
					}
					if (mw.config.get("wgNamespaceNumber") == 2 || mw.config.get("wgNamespaceNumber") == 3) {
						// user pages
						oneClickDelete.addReason("ব্যবহারকারী পাতা/উপপাতা", "-");
						oneClickDelete.addReason('[[WP:ব্য১|ব্য১]]: ব্যবহারকারীর অনুরোধ', 'db-u1');
						oneClickDelete.addReason('[[WP:ব্য২|ব্য২]]: অস্তিত্বহীন ব্যবহারকারী', 'db-u2');
						oneClickDelete.addReason('[[WP:ব্য৩|ব্য৩]]: মুক্ত নয় ছবির গ্যালারি', 'db-u3');
						oneClickDelete.addReason('[[WP:ব্য৫|ব্য৫]]: ওয়েব হোস্ট হিসাবে উইকিপিডিয়ার ভয়ানক অপব্যবহার', 'db-u5');
					}
					if (mw.config.get("wgNamespaceNumber") == 100) {
						// portals
						oneClickDelete.addReason("প্রবেশদ্বার", "-");
						oneClickDelete.addReason('[[WP:P1|P1]]: কোন প্রবেশদ্বার, যা একটি নিবন্ধ হিসাবে দ্রুত অপসারণের যোগ্য [[WP:A1|A1]]', 'db-p1|a1');
						oneClickDelete.addReason('[[WP:P1|P1]]: দ্রুত মুছে ফেলার জন্য নিবন্ধের মানদণ্ড পূরণ করে [[WP:A3|A3]]', 'db-p1|a3');
						oneClickDelete.addReason('[[WP:P1|P1]]: দ্রুত মুছে ফেলার জন্য নিবন্ধের মানদণ্ড পূরণ করে [[WP:A5|A5]]', 'db-p1|a5');
						oneClickDelete.addReason('[[WP:P1|P1]]: দ্রুত মুছে ফেলার জন্য নিবন্ধের মানদণ্ড পূরণ করে [[WP:A7|A7]]', 'db-p1|a7');
						oneClickDelete.addReason('[[WP:P1|P1]]: দ্রুত মুছে ফেলার জন্য নিবন্ধের মানদণ্ড পূরণ করে [[WP:A9|A9]]', 'db-p1|a9');
						oneClickDelete.addReason('[[WP:P1|P1]]: দ্রুত মুছে ফেলার জন্য নিবন্ধের মানদণ্ড পূরণ করে [[WP:A11|A11]]', 'db-p1|a11');
						oneClickDelete.addReason('[[WP:P2|P2]]: কম বিষয়যুক্ত প্রবেশদ্বার', 'db-p2');
					}
				}
				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>