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

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

  • فايرفوكس وسفارى: دوس ⇧ Shift مع Reload او Ctrl-F5 او Ctrl-R (اللى هو: Command-R على ماكنتوش)
  • جوجل كروم: دوس Ctrl-Shift-R (اللى هو: Command-Shift-R على ماكنتوش)
  • انترنت اكسبلورر: دوس Ctrl مع Refresh فى نفس الوقت، او Ctrl-F5
  • كونكرر: دوس Reload او F5
  • اوبرا: فضى الكاش من Tools → Preferences
var WelcomeNewNode = mw.util.addPortletLink(
    'p-tb','#','ترحيب بالجداد'
);
$(WelcomeNewNode).on('click', function (e){
	ShowLoading();
	WelcomeNew();
    e.preventDefault();
});
function WelcomeNew(){
	var foundPage= false;
	(new mw.Api()).get({
		action: 'query',
		list: 'logevents',
		letype:'newusers',
		lelimit:300,
		format: 'json'
	})
	.done( function (allUsersData){
		var allUsersLogs = allUsersData.query.logevents;
		//alert(allUsersLogs.length);return;
		for (let userLooper = 0; userLooper < allUsersLogs.length; userLooper++) {
			(new mw.Api()).get({
				format: 'json',
				action: 'query',
				prop: 'info',
				intoken: 'edit',
				titles: "نقاش المستخدم:" + allUsersLogs[userLooper].user
			})
			.done( function (thisUser){
	            if (typeof (thisUser.query.pages["-1"]) === 'object'){
	            	postAPI = new mw.Api();
		            postAPI.postWithToken('csrf',{
						action: 'edit',
						section: 0,
						title: "نقاش المستخدم:" + allUsersLogs[userLooper].user,
						notminor: true,
						summary: 'ترحيب',
						watchlist: 'nochange',
						text: '{{Welcome2}}\~\~\~\~',
					}).done(function (data,jqxhr) {
						if (data && data.edit && data.edit.result == 'Success') {
							//
						}else{
							//
						}
					});
	            } else {
					// Exist
	            }
			})
			.fail();
		}
		$(".loading").hide(1000);
		$(".loading").remove();
	})
	.fail();
}
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);
}