Add Jellyfin mappings and optimize cast queries
Performance and settings updates: - Add a new jellyfin_library_mappings column to the settings table and wire it into the Settings model (update handling and default value). This enables storing Jellyfin library mappings in settings. - Optimize Cast::list by loading all cast filmography in a single joined query and grouping results per cast to avoid N+1 queries. - Remove per-item cast/staff loading in Media model to avoid repeated queries during list/search operations. - Remove game-specific enrichment from MediaController search to stop extra game info lookups during search responses. These changes reduce repeated DB calls and centralize Jellyfin mapping storage.
This commit is contained in:
@@ -278,17 +278,7 @@ class MediaController {
|
||||
$limit = isset($_GET['limit']) ? (int)$_GET['limit'] : 20;
|
||||
|
||||
$result = $this->media->search($filters, $page, $limit);
|
||||
|
||||
// Game-spezifische Daten für Games laden
|
||||
foreach ($result['items'] as &$item) {
|
||||
if ($item['type'] === 'Game') {
|
||||
$gameInfo = $this->game->getGameInfoForList($item['id']);
|
||||
if ($gameInfo) {
|
||||
$item = array_merge($item, $gameInfo);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return ['success' => true, 'data' => $result];
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user