diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-11-02 15:30:29 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-11-02 15:30:29 -0400 |
| commit | ed34b67f512b07ea2e97f8708811cc4150906f12 (patch) | |
| tree | b9abc36cc1a5868cb2f04e9b3d548b212a58aa0e /MediaBrowser.Server.Implementations/Providers | |
| parent | ab490d7467967c40435828bb4fc6c0066955930c (diff) | |
fix library scan stopping and restarting itself
Diffstat (limited to 'MediaBrowser.Server.Implementations/Providers')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Providers/ImageSaver.cs | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/MediaBrowser.Server.Implementations/Providers/ImageSaver.cs b/MediaBrowser.Server.Implementations/Providers/ImageSaver.cs index 7b5c0df34d..0653bcebd7 100644 --- a/MediaBrowser.Server.Implementations/Providers/ImageSaver.cs +++ b/MediaBrowser.Server.Implementations/Providers/ImageSaver.cs @@ -1,4 +1,5 @@ -using MediaBrowser.Common.IO; +using System.Collections.Generic; +using MediaBrowser.Common.IO; using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.Audio; @@ -268,7 +269,7 @@ namespace MediaBrowser.Server.Implementations.Providers { item.ScreenshotImagePaths[imageIndex.Value] = path; } - else + else if (!item.ScreenshotImagePaths.Contains(path, StringComparer.OrdinalIgnoreCase)) { item.ScreenshotImagePaths.Add(path); } @@ -282,7 +283,7 @@ namespace MediaBrowser.Server.Implementations.Providers { item.BackdropImagePaths[imageIndex.Value] = path; } - else + else if (!item.BackdropImagePaths.Contains(path, StringComparer.OrdinalIgnoreCase)) { item.BackdropImagePaths.Add(path); } @@ -333,14 +334,14 @@ namespace MediaBrowser.Server.Implementations.Providers { throw new ArgumentNullException("imageIndex"); } - filename = imageIndex.Value == 0 ? "backdrop" : "backdrop" + imageIndex.Value.ToString(UsCulture); + filename = GetBackdropSaveFilename(item.BackdropImagePaths, "backdrop", "backdrop", imageIndex.Value); break; case ImageType.Screenshot: if (!imageIndex.HasValue) { throw new ArgumentNullException("imageIndex"); } - filename = imageIndex.Value == 0 ? "screenshot" : "screenshot" + imageIndex.Value.ToString(UsCulture); + filename = GetBackdropSaveFilename(item.ScreenshotImagePaths, "screenshot", "screenshot", imageIndex.Value); break; default: filename = type.ToString().ToLower(); @@ -380,6 +381,24 @@ namespace MediaBrowser.Server.Implementations.Providers return path; } + private string GetBackdropSaveFilename(List<string> images, string zeroIndexFilename, string numberedIndexPrefix, int index) + { + var filesnames = images.Select(Path.GetFileNameWithoutExtension).ToList(); + + if (index == 0) + { + return zeroIndexFilename; + } + + var current = index; + while (filesnames.Contains(numberedIndexPrefix + current.ToString(UsCulture), StringComparer.OrdinalIgnoreCase)) + { + current++; + } + + return numberedIndexPrefix + current.ToString(UsCulture); + } + /// <summary> /// Gets the compatible save paths. /// </summary> |
