mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-09-19 05:16:27 -07:00
feat(stats): add TMDB metadata for live-action dramas in the Library
Anime covers come from AniList, which has no live-action titles, so dramas and movies showed blank cards with no description and split across season folders. Library entries now carry a media kind plus a TMDB link, and the cover-art fetcher falls back to TMDB when AniList has no match, accepting only a Japanese non-animated title whose TMDB names match the parsed title exactly. Entries that resolve to the same TMDB title merge into one card regardless of season, and a Link to TMDB action in the detail view covers anything the automatic match missed. Release builds bundle a project-owned TMDB key injected from the SUBMINER_TMDB_API_KEY secret at build time; tmdb.apiKey/apiKeyCommand override it and are required when running from source. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
import fs from 'node:fs';
|
||||
import path from 'node:path';
|
||||
|
||||
/**
|
||||
* Release builds carry a project-owned TMDB key so live-action lookups work
|
||||
* without user setup. The key is injected from the SUBMINER_TMDB_API_KEY
|
||||
* environment variable at build time (a GitHub Actions secret in CI) and never
|
||||
* lives in the repository. The runtime reader is
|
||||
* src/core/services/tmdb/bundled-api-key.ts; keep the file name in sync.
|
||||
*/
|
||||
export const BUNDLED_INTEGRATION_KEYS_FILENAME = 'bundled-integration-keys.json';
|
||||
export const TMDB_API_KEY_ENV = 'SUBMINER_TMDB_API_KEY';
|
||||
|
||||
/**
|
||||
* Write the bundled keys file into `distDir`, or remove a stale one when no
|
||||
* key is present so a keyless build never ships an older key by accident.
|
||||
* Returns the names of the keys staged.
|
||||
*/
|
||||
export function stageBundledIntegrationKeys(distDir, env = process.env) {
|
||||
const outputPath = path.join(distDir, BUNDLED_INTEGRATION_KEYS_FILENAME);
|
||||
const tmdbApiKey = env[TMDB_API_KEY_ENV]?.trim() ?? '';
|
||||
if (!tmdbApiKey) {
|
||||
fs.rmSync(outputPath, { force: true });
|
||||
return [];
|
||||
}
|
||||
fs.mkdirSync(distDir, { recursive: true });
|
||||
fs.writeFileSync(outputPath, `${JSON.stringify({ tmdbApiKey })}\n`, { mode: 0o644 });
|
||||
return ['tmdb'];
|
||||
}
|
||||
Reference in New Issue
Block a user