مستخدم: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);
}