diff --git a/test_scripts/fetch_random_item_browser_console.js b/test_scripts/fetch_random_item_browser_console.js new file mode 100644 index 0000000..b2a6e88 --- /dev/null +++ b/test_scripts/fetch_random_item_browser_console.js @@ -0,0 +1,44 @@ +(async () => { + // 1. Prüfen, ob wir im Jellyfin-Kontext sind + if (!window.ApiClient) { + console.error("ApiClient nicht gefunden. Bist du sicher, dass Jellyfin im Browser offen ist?"); + return; + } + + const apiClient = window.ApiClient; + const userId = apiClient.currentUserId(); + + // 2. Alle Items abrufen (Filme und Serien) + // Wir fordern extra viele Felder an, um "alle verfügbaren Einträge" zu erhalten + const response = await apiClient.getItems(userId, { + Recursive: true, + IncludeItemTypes: "Movie,Series,Episode", + Fields: "Overview,Genres,Path,OfficialRating,Tags,CommunityRating,ExternalUrls,MediaSources,ProductionYear", + EnableImageTypes: "Primary,Backdrop,Banner" + }); + + const items = response.Items; + + if (!items || items.length === 0) { + console.warn("Keine Items in deiner Bibliothek gefunden."); + return; + } + + // 3. Zufälliges Item auswählen + const randomItem = items[Math.floor(Math.random() * items.length)]; + + // 4. Ausgabe in der Konsole + console.log(`%c🎲 Zufälliges Item: ${randomItem.Name}`, "color: #00a4dc; font-weight: bold; font-size: 1.4em;"); + + // Gibt alle Metadaten als ausklappbares Objekt aus + console.log("Vollständige Metadaten:", randomItem); + + // Erstellt eine übersichtliche Tabelle der wichtigsten Werte + console.table({ + Name: randomItem.Name, + Typ: randomItem.Type, + Jahr: randomItem.ProductionYear, + ID: randomItem.Id, + Pfad: randomItem.Path + }); +})(); \ No newline at end of file diff --git a/test_scripts/fetch_random_item_browser_console_2.js b/test_scripts/fetch_random_item_browser_console_2.js new file mode 100644 index 0000000..fc2e42f --- /dev/null +++ b/test_scripts/fetch_random_item_browser_console_2.js @@ -0,0 +1,32 @@ +(async () => { + // 1. Get Auth Data from the active client + const apiClient = window.ApiClient; + if (!apiClient) { + console.error("ApiClient not found. Are you logged in?"); + return; + } + + try { + console.log("Fetching random item..."); + + // 2. Fetch 1 random item + // const result = await apiClient.getItems(apiClient.getCurrentUserId(), { SortBy: "Random", Limit: 1, Recursive: true, IncludeItemTypes: "Movie,Series" }); + const result = await apiClient.getItems(apiClient.getCurrentUserId(), { + SortBy: "Random", + Limit: 1, + Recursive: true, + IncludeItemTypes: "Movie,Series", // Optional: filter types + Fields: "Overview,RemoteTrailers,Genres,CommunityRating,CriticRating,OfficialRating,PremiereDate,RunTimeTicks,ProductionYear,MediaSources" // Request ALL fields + }); + + if (result.Items.length > 0) { + const item = result.Items[0]; + console.log("Random Item Found:", item.Name); + console.dir(item); // Prints the full interactive object + } else { + console.warn("No items found."); + } + } catch (error) { + console.error("Error fetching item:", error); + } +})();