مستخدم:HitomiAkane/Wantedcategories.js

من ويكيبيديا، الموسوعه الحره

ملحوظه: بعد التسييف، ممكن تحتاج تفضى كاش البراوزر بتاعك عشان تشوف التغييرات اللى عملتها، بالطريقه دى:

  • فايرفوكس وسفارى: دوس ⇧ Shift مع Reload او Ctrl-F5 او Ctrl-R (اللى هو: Command-R على ماكنتوش)
  • جوجل كروم: دوس Ctrl-Shift-R (اللى هو: Command-Shift-R على ماكنتوش)
  • انترنت اكسبلورر: دوس Ctrl مع Refresh فى نفس الوقت، او Ctrl-F5
  • كونكرر: دوس Reload او F5
  • اوبرا: فضى الكاش من Tools → Preferences
let WantedcategoriesNode = mw.util.addPortletLink(
    'p-tb','#','تصنيفات مطلوبه'
);
$(WantedcategoriesNode).on('click', function (e){
	ShowLoading();
	AddWantedcategories();
    e.preventDefault();
});
function AddWantedcategories(){
	let foundPage= false;
	let currentPageName = mw.config.get('wgPageName');
	let nextqpPage = 0;
	for (let countLooper = 0; countLooper < 10; countLooper++) {
		ShowLoading();
		(new mw.Api()).get({
			action: 'query',
			list: 'querypage',
			qppage:'Wantedcategories',
			qplimit:500,
			qpoffset:nextqpPage,
			format: 'json'
		})
		.done( function (allWantedcategories){
			let allCategoriesLogs = allWantedcategories.query.querypage.results;
			for (let categoriesLooper = 0; categoriesLooper < allCategoriesLogs.length; categoriesLooper++) {
				getAPI = (new mw.Api()).get({
					action: 'query',
					prop: 'info',
					titles:allCategoriesLogs[categoriesLooper].title,
					format: 'json'
				})
				.done( function (thisCategoryData){
					if (typeof (thisCategoryData.query.pages["-1"]) === 'object'){
						postAPI = new mw.Api();
						postAPI.postWithToken('csrf',{
							action: 'edit',
							section: 0,
							title: allCategoriesLogs[categoriesLooper].title,
							notminor: true,
							summary: 'تصنيف مطلوب',
							watchlist: 'nochange',
							text: '{{فهرس تصنيف}}',
						}).done(function (data,jqxhr) {
							if (data && data.edit && data.edit.result == 'Success') {
								postAPI2 = new mw.Api();
								postAPI2.postWithToken('csrf',{
									action: 'edit',
									section: 0,
									title: "نقاش التصنيف:" + allCategoriesLogs[categoriesLooper].title.replace("تصنيف:",""),
									notminor: true,
									summary: 'نقاش تصنيف مطلوب',
									watchlist: 'nochange',
									text: '{{ترويسة مناقشه}}',
								}).done(function (data,jqxhr) {
									if (data && data.edit && data.edit.result == 'Success') {
										//
									}else{
										//
									}
								});
							}else{
								//
							}
						});
					}
				})
				.fail();
			}
			$(".loading").hide(1000);
			$(".loading").remove();
		})
		.fail(function (){
			$(".loading").hide(1000);
			$(".loading").remove();
		});
		nextqpPage=nextqpPage+500;
	}
}
function ShowLoading(){
	$("head").append(`<style>
	  .loading {
	      position: fixed;
	      top: 0; right: 0;
	      bottom: 0; left: 0;
	      background:rgba(143, 143, 143, .5);
	      transition: visibility 2s, opacity 2s linear;
	  }
	  .loader {
	      left: 50%;
	      margin-left: -4em;
	      font-size: 10px;
	      border: .8em solid rgba(255, 255, 255, .8);
	      border-left: .8em solid rgba(88, 179, 224, 1);
	      animation: spin 1.1s infinite linear;
	  }
	  .loader, .loader:after {
	      border-radius: 50%;
	      width: 6em;
	      height: 6em;
	      display: block;
	      position: absolute;
	      top: 50%;
	      margin-top: -4.05em;
	  }
	  @keyframes spin {
	    0% {
	      transform: rotate(360deg);
	    }
	    100% {
	      transform: rotate(0deg);
	    }
	  }
	</style>`);
	
	$("body").append (`<div class="loading" style = "display:none;"><div class="loader"></div></div>`);
	$(".loading").show(1000);
}