+
- External APIs
- Provider Status & API-Football Sync
+ 외부 API
+ 제공자 상태 및 API-Football 동기화
-
+
- 새로운 시즌은 Teams → Standings 순서로 동기화한 뒤 나머지 동기화를 진행해 주세요.
+ 새로운 시즌은 팀 → 순위 순서로 동기화한 뒤 나머지 동기화를 진행해 주세요.
@@ -1469,11 +1624,10 @@ export function AdminPage({ authState }: AdminPageProps) {
마지막 시도: {formatDateTime(apiFootballStatus?.lastAttemptAt ?? null)}
{apiFootballStatus?.lastFailureAt ? 마지막 실패: {formatDateTime(apiFootballStatus.lastFailureAt)} : null}
{(apiFootballStatus?.failureCount ?? 0) > 0 ? 기록된 장애: {apiFootballStatus?.failureCount}회 : null}
- {apiFootballStatus?.lastOperation ? 작업: {apiFootballStatus.lastOperation} : null}
+ {apiFootballStatus?.lastOperation ? 작업: {externalApiOperationLabel(apiFootballStatus.lastOperation)} : null}
{apiFootballStatus?.lastAttemptCount ? 시도 횟수: {apiFootballStatus.lastAttemptCount} : null}
- {apiFootballStatus?.lastErrorCategory ? 오류: {apiFootballStatus.lastErrorCategory}{apiFootballStatus.lastHttpStatus ? ` (${apiFootballStatus.lastHttpStatus})` : ""} : null}
+ {apiFootballStatus?.lastErrorCategory ? 오류: {externalApiErrorCategoryLabel(apiFootballStatus.lastErrorCategory)}{apiFootballStatus.lastHttpStatus ? ` (${apiFootballStatus.lastHttpStatus})` : ""} : null}
- {apiFootballStatus?.lastErrorMessage ?
{apiFootballStatus.lastErrorMessage}
: null}
{newsProviderStatuses.map((status) => (
@@ -1488,11 +1642,10 @@ export function AdminPage({ authState }: AdminPageProps) {
마지막 시도: {formatDateTime(status.lastAttemptAt)}
{status.lastFailureAt ? 마지막 실패: {formatDateTime(status.lastFailureAt)} : null}
연속 실패: {status.failureCount ?? 0}회
- {status.lastOperation ? 작업: {status.lastOperation} : null}
+ {status.lastOperation ? 작업: {externalApiOperationLabel(status.lastOperation)} : null}
{status.lastAttemptCount ? 시도 횟수: {status.lastAttemptCount} : null}
- {status.lastErrorCategory ? 오류: {status.lastErrorCategory}{status.lastHttpStatus ? ` (${status.lastHttpStatus})` : ""} : null}
+ {status.lastErrorCategory ? 오류: {externalApiErrorCategoryLabel(status.lastErrorCategory)}{status.lastHttpStatus ? ` (${status.lastHttpStatus})` : ""} : null}
- {status.lastErrorMessage ? {status.lastErrorMessage}
: null}
))}
@@ -1503,18 +1656,22 @@ export function AdminPage({ authState }: AdminPageProps) {
const cooldownSeconds = syncCooldownSeconds(manualSyncCooldownKey(item.task));
return (
-
@@ -1523,10 +1680,10 @@ export function AdminPage({ authState }: AdminPageProps) {
- Background Sync Jobs
+ 백그라운드 동기화 작업
void reloadSyncJobs(false)}>
{syncJobsStatus === "loading" ? : null}
- Refresh
+ 새로고침
{syncJobsStatus === "loading" && syncJobs.length === 0 ?
작업 내역을 불러오는 중입니다.
: null}
@@ -1556,77 +1713,61 @@ export function AdminPage({ authState }: AdminPageProps) {
/>
{coverageStatus === "error" ? (
- 시즌 지원 범위를 불러오지 못해 수동 싱크 요청을 잠시 막았습니다.
+ 시즌 지원 범위를 불러오지 못해 수동 동기화 요청을 잠시 막았습니다.
) : null}
{coverageStatus === "ready" && !selectedCoverage ? (
- 선택한 시즌은 API-Football coverage 정보가 없어 수동 싱크를 요청할 수 없습니다.
+ 선택한 시즌은 API-Football 지원 범위 정보가 없어 수동 동기화를 요청할 수 없습니다.
) : null}
-
- {fixtureDetailCooldownSeconds > 0 ? {fixtureDetailCooldownSeconds}초 후 Fixture Detail을 다시 요청할 수 있습니다.
: null}
- {syncMessage ? {syncMessage}
: null}
-