Steam-KaKaBase
{{ message }}
{{ t('welcome1') }}
{{ t('welcome2') }}
{{ t('welcome3') }}
——by KK
{{ t('todayLow') }}
{{ t('noCnLow') }}
{{ t('dailyGem') }}
{{ dailyRecommendationCountdown }}
{{ t('noEligibleGames') }}
{{ t('nichePool') }} {{ nichePoolSummary }}
{{ t('nicheBuilding') }}
{{ dealPoolTitle }} {{ dealPoolDescription }}
{{ t('noDealPoolGames') }}
{{ t('hotList') }} {{ filteredHotPageGames.length }} / {{ hotPageGames.length }} apps · {{ t('updatedAt') }} {{ latestHotUpdatedAt }}
{{ hotPageLimit < 200 ? t('scrollMore') : t('localLimit') }}
{{ t('hotBuilding') }}
{{ hotPageGames.length ? t('noFilteredHot') : t('noHot') }}

{{ t('monitorToday') }}

{{ t('visitors') }}{{ monitoring.today.visitors }}
{{ t('requests') }}{{ monitoring.today.requests }}
{{ t('newVisitors') }}{{ monitoring.today.new_visitors }}
{{ t('newUsers') }}{{ monitoring.today.new_users_today }}
{{ t('totalFavorites') }}{{ monitoring.today.favorites_total }}

{{ t('monitorServer') }}

Web{{ monitoring.server.web }}
Crawler{{ monitoring.server.crawler.running ? t('running') : t('stopped') }}
{{ t('database') }}{{ monitoring.server.database }}
{{ t('backup') }}{{ monitoring.server.backup }}
{{ t('controls') }}{{ monitoring.server.controls.enabled ? t('enabled') : t('disabled') }}

{{ t('serverResources') }}

CPU{{ monitoring.server.resources.cpu_cores }} {{ t('cores') }} · {{ monitoring.server.resources.load.length ? monitoring.server.resources.load[0].toFixed(2) : '-' }} load
RAM{{ formatBytes((monitoring.server.resources.memory.total_bytes || 0) - (monitoring.server.resources.memory.available_bytes || 0)) }} / {{ formatBytes(monitoring.server.resources.memory.total_bytes) }}
DISK{{ formatBytes(monitoring.server.resources.disk.used_bytes) }} / {{ formatBytes(monitoring.server.resources.disk.total_bytes) }}

Crawler

{{ t('queue') }}{{ monitoring.crawler.queue.active_total }}
Steam 429{{ monitoring.crawler.rate_limits.steam_api?.count || 0 }}
ITAD 429{{ monitoring.crawler.rate_limits.itad?.count || 0 }}
{{ t('playerBudget') }}{{ monitoring.crawler.coverage_budget?.players?.used ?? 0 }} / {{ monitoring.crawler.coverage_budget?.players?.released ?? 0 }} · {{ t('dailyLimit') }} {{ monitoring.crawler.coverage_budget?.players?.limit ?? '-' }}
{{ t('priceBudget') }}{{ monitoring.crawler.coverage_budget?.price?.used ?? 0 }} / {{ monitoring.crawler.coverage_budget?.price?.released ?? 0 }} · {{ t('dailyLimit') }} {{ monitoring.crawler.coverage_budget?.price?.limit ?? '-' }}
{{ t('heartbeat') }}{{ monitoring.crawler.heartbeat_age_seconds ?? '-' }}s
{{ t('lastSuccess') }}{{ formatMonitorTime(monitoring.crawler.last_success_at) }}

{{ t('database') }}

{{ t('totalGames') }}{{ monitoring.database.games_total }}
{{ t('snapshots') }}{{ monitoring.database.player_snapshots + monitoring.database.price_snapshots + monitoring.database.review_snapshots }}
SQLite{{ formatBytes(monitoring.database.storage.database_bytes) }}
WAL{{ formatBytes(monitoring.database.storage.wal_bytes) }}
Schemav{{ monitoring.database.schema }}

