MediaWiki:Mainpage.js:修订间差异

MediaWiki界面页面
无编辑摘要
无编辑摘要
第29行: 第29行:
      };
      };


      $.getJSON("https://api.hydcraft.cn/query/MainpageInfoQuery.php", function(data) {
      $.ajax({
       /**
       url: "https://api.hydcraft.cn/query/MainpageInfoQuery.php",
       * 显示服务器人数
       type: 'GET',
       */
       dataType: 'json',
       if (data.server_status.nitrogen.code == 200) {
       success: function (data) {
         let onlinePlayerIndex;
         /**
         let onlineStatusText;
         * 显示服务器人数
         */
         if (data.server_status.nitrogen.code == 200) {
           let onlinePlayerIndex;
           let onlineStatusText;


         if (data.server_status.nitrogen.status == 3) {
           if (data.server_status.nitrogen.status == 3) {
           if (data.server_status.nitrogen.players.now == -1 || data.server_status.nitrogen.max == -1) {
             if (data.server_status.nitrogen.players.now == -1 || data.server_status.nitrogen.max == -1) {
               onlinePlayerIndex = 2;
               onlineStatusText = `服崩了`;
             } else {
               onlinePlayerIndex = 3;
               onlineStatusText = `${data.server_status.nitrogen.players.now}/${data.server_status.nitrogen.players.max}`;
             }
           } else if (data.server_status.nitrogen.status == 2) {
              onlinePlayerIndex = 2;
              onlinePlayerIndex = 2;
              onlineStatusText = ` 服崩了`;
              onlineStatusText = ` 正在开`;
            } else {
            } else if (data.server_status.nitrogen.status == 1) {
              onlinePlayerIndex = 3;
              onlinePlayerIndex = 2;
              onlineStatusText = `${data.server_status.nitrogen.players.now}/${data.server_status.nitrogen.players.max}`;
              onlineStatusText = ` 正在关`;
           } else if (data.server_status.nitrogen.status == 0) {
             onlinePlayerIndex = 1;
             onlineStatusText = `服没开`;
            }
            }
         } else if (data.server_status.nitrogen.status == 2) {
 
            onlinePlayerIndex = 2;
            onlineStatus.css("background", onlineStatusColor[onlinePlayerIndex]);
            onlineStatusText = `正在开`;
            onlinePlayer.text(onlineStatusText);
          } else if (data.server_status.nitrogen.status == 1) {
          } else {
            onlinePlayerIndex = 2;
            onlineStatus.css("background", onlineStatusColor[0]);
           onlineStatusText = `正在关`;
            onlinePlayer.text(`API 炸了`);
         } else if (data.server_status.nitrogen.status == 0) {
           onlinePlayerIndex = 1;
            onlineStatusText = ` 服没开`;
          }
          }


          onlineStatus.css("background", onlineStatusColor[onlinePlayerIndex]);
          /**
          onlinePlayer.text(onlineStatusText);
         * 招标信息
       } else {
         */
         onlineStatus.css("background", onlineStatusColor[0]);
         let tendersMonthlyCount = 0;
         onlinePlayer.text(`API 炸了`);
         tendersWrapper.empty();
       }
          $.each(data.server_community.server_tenders, function(index, tender) {
           if (tender.post_date.split(' ')[0] == tendersMonthlyCount)
             tendersMonthlyCount++;


       /**
           let tendersBlockPrefixMap = {
       *  招标 信息
             10: ' 招标 中',
       */
             11: '已中标',
       let tendersMonthlyCount = 0;
             12: '开工中',
       tendersWrapper.empty();
             13: ' 已交付'
       $.each(data.server_community.server_tenders, function(index, tender) {
            };
         if (tender.post_date.split(' ')[0] == tendersMonthlyCount)
            tendersMonthlyCount++;


         let tendersBlockPrefixMap = {
            let tendersBlockPrefixIconMap = {
           10: '招标中',
             10: 'https://h2-wiki-1254268741.cos.ap-shanghai.myqcloud.com/e/ee/Mainpage-Exchange.svg',
            11: '已中标',
             11: 'https://h2-wiki-1254268741.cos.ap-shanghai.myqcloud.com/3/35/Mainpage-Handshake.svg',
           12: '开工中',
             12: 'https://h2-wiki-1254268741.cos.ap-shanghai.myqcloud.com/5/5f/Mainpage-Construct.svg',
           13: '已交付'
             13: 'https://h2-wiki-1254268741.cos.ap-shanghai.myqcloud.com/d/d5/Mainpage-Done.svg'
         };
           }
 
          
         let tendersBlockPrefixIconMap = {
           const tendersBlockTemplate = `
           10: 'https://h2-wiki-1254268741.cos.ap-shanghai.myqcloud.com/e/ee/Mainpage-Exchange.svg',
             <div class="nav-tenders-block">
           11: 'https://h2-wiki-1254268741.cos.ap-shanghai.myqcloud.com/3/35/Mainpage-Handshake.svg',
               <div class="nav-tenders-block__top">
           12: 'https://h2-wiki-1254268741.cos.ap-shanghai.myqcloud.com/5/5f/Mainpage-Construct.svg',
                 <div class="nav-tenders-block__prefix">${tendersBlockPrefixMap[tender.prefix_id]}</div>
           13: 'https://h2-wiki-1254268741.cos.ap-shanghai.myqcloud.com/d/d5/Mainpage-Done.svg'
                 <div class="nav-tenders-block__icon"><img src="${tendersBlockPrefixIconMap[tender.prefix_id]}"></div>
         }
               </div>
        
               <div class="nav-tenders-block__bottom">
         const tendersBlockTemplate = `
                 <div class="nav-tenders-block__title"><a class="nav-tenders-block__link" href="${tender.view_url}">${tender.title}</a></div>
           <div class="nav-tenders-block">
                 <div class="nav-tenders-block__user">
             <div class="nav-tenders-block__top">
                   <div class="nav-tenders-block__time">${tender.post_date}</div>
               <div class="nav-tenders-block__prefix">${tendersBlockPrefixMap[tender.prefix_id]}</div>
                   <a class="nav-tenders-block__username" href="${tender.user_view_url}"><img src="${tender.user_avatar}">${tender.username}</a>
               <div class="nav-tenders-block__icon"><img src="${tendersBlockPrefixIconMap[tender.prefix_id]}"></div>
                 </div>
             </div>
             <div class="nav-tenders-block__bottom">
               <div class="nav-tenders-block__title"><a class="nav-tenders-block__link" href="${tender.view_url}">${tender.title}</a></div>
               <div class="nav-tenders-block__user">
                 <div class="nav-tenders-block__time">${tender.post_date}</div>
                 <a class="nav-tenders-block__username" href="${tender.user_view_url}"><img src="${tender.user_avatar}">${tender.username}</a>
                </div>
                </div>
              </div>
              </div>
            </div>
            `;
         `;


         tendersWrapper.append(tendersBlockTemplate);
           tendersWrapper.append(tendersBlockTemplate);
         tendersCount.text(tendersMonthlyCount);
           tendersCount.text(tendersMonthlyCount);
       });
         });


       /**
         /**
       * 统计信息
         * 统计信息
       */
         */
       statisticsPlayerTotal.text(data.server_count.player_total);
         statisticsPlayerTotal.text(data.server_count.player_total);
       statisticsEntTotal.text(data.server_count.enterprise_total);
         statisticsEntTotal.text(data.server_count.enterprise_total);
       statisticsLauncherCurrent.text(data.server_count.launcher_current.nitrogen);
         statisticsLauncherCurrent.text(data.server_count.launcher_current.nitrogen);
     })
       },
 
       error: function (xhr, status, error) {
     .fail(function(xhr) {
         onlineStatus.css("background", onlineStatusColor[0]);
       onlineStatus.css("background", onlineStatusColor[0]);
         onlinePlayer.text(`查不到`);
       onlinePlayer.text(`查不到`);
    
 
         tendersWrapper.empty();
       tendersWrapper.empty();
         tendersCount.text(`-`);
       tendersCount.text(`-`);
    
 
         statisticsPlayerTotal.text(`-`);
       statisticsPlayerTotal.text(`-`);
         statisticsEntTotal.text(`-`);
       statisticsEntTotal.text(`-`);
         statisticsLauncherCurrent.text(`-`);
       statisticsLauncherCurrent.text(`-`);
       }
      });
      });
    }
    }

