跳转到内容

MediaWiki:Gadget-UserID.js

来自电棍ottowiki

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

  • Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5Ctrl-R(Mac为⌘-R
  • Google Chrome:Ctrl-Shift-R(Mac为⌘-Shift-R
  • Edge:按住Ctrl的同时单击刷新,或按Ctrl-F5
$(function() {
    // 检查所有条件:
    // 1. 用户命名空间(NS_USER = 2)
    // 2. 主页面(非子页面)
    // 3. 浏览模式(action=view)
    if (
        mw.config.get('wgNamespaceNumber') !== 2 ||
        mw.config.get('wgTitle').includes('/') ||
        !document.body.classList.contains('action-view')
    ) return;
    
    // 从页面标题获取用户名
    var username = mw.config.get('wgTitle');
    
    // 根据当前皮肤选择不同的显示方式
    var currentSkin = mw.config.get('skin');
    var isCitizenSkin = currentSkin === 'citizen';
    
    // 创建占位元素
    var uidElement;
    var containerSelector;
    
    if (isCitizenSkin) {
        // Citizen皮肤 - 添加到现有容器
        uidElement = $('<span id="citizen-tagline-user-uid">UID:加载中...</span>');
        containerSelector = '#citizen-tagline-user';
        $(containerSelector).append(uidElement);
    } else {
        // 其他皮肤 - 在内容顶部添加新容器
        uidElement = $('<div id="user-id-display">UID:加载中...</div>')
        
        containerSelector = '#mw-content-text';
        $(containerSelector).prepend(uidElement);
    }
    
    // 通过API获取用户ID
    new mw.Api().get({
        action: 'query',
        list: 'users',
        ususers: username,
        usprop: 'userid',
        formatversion: 2
    }).done(function(data) {
        var user = data.query.users[0];
        if (user && user.userid) {
            $(uidElement).text('UID:' + user.userid);
        } else {
            $(uidElement).text('⚠️ 用户ID获取失败');
        }
    }).fail(function() {
        $(uidElement).text('⚠️ API请求失败');
    });
});