- Add 4 version-fetch strategies (UpToDateCheck API, Store Page Scrape, Community Hub Scrape, Store API Heuristic) — no Steam API key needed - Create orchestrator that tries all strategies, prefers named version over build ID - Add test page at /test-version-fetchers for comparing strategies - Add standalone /api/version-test endpoint (direct Steam App ID, no DB) - Update /api/games/:id/steamdb-version to use new strategies - Disable auto-fetch on submit page by default (NEXT_PUBLIC_VERSION_AUTO_FETCH=true to enable) - SteamDB scraping blocked by Cloudflare; strategies preserved for later enablement
19 lines
616 B
TypeScript
19 lines
616 B
TypeScript
/** Result from a single version-fetch strategy */
|
|
export interface VersionFetchResult {
|
|
/** Human-readable version string like "1.2.3" or "Patch 4.0" */
|
|
versionString: string | null
|
|
/** Numeric build ID from Steam */
|
|
buildId: string | null
|
|
/** Which strategy produced this result */
|
|
source: string
|
|
/** Whether the strategy succeeded (even if partial — e.g. buildId only) */
|
|
success: boolean
|
|
/** Error message if strategy failed completely */
|
|
error?: string
|
|
}
|
|
|
|
/** A version-fetch strategy function */
|
|
export type VersionFetchStrategy = (
|
|
steamAppId: number,
|
|
) => Promise<VersionFetchResult>
|