Etdiyiniz dəyişikliklərin yayımlanandan sonra effekt verməsi üçün brauzerinizin keşini təmizləməyə ehtiyacınız ola bilər. Bunun üçün Chrome, Firefox, Edge, yaxud Safari istifadəçisisinizsə, klaviaturanızın Shift düyməsini sıxaraq brauzerin ⟳ səhifə yeniləmək düyməsini klik edə bilərsiniz.
// [[:İstifadəçi:Əkrəm Cəfər]] tərəfindən yazılmış, [[İstifadəçi:Nemoralis]] tərəfindən düzəlişlər edilmişdir. (2025)constgroups={"bureaucrat":["bürokrat","B"],"checkuser":["təftişçi","T"],"global-deleter":["qlobal silici","QS"],"global-interface-editor":["qlobal interfeys redaktoru","QİR"],"global-sysop":["qlobal inzibatçı","Qİ"],"interface-admin":["interfeys inzibatçısı","İİ"],"ombuds":["ombudsman","O"],"staff":["Vikimedia Fondunun əməkdaşı","F"],"steward":["stüard","S"],"suppress":["gizlədici","G"],"sysadmin":["sistem administratoru","SA"],"sysop":["inzibatçı","İ"],"wmf-researcher":["Vikimedia Fondu tədqiqatçısı","FT"]}/** * Qadcetin əsas funksiyası. Bir parametr — XTools API-sindən əldə edilən datanı * qəbul edir və həmin dataya əsaslanaraq iş görür:: * https://xtools.wmcloud.org/api/project/admin_groups/az.wikipedia.org */constmarkAdmins=($content,parsedData)=>{// səhifə məzmunundan "İstifadəçi:" və "İstifadəçi müzakirəsi:" ilə başlayan keçidləri seçir və hər birinin üzərində iş görürconstlinks=$content[0].querySelectorAll('a[title^="İstifadəçi:"], a[title^="User:"]')for(leti=0;i<links.length;i++){constanchorElement=links[i],// keçiddən istifadəçi adı olan hissəni alırusername=anchorElement.getAttribute('title').replace('İstifadəçi:','')if(anchorElement.parentElement.classList.contains('mw-usertoollinks'))continueif((/[?#]/.test(anchorElement.href)&&!anchorElement.href.includes('redlink=1')))continue/** * Funksiyaya ötürülən siyahıda istifadəçinin adının olub-olmamasını və bot olmamasını yoxlayır * Əgər şərt ödənirsə, indikatoru əlavə edir. */if(parsedData[username]&&!parsedData[username].includes("bot")){consttipElement=document.createElement('span')tipElement.classList.add('userflags-wrapper')tipElement.innerHTML='('+parsedData[username].map(group=>group.replace(group,match=>(groups[match]?groups[match][1]:''))).filter(x=>x.length!==0).join(', ')+')'tipElement.title='('+parsedData[username].map(group=>group.replace(group,match=>(groups[match]?groups[match][0]:''))).filter(x=>x.length!==0).join(', ')+')'anchorElement.after(tipElement)}}}mw.loader.using(['mediawiki.storage'],()=>{constcacheddata=mw.storage.get('mw-gadget-markadmins')consthasUserLinks=($content)=>{return$content[0]?$content[0].querySelector('a[title^="İstifadəçi:"], a[title^="User:"]')!==null:false;};constaddHooks=(parsedData)=>{mw.hook('wikipage.content').add((content)=>{if(hasUserLinks(content)){markAdmins(content,parsedData);}});mw.hook('global.userlinks').add((content)=>{if(hasUserLinks(content)){markAdmins(content,parsedData);}});}/** * Qadceti hər dəqiqə işə salmamaq üçün səhifədə istifadəçi keçidlərinin olub-olmadığını yoxlayır. * Brauzerdə yadda saxlanmış data varsa həmin datadan istifadə edir, yoxdursa XTools-a sorğu göndərib ordan yeni data əldə edir. */if(cacheddata){constparsedData=JSON.parse(cacheddata)addHooks(parsedData)}else{fetch(`https://xtools.wmcloud.org/api/project/admin_groups/${mw.config.get('wgServerName')}`).then(res=>res.json()).then(json=>{/** Səhifəni hər yükləyəndə XTools-a yeni sorğu göndərməmək üçün datanı brauzerdə 1 saat müddətinə saxla ** https://www.w3schools.com/html/html5_webstorage.asp */mw.storage.set('mw-gadget-markadmins',JSON.stringify(json.users_and_groups),3600)constparsedData=json.users_and_groupsaddHooks(parsedData)}).catch(()=>{/** * XTools işləməyəndə lokaldakı JSON faylını istifadə et */fetch("https://az.wikipedia.org/w/index.php?title=MediaViki:Gadget-markadmins.json&action=raw").then(res=>res.json()).then(json=>{constparsedData=json.users_and_groups;mw.storage.set('mw-gadget-markadmins',JSON.stringify(parsedData),3600)addHooks(parsedData)}).catch(console.error)})}})