跳到内容
折叠侧栏
搜索
中文(中国大陆)
创建账号
个人工具
创建账号
登录
导航
首页
最近更改
随机页面
友情链接
互助客栈
加入我们
沙盒
文件列表
导航
中珂院图库
AI研究所
工具
链入页面
相关更改
特殊页面
页面信息
其他语言
查看“MediaWiki:Gadget-ShowUserGroup.js”的源代码
消息
讨论
English
阅读
查看源代码
查看历史
更多
阅读
查看源代码
查看历史
←
MediaWiki:Gadget-ShowUserGroup.js
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
此页面为本wiki上的软件提供界面文本,并受到保护以防止滥用。 如欲修改所有wiki的翻译,请访问
translatewiki.net
上的MediaWiki本地化项目。
您无权编辑此JavaScript页面,因为编辑此页面可能会影响所有访问者。
您可以查看和复制此页面的源代码。
"use strict"; $(() => (async () => { await mw.loader.using(["mw.Api", "mediawiki.Uri"]); const groupsKey = ["bureaucrat", "checkuser", "sysop", "patroller", "bot"].reverse(); const groupsStr = { bureaucrat: "行", checkuser: "查", sysop: "管", patroller: "巡", bot: "机", }; let cache; try { cache = JSON.parse(localStorage.getItem("AnnTools-usergroup")); if (!$.isPlainObject(cache) || typeof cache.timestamp !== "number" || cache.timestamp < new Date().getTime() - 30 * 60 * 1000 || !$.isPlainObject(cache.groups)) { throw new Error(); } else { for (const i of groupsKey) { if (!Array.isArray(cache.groups[i])) { throw new Error(); } } } } catch { const api = new mw.Api(); const result = {}; const eol = Symbol(); let aufrom = undefined; while (aufrom !== eol) { const _result = await api.post({ action: "query", list: "allusers", augroup: groupsKey.join("|"), aulimit: "max", auprop: "groups", aufrom, }); if (_result.continue) { aufrom = _result.continue.aufrom; } else { aufrom = eol; } _result.query.allusers.forEach(({ name, groups, }) => { groups.forEach((group) => { if (groupsKey.includes(group)) { result[group] = result[group] || []; if (!result[group].includes(name)) { result[group].push(name); } } }); }); } cache = { timestamp: new Date().getTime(), groups: result, }; } localStorage.setItem("AnnTools-usergroup", JSON.stringify(cache)); const hook = () => { $("a.mw-userlink:not(.markrights)").each((_, ele) => { ele.classList.add("markrights"); const uri = new mw.Uri(ele.href); let username; const path = decodeURI(uri.path); if (/^\/User:[^/=%]+/.test(path)) { username = path.match(/^\/User:([^/=%]+)/)[1].replace(/_/g, " "); } else if (/^User:[^/=%]+/.test(uri.query.title)) { username = uri.query.title.match(/^User:([^/=%]+)/)[1].replace(/_/g, " "); } if (username) { const self = $(ele); groupsKey.forEach((group) => { if (cache.groups[group].includes(username)) { self.after(`<sup class="markrights-${group}">${groupsStr[group]}<sup>`); } }); } }); }; hook(); mw.hook("wikipage.content").add(hook); $(window).on("load", hook); $("body").append("<style>.markrights-bureaucrat{color:black}.markrights-checkuser{color:purple}.markrights-suppress{color:purple}.markrights-sysop{color:mediumvioletred}.markrights-patroller{color:sienna}.markrights-bot{color:blue}.markrights-goodeditor{color:green}sup[class^=markrights-]+sup[class^=markrights-]{margin-left:2px}</style>"); })());
返回
MediaWiki:Gadget-ShowUserGroup.js
。