import ServerFlag from "@/components/ServerFlag"; import ServerUsageBar from "@/components/ServerUsageBar"; import { cn, formatNezhaInfo, getDaysBetweenDates, parsePublicNote, } from "@/lib/utils"; import { NezhaServer } from "@/types/nezha-api"; import { Card } from "./ui/card"; import { useNavigate } from "react-router-dom"; import { useTranslation } from "react-i18next"; import { GetFontLogoClass, GetOsName, MageMicrosoftWindows, } from "@/lib/logo-class"; import { formatBytes } from "@/lib/format"; export default function ServerCardInline({ now, serverInfo, }: { now: number; serverInfo: NezhaServer; }) { const { t } = useTranslation(); const navigate = useNavigate(); const { name, country_code, online, cpu, up, down, mem, stg, platform, uptime, net_in_transfer, net_out_transfer, public_note, } = formatNezhaInfo(now, serverInfo); const showFlag = true; const parsedData = parsePublicNote(public_note); let daysLeft = 0; let isNeverExpire = false; if (parsedData?.billingDataMod?.endDate) { if (parsedData.billingDataMod.endDate.startsWith("0000-00-00")) { isNeverExpire = true; } else { daysLeft = getDaysBetweenDates( parsedData.billingDataMod.endDate, new Date().toISOString(), ); } } return online ? (
navigate(`/server/${serverInfo.id}`)} >
{showFlag ? : null}

{name}

{parsedData && (daysLeft >= 0 ? (

剩余时间: {isNeverExpire ? "永久" : daysLeft + "天"}

) : (

已过期: {daysLeft * -1} 天

))}
{platform.includes("Windows") ? ( ) : (

)}

{t("serverCard.system")}

{platform.includes("Windows") ? "Windows" : GetOsName(platform)}

{t("serverCard.uptime")}

{(uptime / 86400).toFixed(0)} {t("serverCard.days")}

{"CPU"}

{cpu.toFixed(2)}%

{t("serverCard.mem")}

{mem.toFixed(2)}%

{t("serverCard.stg")}

{stg.toFixed(2)}%

{t("serverCard.upload")}

{up >= 1024 ? `${(up / 1024).toFixed(2)}G/s` : `${up.toFixed(2)}M/s`}

{t("serverCard.download")}

{down >= 1024 ? `${(down / 1024).toFixed(2)}G/s` : `${down.toFixed(2)}M/s`}

{t("serverCard.totalUpload")}

{formatBytes(net_out_transfer)}

{t("serverCard.totalDownload")}

{formatBytes(net_in_transfer)}
) : ( navigate(`/server/${serverInfo.id}`)} >
{showFlag ? : null}

{name}

); }