Skip to content

Commit 7b7c9f3

Browse files
committed
🐛 Fixed external image url Bug
=> Sometimes the images where not downloaded the url in metadata was an external url. -> Client requested images from external url insted of oms-BE Also cleaned year from folder name for tmdb query
1 parent a946ba9 commit 7b7c9f3

4 files changed

Lines changed: 20 additions & 9 deletions

File tree

OpenMediaServer.Test/Services/DiscoveryShowServiceShould.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,8 @@ public async Task CreateFromPaths_FirstItemSeason(string path, string? folderPat
169169
[InlineData("/media/Shows/test/The Expanse/Season 1/The EXPANSE - S01 E02.mp4", "The Expanse", "/media/Shows/test/The Expanse")]
170170
[InlineData("/media/Shows/test/The 100/Season 1/S01E02.mp4", "The 100", "/media/Shows/test/The 100")]
171171
[InlineData("/media/Shows/test/Cyberpunk Edegrunners/Season 1/Cyberpunk - Edgerunners - S01E02 - DUAL 1080p WEB H.264 -Asdfdf (AG).mkv", "Cyberpunk Edegrunners", "/media/Shows/test/Cyberpunk Edegrunners")]
172+
[InlineData("/media/Shows/ONE PIECE (2023)/Season 1/ONE.PIECE.2023.S01E01.German.ML.EAC3.2160p.NF.WEB.H265-ZeroTwo.mkv", "ONE PIECE", "/media/Shows/ONE PIECE (2023)")]
173+
172174
public async Task CreateFromPaths_FirstItemShow(string path, string title, string? folderPath)
173175
{
174176
// Arrange

OpenMediaServer/Services/Discovery/DiscoveryShowService.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,20 +35,22 @@ public async Task CreateShow(string path)
3535

3636
_logger.LogDebug("Show detected");
3737

38+
39+
var cleanedFolderTitle = !string.IsNullOrWhiteSpace(discoveryInfo.Year) ? folderTitle?.Replace(discoveryInfo.Year, "")?.Replace("()", "")?.Trim() : folderTitle?.Trim();
3840
// Show
39-
var showPath = Path.Combine(Globals.MediaFolder, "Shows", folderTitle);
41+
var showPath = Path.Combine(Globals.MediaFolder, "Shows", cleanedFolderTitle);
4042
var show = await _inventoryService.GetItem("Show", i => i.FolderPath == showPath);
4143

4244
if (show == null)
4345
{
44-
show = await _binService.GetItem<InventoryItem>(folderTitle, "Show");
46+
show = await _binService.GetItem<InventoryItem>(cleanedFolderTitle, "Show");
4547

4648
if (show == null)
4749
{
4850
show = new InventoryItem
4951
{
5052
Id = Guid.NewGuid(),
51-
Title = folderTitle,
53+
Title = cleanedFolderTitle,
5254
Category = "Show",
5355
};
5456

OpenMediaServer/Services/Metadata/EpisodeMetadataService.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,9 @@ public async Task<MetadataModel> GetEpisodeMetadata(string? year, string title,
3939
{
4040
episodeInfo = await tMDbApi.GetEpisode(showData.Id, (int)season, (int)episode, Globals.TmdbApiKey);
4141
}
42-
42+
43+
var stillPath = episodeInfo?.StillPath ?? omdbData?.Poster;
44+
4345
var backdropBlurHash =
4446
await WriteImageAndReturnBlurHash(episodeInfo?.StillPath, "backdrop", "Episode", metadataId.ToString());
4547

@@ -58,9 +60,9 @@ public async Task<MetadataModel> GetEpisodeMetadata(string? year, string title,
5860
Language = omdbData?.Language,
5961
Country = omdbData?.Country,
6062
Awards = omdbData?.Awards,
61-
Backdrop = episodeInfo?.StillPath != null
63+
Backdrop = stillPath != null
6264
? $"{Globals.Domain}/images/Episode/{metadataId}/backdrop"
63-
: omdbData?.Poster,
65+
: null,
6466
BackdropBlurHash = backdropBlurHash,
6567
Metascore = omdbData?.Metascore,
6668
ImdbRating = omdbData?.ImdbRating,

OpenMediaServer/Services/Metadata/MovieMetadataService.cs

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,13 @@ public async Task<MetadataModel> GetMetadata(string? year, string title, string?
3535
tmdbImages = await tMDbApi.GetMovieImages(tmdbData.Id, apiKey: Globals.TmdbApiKey);
3636
}
3737

38-
var logoPath = tmdbImages?.Logos.Where(i => i.Iso_639_1 == language).FirstOrDefault()?.FilePath;
39-
var posterPath = tmdbImages?.Posters.Where(i => i.Iso_639_1 == language).FirstOrDefault()?.FilePath;
38+
var tmdbLogosSorted = tmdbImages?.Logos?.OrderBy(i => i.VoteAverage)?.ToList();
39+
var tmdbPostersSorted = tmdbImages?.Posters?.OrderBy(i => i.VoteAverage)?.ToList();
40+
41+
var logoPath = tmdbLogosSorted?.FirstOrDefault(i => i.Iso_639_1 == language)?.FilePath ??
42+
tmdbLogosSorted?.FirstOrDefault()?.FilePath;
43+
var posterPath = tmdbPostersSorted?.FirstOrDefault(i => i.Iso_639_1 == language)?.FilePath ??
44+
tmdbPostersSorted?.FirstOrDefault()?.FilePath ?? omdbData?.Poster;
4045

4146
var backdropBlurHash = await WriteImageAndReturnBlurHash(tmdbData?.BackdropPath, "backdrop", "Movie", metadataId.ToString());
4247
var logoBlurHash = await WriteImageAndReturnBlurHash(logoPath, "logo", "Movie", metadataId.ToString());
@@ -57,7 +62,7 @@ public async Task<MetadataModel> GetMetadata(string? year, string title, string?
5762
Language = omdbData?.Language,
5863
Country = omdbData?.Country,
5964
Awards = omdbData?.Awards,
60-
Poster = posterPath != null ? $"{Globals.Domain}/images/Movie/{metadataId}/poster" : omdbData?.Poster,
65+
Poster = posterPath != null ? $"{Globals.Domain}/images/Movie/{metadataId}/poster" : null,
6166
PosterBlurHash = posterBlurHash,
6267
Backdrop = tmdbData?.BackdropPath != null ? $"{Globals.Domain}/images/Movie/{metadataId}/backdrop" : null,
6368
BackdropBlurHash = backdropBlurHash,

0 commit comments

Comments
 (0)