{{ t('backup') }}

{{ t('localBackup') }}{{ formatMonitorTime(monitoring.backups.local.at) }}
{{ t('offsiteBackup') }}{{ formatMonitorTime(monitoring.backups.offsite.at) }}
{{ t('recoveryDrill') }}{{ monitoring.backups.drill?.success ? t('success') : '-' }}
{{ t('drillAt') }}{{ formatMonitorTime(monitoring.backups.drill?.completed_at) }}

{{ t('controls') }}

{{ monitoring.server.controls.enabled ? t('controlNotice') : t('controlsDisabled') }}

{{ controlLabel(action) }}
{{ controlLabel(event.action) }} · {{ formatMonitorTime(event.at) }}{{ event.success ? t('success') : t('failed') }}

{{ t('adminList') }}

{{ admin.username }}{{ admin.owner ? ' · Owner' : '' }}

{{ t('healthSummary') }}

{{ item.label }} · {{ item.detail }}{{ item.ok ? t('healthy') : t('needsAttention') }}

{{ t('recentLogs') }}

  • {{ line }}
  • -

{{ t('memeManager') }} {{ adminMemes.length }} · {{ formatBytes(adminMemesTotalBytes) }}

{{ t('memeManagerHint') }}

{{ meme.name }}{{ formatBytes(meme.size) }}
-

{{ t('memeUploadHint') }}

{{ t('loadingMonitor') }}

{{ displayGameName(selected) }}

{{ selected.short_description || t('noDescription') }}
{{ t('releaseDate') }}{{ selected.release_date }}
{{ t('dataUpdated') }}{{ t('online') }} {{ relativeAge(playerHistory[playerHistory.length - 1]?.fetched_at) }} · {{ selectedRegionLabel }} {{ t('price') }} {{ relativeAge(selectedRegionPrice?.fetched_at) }} · {{ t('reviews') }} {{ relativeAge(reviews?.fetched_at) }}
{{ t('currentPlayers') }}
{{ formatPlayers(latestPlayers) }}
{{ t('sitePeak') }}
{{ formatPlayers(selected.site_peak_players) }}
{{ t('recordedSince') }} {{ localTime(selected.site_peak_recorded_since, true) }}
{{ t('playerReviews') }}
{{ latestReviewScore }}
{{ selectedRegionLabel }} {{ t('price') }}
{{ currentPrice() }}
{{ historicalLowLabel() }}
{{ t('discountEnds') }} {{ saleEndsText(selectedRegionPrice.discount_ends_at) }}
{{ selectedRegionLabel }} {{ t('priceHistory') }} {{ selectedRegionCurrency || t('nativeCurrency') }} {{ t('nativePrice') }}
{{ t('onlinePlayers') }} {{ t('snapshotBars') }}
{{ localTime(playerTooltip.time) }}
{{ t('playersTooltip') }}: {{ formatPlayers(playerTooltip.count) }}
{{ t('regionalPrices') }} {{ t('cachedRegions', { count: selectedPrices.length }) }}
{{ t('region') }} {{ t('price') }} {{ t('originalPrice') }} {{ t('discount') }} {{ t('discountEnds') }} {{ t('currency') }} {{ t('source') }} {{ t('collectedAt') }}
{{ price.region }} {{ price.final_formatted || cents(price.final, price.currency) }} {{ cents(price.initial, price.currency) }} {{ price.discount_percent ? '-' + price.discount_percent + '%' : '-' }} {{ saleEndsText(price.discount_ends_at) || '-' }} {{ price.currency || '-' }} {{ price.source }} {{ localTime(price.fetched_at) }}
{{ t('noPriceSnapshot') }}
{{ t('selectGameHint') }}

{{ t('privacyNotice') }}

{{ t('deleteAccount') }}

{{ t('deleteAccountWarning') }}