2024年3月24日 (日) 12:21的版本

var mainpageModule = (function() {
    /**
     * 插入头图
     */
    $('<div>').addClass('banner-image').insertBefore('#content');

    /**
     * 请求首页信息
     * 
     * @param {void}
     * @returns {void}
     */
    function mainpageInfoRequest() {
        let formattedToday = new Date().toISOString().split('T')[0];

        const onlineStatus = $(".h2-header > .h2-header__toolbar .h2-header__serverStatus .header-serverStatus-onlineStatus");
        const onlinePlayer = $(".h2-header > .h2-header__toolbar .h2-header__serverStatus .header-serverStatus-onlinePlayer");
        const tendersWrapper = $(".h2-nav .h2-nav__horizonTool .nav-horizonTool-block--1 > .h2-nav__tenders .nav-tenders-content");
        const tendersCount = $(".h2-nav .h2-nav__horizonTool .nav-horizonTool-block--1 > .h2-nav__tenders .nav-tenders-header .nav-tenders-header__count .nav-tenders-header__countvalue");
        const statisticsPlayerTotal = $(".h2-nav .h2-nav__horizonTool .nav-horizonTool-block--1 > .h2-nav__statistics .nav-horizon-block--statistics__cardWrapper .nav-horizon-block--statistics__playerTotal .nav-horizon-block--statistics__content .nav-horizon-block--statistics__count");
        const statisticsEntTotal = $(".h2-nav .h2-nav__horizonTool .nav-horizonTool-block--1 > .h2-nav__statistics .nav-horizon-block--statistics__cardWrapper .nav-horizon-block--statistics__entTotal .nav-horizon-block--statistics__content .nav-horizon-block--statistics__count");
        const statisticsLauncherCurrent = $(".h2-nav .h2-nav__horizonTool .nav-horizonTool-block--1 > .h2-nav__statistics .nav-horizon-block--statistics__cardWrapper .nav-horizon-block--statistics__launcherCurrent .nav-horizon-block--statistics__content .nav-horizon-block--statistics__count");
        
        const onlineStatusColor = {
            0: "var(--header-serverStatus-status--0)",
            1: "var(--header-serverStatus-status--1)",
            2: "var(--header-serverStatus-status--2)",
            3: "var(--header-serverStatus-status--3)",
        };

        $.ajax({
            url: "https://api.hydcraft.cn/query/MainpageInfoQuery.php",
            type: 'GET',
            dataType: 'json',
            success: function (data) {
                /**
                 * 显示服务器人数
                 */
                if (data.server_status.nitrogen.code == 200) {
                    let onlinePlayerIndex;
                    let onlineStatusText;

                    if (data.server_status.nitrogen.status == 3) {
                        if (data.server_status.nitrogen.players.now == -1 || data.server_status.nitrogen.max == -1) {
                            onlinePlayerIndex = 2;
                            onlineStatusText = `服崩了`;
                        } else {
                            onlinePlayerIndex = 3;
                            onlineStatusText = `${data.server_status.nitrogen.players.now}/${data.server_status.nitrogen.players.max}`;
                        }
                    } else if (data.server_status.nitrogen.status == 2) {
                        onlinePlayerIndex = 2;
                        onlineStatusText = `正在开`;
                    } else if (data.server_status.nitrogen.status == 1) {
                        onlinePlayerIndex = 2;
                        onlineStatusText = `正在关`;
                    } else if (data.server_status.nitrogen.status == 0) {
                        onlinePlayerIndex = 1;
                        onlineStatusText = `服没开`;
                    }

                    onlineStatus.css("background", onlineStatusColor[onlinePlayerIndex]);
                    onlinePlayer.text(onlineStatusText);
                } else {
                    onlineStatus.css("background", onlineStatusColor[0]);
                    onlinePlayer.text(`API 炸了`);
                }

                /**
                 * 招标信息
                 */
                let tendersMonthlyCount = 0;
                tendersWrapper.empty();
                $.each(data.server_community.server_tenders, function(index, tender) {
                    if (tender.post_date.split(' ')[0] == tendersMonthlyCount)
                        tendersMonthlyCount++;

                    let tendersBlockPrefixMap = {
                        10: '招标中',
                        11: '已中标',
                        12: '开工中',
                        13: '已交付'
                    };

                    let tendersBlockPrefixIconMap = {
                        10: 'https://h2-wiki-1254268741.cos.ap-shanghai.myqcloud.com/e/ee/Mainpage-Exchange.svg',
                        11: 'https://h2-wiki-1254268741.cos.ap-shanghai.myqcloud.com/3/35/Mainpage-Handshake.svg',
                        12: 'https://h2-wiki-1254268741.cos.ap-shanghai.myqcloud.com/5/5f/Mainpage-Construct.svg',
                        13: 'https://h2-wiki-1254268741.cos.ap-shanghai.myqcloud.com/d/d5/Mainpage-Done.svg'
                    }
                    
                    const tendersBlockTemplate = `
                        <div class="nav-tenders-block">
                            <div class="nav-tenders-block__top">
                                <div class="nav-tenders-block__prefix">${tendersBlockPrefixMap[tender.prefix_id]}</div>
                                <div class="nav-tenders-block__icon"><img src="${tendersBlockPrefixIconMap[tender.prefix_id]}"></div>
                            </div>
                            <div class="nav-tenders-block__bottom">
                                <div class="nav-tenders-block__title"><a class="nav-tenders-block__link" href="${tender.view_url}">${tender.title}</a></div>
                                <div class="nav-tenders-block__user">
                                    <div class="nav-tenders-block__time">${tender.post_date}</div>
                                    <a class="nav-tenders-block__username" href="${tender.user_view_url}"><img src="${tender.user_avatar}">${tender.username}</a>
                                </div>
                            </div>
                        </div>
                    `;

                    tendersWrapper.append(tendersBlockTemplate);
                    tendersCount.text(tendersMonthlyCount);
                });

                /**
                 * 统计信息
                 */
                statisticsPlayerTotal.text(data.server_count.player_total);
                statisticsEntTotal.text(data.server_count.enterprise_total);
                statisticsLauncherCurrent.text(data.server_count.launcher_current.nitrogen);
            },
            error: function (xhr, status, error) {
                onlineStatus.css("background", onlineStatusColor[0]);
                onlinePlayer.text(`查不到`);
        
                tendersWrapper.empty();
                tendersCount.text(`-`);
        
                statisticsPlayerTotal.text(`-`);
                statisticsEntTotal.text(`-`);
                statisticsLauncherCurrent.text(`-`);
            }
        });
    }

    /**
     * 水平工具栏控制移动方向的函数
     * 
     * @param { "left" | "right" } direction - 移动的方向,只能是 "left" 或 "right"
     * @returns {void}
     */
    function navHorizonTool(direction) {
        const horizonTool = $(".h2-nav .h2-nav__horizonTool");
        const switchLeft = $(".h2-nav .h2-nav__horizonTool .h2-nav__horizonToolSwitchLeft .h2-comp-buttonClick");
        const switchRight = $(".h2-nav .h2-nav__horizonTool .h2-nav__horizonToolSwitchRight .h2-comp-buttonClick");
        const horizonIndexNow = $(".h2-nav .h2-nav__horizonTool .h2-nav__horizonTool-title .h2-nav__horizonTool-blockcount .h2-nav__horizonTool-blockcountNow");
        const horizonIndexMax = $(".h2-nav .h2-nav__horizonTool .h2-nav__horizonTool-title .h2-nav__horizonTool-blockcount .h2-nav__horizonTool-blockcountMax");
        
        var horizonToolIndex = parseInt(horizonTool.css("--nav-horizonTool-show-block"));
        const totalSwitches = $(".h2-nav .h2-nav__horizonTool [class^='nav-horizonTool-block']").length - 1;

        if (direction == "left") {
            horizonToolIndex = Math.max(0, horizonToolIndex - 1);
        } else if (direction == "right") {
            horizonToolIndex = Math.min(totalSwitches, horizonToolIndex + 1);
        }

        horizonTool.css("--nav-horizonTool-show-block", horizonToolIndex);

        switchLeft.toggleClass("comp-disabled", horizonToolIndex <= 0);
        switchRight.toggleClass("comp-disabled", horizonToolIndex >= totalSwitches);

        horizonIndexNow.text(horizonToolIndex + 1);
        horizonIndexMax.text(totalSwitches + 1);
    }

    $(function() {
        /**
         * 水平工具栏初始化按钮
         */
        const horizonToolIndex = parseInt($(".h2-nav .h2-nav__horizonTool").css("--nav-horizonTool-show-block"));
        const totalSwitches = $(".h2-nav .h2-nav__horizonTool [class^='nav-horizonTool-block']").length - 1;
        const horizonIndexNow = $(".h2-nav .h2-nav__horizonTool .h2-nav__horizonTool-title .h2-nav__horizonTool-blockcount .h2-nav__horizonTool-blockcountNow");
        const horizonIndexMax = $(".h2-nav .h2-nav__horizonTool .h2-nav__horizonTool-title .h2-nav__horizonTool-blockcount .h2-nav__horizonTool-blockcountMax");

        $(".h2-nav .h2-nav__horizonTool .h2-nav__horizonToolSwitchLeft .h2-comp-buttonClick").toggleClass("comp-disabled", horizonToolIndex <= 0);
        $(".h2-nav .h2-nav__horizonTool .h2-nav__horizonToolSwitchRight .h2-comp-buttonClick").toggleClass("comp-disabled", horizonToolIndex >= totalSwitches);
        
        $(".h2-nav .h2-nav__horizonTool .h2-nav__horizonToolSwitchLeft .h2-comp-buttonClick").on("click", function() {
            navHorizonTool("left");
        });

        $(".h2-nav .h2-nav__horizonTool .h2-nav__horizonToolSwitchRight .h2-comp-buttonClick").on("click", function() {
            navHorizonTool("right");
        });

        horizonIndexNow.text(horizonToolIndex + 1);
        horizonIndexMax.text(totalSwitches + 1);

        /**
         * 初始化首页
         */    
        mainpageInfoRequest();
        setInterval(mainpageInfoRequest, 60 * 1000);
    });

    return {
        navHorizonTool: navHorizonTool
    }
})();
为了让您的浏览体验更加高效、方便和个性化,遵照《中华人民共和国网络安全法》和《信息安全技术个人信息安全规范》,我们需要您允许本站使用Cookies。在某些情况下,Cookies是使网站正常运行的必要条件。