Aurora Lemon(讨论 | 贡献) 小无编辑摘要 |
Aurora Lemon(讨论 | 贡献) 小无编辑摘要 |
||
第1行: | 第1行: | ||
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)", | |||
}; | |||
$.getJSON("https://api.hydcraft.cn/query/MainpageInfoQuery.php", 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); | |||
}) | |||
.fail(function(xhr) { | |||
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 | |||
} | |||
})(); | |||
2024年3月24日 (日) 10:59的版本
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)",
};
$.getJSON("https://api.hydcraft.cn/query/MainpageInfoQuery.php", 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);
})
.fail(function(xhr) {
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
}
})();