请注意:更新本页面后,您可能需要清除浏览器缓存才能看到所作变更的影响。
Google Chrome、Microsoft Edge、Mozilla Firefox、Safari:按住⇧ Shift,同时单击“刷新”。
Google Chrome、Microsoft Edge、Mozilla Firefox、Safari:按住⇧ Shift,同时单击“刷新”。
本文件采用知识共享署名-相同方式共享 4.0 国际(CC BY-SA 4.0)许可协议授权。
- 您可以自由地:
- 分享 – 在任何媒介以任何形式复制、发行本作品
- 演绎 – 修改、转换或以本作品为基础进行创作
- 惟须遵守下列条件:
- 署名 – 您必须给出适当的署名(标明原作者),提供指向本许可协议的链接,同时标明是否(对原始作品)作了修改。您可以用任何合理的方式来署名,但是不得以任何方式暗示许可人为您或您的使用背书(即诱导原作者在不了解协议情况下给你授权)。
- 相同方式共享 – 如果您再混合、转换或者基于本作品进行创作,您必须基于与原先许可协议相同或相兼容的许可协议分发您贡献的作品。
"use strict";
/* <nowiki> */
/**
* SPDX-License-Identifier: CC BY-SA-4.0
* _addText: '{{Gadget Header|license=CC-BY-SA-4.0}}'
*
* @source <www.mediawiki.org/wiki/MediaWiki:Gadget-whoisactive.js>
* @dependency ext.gadget.SiteCommonJS, mediawiki.api
*/
$(function () {
if (mw.config.get("wgNamespaceNumber") < 0) {
return;
}
var filteredLinks = [];
var localizedUserNamespace = mw.config.get("wgFormattedNamespaces")[2];
$(".mw-body-content").find("a[title^=\"User:\"], a[title^=\"".concat(localizedUserNamespace, ":\"]")).each(function () {
var link = $(this);
var href = decodeURI(link.attr("href"));
var userRegex = new RegExp("((User)|(".concat(localizedUserNamespace, ")):(.*?)(?=&|$)"));
var username = href.match(userRegex);
var index = username[0].indexOf("/");
if (index === -1) {
filteredLinks.push({
username: username[0],
element: link
});
}
});
if (!filteredLinks.length) {
return;
}
var RECENT = "recent";
var THISYEAR = "thisyear";
var OVERAYEAR = "overayear";
var messages = {
en: {
recent: "Edited recently",
thisyear: "Edited this year",
overayear: "Edited over a year ago"
},
zh: {
recent: "\u8FD1\u671F".concat(wgULS("编辑", "編輯")),
thisyear: "\u4E00\u5E74".concat(wgULS("内有编辑", "內有編輯")),
overayear: "\u4E00\u5E74\u672A\u6709".concat(wgULS("编辑", "編輯"))
}
};
messages["zh-cn"] = messages["zh-my"] = messages["zh-sg"] = messages["zh-hans"] = messages["zh-hk"] = messages["zh-mo"] = messages["zh-tw"] = messages["zh-hant"] = messages.zh;
var localizedMessages = function () {
var lang = mw.config.get("wgUserLanguage");
if (lang in messages) {
return messages[lang];
}
return messages.en;
}();
var getLastActiveMarker = function getLastActiveMarker(timestamp) {
var date = Date.parse(timestamp);
var now = Date.now();
var diff = Math.floor((now - date) / (1000 * 60 * 60 * 24));
var timespan = RECENT;
if (diff > 365) {
timespan = OVERAYEAR;
} else if (diff > 30) {
timespan = THISYEAR;
}
var iconPath = "".concat(mw.config.get("wgServer") + mw.config.get("wgScriptPath"), "/resources/lib/ooui/themes/wikimediaui/images/icons/userContributions-ltr.svg");
var marker = "<span class=\"mw-whoisactivegadget-span mw-whoisactivegadget-".concat(timespan, "\">") + "<img src=\"".concat(iconPath, "\" class=\"mw-whoisactivegadget-filter-").concat(timespan, "\" width=\"15\" height=\"15\"/> ").concat(localizedMessages[timespan], "<span>");
return $(marker);
};
mw.loader.using(["mediawiki.api"], function () {
filteredLinks.forEach(function (item) {
var username = item.username;
var element = item.element;
var api = new mw.Api({
ajax: {
headers: {
"Api-User-Agent": "Qiuwen/1.1 (WhoIsActive/1.1; ".concat(mw.config.get("wgWikiID"), ")")
}
}
});
api.get({
format: "json",
action: "query",
list: "usercontribs",
uclimit: "1",
ucuser: username
}).then(function (result) {
if (result.query.usercontribs.length) {
var timestamp = result.query.usercontribs[0].timestamp;
getLastActiveMarker(timestamp).insertAfter(element);
}
});
});
});
});
/* </nowiki> */