2023年政策修订增补工作正在进行中,欢迎参与!
  • Moegirl.ICU:萌娘百科流亡社群 581077156(QQ),欢迎对萌娘百科运营感到失望的编辑者加入
  • Moegirl.ICU:账号认领正在试运行,有意者请参照账号认领流程

User:BearBin/js/ShowContributors.js

萌娘百科,万物皆可萌的百科全书!转载请标注来源页面的网页链接,并声明引自萌娘百科。内容不可商用。
跳转到导航 跳转到搜索

注意:在保存之后,您可能需要清除浏览器缓存才能看到所作出的变更的影响。

  • Firefox/Safari:按住“Shift”的同时单击“刷新”,或按“Ctrl-F5”或“Ctrl-R”(Mac为“⌘-R”)
  • Google Chrome:按“Ctrl-Shift-R”(Mac为“⌘-Shift-R”)
  • Internet Explorer:按住“Ctrl”的同时单击“刷新”,或按“Ctrl-F5”
  • Opera:在“工具→首选项”中清除缓存
如果您已登录但该页面出现未登录状态,请尝试在地址栏的地址最后添加代码?_=1来访问最新页面。
添加代码后的本页地址如下:-{R|https://moegirl.icu/User:BearBin/js/ShowContributors.js?_=1}-
文档  [编辑]
var _addText = '{{Documentation|content=* 工具介绍见[[User:BearBin/js#ShowContributors]]。\n* 源代码见[https://github.com/BearBin1215/MoegirlPedia/blob/master/src/gadgets/ShowContributors GitHub]。}}';

// <nowiki>

(()=>{"use strict";$((()=>(async()=>{if(![0,2,4,10,12,14,828,274].includes(mw.config.get("wgNamespaceNumber"))||0===mw.config.get("wgArticleId")||!["view","history"].includes(mw.config.get("wgAction")))return;mw.loader.addStyleTag("#show-contributor-button{float:right;margin-left:.5em;margin-right:0}#show-contributor-header{background:#fff;border-bottom:1px solid #aaa;font-weight:600;padding:.3em;position:sticky;text-align:center;top:0}#show-contributor-headline{font-size:1.3em}#show-contributor-close{border-radius:50%;cursor:pointer;position:absolute;right:5px;top:5px}#show-contributor-close:hover{background-color:#eee}#show-contributor-table{margin:0;width:100%}#show-contributor-table .user-avatar{border-radius:50%;height:20px;width:20px}"),await mw.loader.using(["mediawiki.api","mediawiki.notification","oojs-ui","oojs-ui.styles.icons-interactions","jquery.tablesorter"]);class t extends OO.ui.Dialog{$table=$('<table id="show-contributor-table" class="wikitable" />');$tbody=$("<tbody />");$body;got=!1;static static={...super.static,name:"ShowContributor",tagName:"div"};initialize(){return super.initialize(),this.$body.append($('<div id="show-contributor-header" />').append($('<div id="show-contributor-headline">本页贡献统计</div>'),new OO.ui.IconWidget({icon:"close",id:"show-contributor-close"}).$element.on("click",(()=>this.close()))),this.$table.append($("<thead><th>用户</th><th>编辑数</th><th>增加字节数</th><th>删减字节数</th></thead>"),this.$tbody)),this}getContributors=async()=>{const t=new mw.Api,e={};let o="",i=0;const r={action:"query",format:"json",prop:"revisions",titles:mw.config.get("wgPageName"),rvprop:"user|size",rvlimit:"max",rvdir:"newer"};do{o&&(r.rvcontinue=o);try{const n=await t.get(r);o=n.continue?.rvcontinue;for(const{user:t,size:o}of Object.values(n.query.pages)[0].revisions)e[t]||=[],e[t].push(o-i),i=o}catch(t){mw.notify(`获取编辑记录失败:${t}`,{type:"error"})}}while(o);return e};addRow=(t,{user:e,count:o,add:i,remove:r})=>{t.append($("<tr />").append($("<td />").append($(`<a href="${mw.config.get("wgArticlePath").replace("$1",`User:${e}`)}" />`).append(`<img class="user-avatar" src="https://commons.moegirl.org.cn/extensions/Avatar/avatar.php?user=${e}" />`,e)),`<td>${o}</td>`,`<td>${i}</td>`,`<td>${r}</td>`))};showContributors=t=>{this.$tbody.empty();for(const e in t)this.addRow(this.$tbody,{user:e,count:t[e].length,add:t[e].reduce(((t,e)=>e>0?t+e:t),0),remove:t[e].reduce(((t,e)=>e<0?t+e:t),0)});this.got=!0}}const e=new OO.ui.WindowManager({id:"show-contributor"});$(document.body).append(e.$element);const o=new t({size:"large"});e.addWindows([o]);const i=new OO.ui.ButtonWidget({label:"本页贡献者",icon:"search",flags:"progressive",id:"show-contributor-button"});if("moeskin"===mw.config.get("skin"))$("#tagline").prepend(i.$element);else $("#bodyContent").prepend(i.$element);i.on("click",(async()=>{if(!o.got){i.setLabel("正在查询");const t=await o.getContributors();o.showContributors(t),o.$table.tablesorter(),i.setLabel("本页贡献者")}e.openWindow(o)}))})()))})();

// </nowiki>