Improve root folder missing check for movie collections

pull/10406/head
Bogdan 2 months ago
parent d7bdc2c46c
commit 12c814ed78

@ -41,9 +41,21 @@ function HealthItemLink(props: HealthItemLinkProps) {
to="/settings/connect"
/>
);
case 'MovieCollectionRootFolderCheck':
return (
<IconButton
name={icons.MOVIE_CONTINUING}
title={translate('Collections')}
to="/collections"
/>
);
case 'RootFolderCheck':
return (
<IconButton name={icons.PLAY} title={translate('MovieEditor')} to="/" />
<IconButton
name={icons.MOVIE_CONTINUING}
title={translate('MovieEditor')}
to="/"
/>
);
case 'UpdateCheck':
return (

@ -11,6 +11,8 @@ using NzbDrone.Core.RootFolders;
namespace NzbDrone.Core.HealthCheck.Checks
{
[CheckOn(typeof(CollectionRefreshCompleteEvent))]
[CheckOn(typeof(CollectionEditedEvent))]
[CheckOn(typeof(CollectionDeletedEvent))]
[CheckOn(typeof(ModelEvent<RootFolder>))]
public class MovieCollectionRootFolderCheck : HealthCheckBase
{
@ -40,7 +42,7 @@ namespace NzbDrone.Core.HealthCheck.Checks
continue;
}
if (rootFolderPath.IsNullOrWhiteSpace() || !_diskProvider.FolderExists(rootFolderPath))
if (rootFolderPath.IsNullOrWhiteSpace() || !rootFolderPath.IsPathValid(PathValidationType.CurrentOs) || !_diskProvider.FolderExists(rootFolderPath))
{
missingRootFolders.Add(rootFolderPath, new List<MovieCollection> { collection });
}
@ -51,11 +53,23 @@ namespace NzbDrone.Core.HealthCheck.Checks
if (missingRootFolders.Count == 1)
{
var missingRootFolder = missingRootFolders.First();
return new HealthCheck(GetType(), HealthCheckResult.Error, string.Format(_localizationService.GetLocalizedString("MovieCollectionMissingRoot"), FormatRootFolder(missingRootFolder.Key, missingRootFolder.Value)), "#movie-collection-missing-root-folder");
return new HealthCheck(GetType(),
HealthCheckResult.Error,
_localizationService.GetLocalizedString("MovieCollectionRootFolderMissingRootHealthCheckMessage", new Dictionary<string, object>
{
{ "rootFolderInfo", FormatRootFolder(missingRootFolder.Key, missingRootFolder.Value) }
}),
"#movie-collection-missing-root-folder");
}
var message = string.Format(_localizationService.GetLocalizedString("MovieCollectionMultipleMissingRoots"), string.Join(" | ", missingRootFolders.Select(m => FormatRootFolder(m.Key, m.Value))));
return new HealthCheck(GetType(), HealthCheckResult.Error, message, "#movie-collection-missing-root-folder");
return new HealthCheck(GetType(),
HealthCheckResult.Error,
_localizationService.GetLocalizedString("MovieCollectionFolderMultipleMissingRootsHealthCheckMessage", new Dictionary<string, object>
{
{ "rootFoldersInfo", string.Join(" | ", missingRootFolders.Select(m => FormatRootFolder(m.Key, m.Value))) }
}),
"#movie-collection-missing-root-folder");
}
return new HealthCheck(GetType());
@ -63,7 +77,7 @@ namespace NzbDrone.Core.HealthCheck.Checks
private string FormatRootFolder(string rootFolderPath, List<MovieCollection> collections)
{
return $"{rootFolderPath} ({string.Join(", ", collections.Select(l => l.Title))})";
return $"{rootFolderPath} ({string.Join(", ", collections.Select(c => c.Title))})";
}
}
}

@ -609,8 +609,8 @@
"MoreInfo": "Més informació",
"MountCheckMessage": "El muntatge que conté una ruta de pel·lícula es munta com a només de lectura: ",
"MoveFiles": "Mou arxius",
"MovieCollectionMissingRoot": "Falta la carpeta arrel per a la col·lecció de pel·lícules: {0}",
"MovieCollectionMultipleMissingRoots": "Falten diverses carpetes arrel per a les col·leccions de pel·lícules: {0}",
"MovieCollectionRootFolderMissingRootHealthCheckMessage": "Falta la carpeta arrel per a la col·lecció de pel·lícules: {rootFolderInfo}",
"MovieCollectionFolderMultipleMissingRootsHealthCheckMessage": "Falten diverses carpetes arrel per a les col·leccions de pel·lícules: {rootFoldersInfo}",
"MovieDetailsPreviousMovie": "Detalls: pel·lícula anterior",
"MovieExcludedFromAutomaticAdd": "Pel·lícula exclosa de l'addició automàtica",
"MovieID": "Identificador de pel·lícula",

@ -1018,7 +1018,7 @@
"CollectionOptions": "Sammlung Optionen",
"ChooseImportMode": "Wählen Sie den Importmodus aus",
"CountCollectionsSelected": "{count} Ausgewählte Sammlung(en)",
"MovieCollectionMissingRoot": "Fehlender Stammordner für die Filmsammlung: {0}",
"MovieCollectionRootFolderMissingRootHealthCheckMessage": "Fehlender Stammordner für die Filmsammlung: {rootFolderInfo}",
"EditCollection": "Sammlung bearbeiten",
"MonitoredCollectionHelpText": "Beobachten zur automatischen Aufnahme von Filmen aus dieser Sammlung in die Bibliothek",
"MovieOnly": "Nur Film",
@ -1034,7 +1034,7 @@
"CollectionShowOverviewsHelpText": "Sammlungsübersichten anzeigen",
"MonitorCollection": "Sammlung beobachten",
"MovieAndCollection": "Film und Sammlung",
"MovieCollectionMultipleMissingRoots": "Es fehlen mehrere Stammordner für Filmsammlungen: {0}",
"MovieCollectionFolderMultipleMissingRootsHealthCheckMessage": "Es fehlen mehrere Stammordner für Filmsammlungen: {rootFoldersInfo}",
"OnMovieAdded": "Bei Film hinzugefügt",
"UnableToLoadCollections": "Sammlungen können nicht geladen werden",
"InstanceName": "Instanzname",

@ -981,14 +981,14 @@
"ImportListMultipleMissingRoots": "Λείπουν πολλοί ριζικοί φάκελοι για λίστες εισαγωγής: {rootFoldersInfo}",
"MonitorCollection": "Συλλογή οθονών",
"MonitoredCollectionHelpText": "Παρακολουθήστε για αυτόματη προσθήκη στη βιβλιοθήκη ταινιών από αυτήν τη συλλογή",
"MovieCollectionMultipleMissingRoots": "Λείπουν πολλοί ριζικοί φάκελοι για τις συλλογές ταινιών: {0}",
"MovieCollectionFolderMultipleMissingRootsHealthCheckMessage": "Λείπουν πολλοί ριζικοί φάκελοι για τις συλλογές ταινιών: {rootFoldersInfo}",
"IndexerJackettAll": "Ευρετήρια που χρησιμοποιούν το μη υποστηριζόμενο τελικό σημείο Jackett 'all': {indexerNames}",
"AnnouncedMovieDescription": "Η ταινία έχει ανακοινωθεί",
"Letterboxd": "Γραμματοκιβώτιο",
"EditCollection": "Επεξεργασία συλλογής",
"ImdbRating": "Αξιολόγηση στο IMDb",
"InstanceNameHelpText": "Όνομα παρουσίας στην καρτέλα και για όνομα εφαρμογής Syslog",
"MovieCollectionMissingRoot": "Λείπει ο ριζικός φάκελος για τη συλλογή ταινιών: {0}",
"MovieCollectionRootFolderMissingRootHealthCheckMessage": "Λείπει ο ριζικός φάκελος για τη συλλογή ταινιών: {rootFolderInfo}",
"OnApplicationUpdate": "Στην ενημέρωση της εφαρμογής",
"OnMovieAdded": "Προστέθηκε στην ταινία",
"ApplicationUrlHelpText": "Το εξωτερικό URL αυτής της εφαρμογής, συμπεριλαμβανομένων των http(s)://, της θύρας και της βάσης URL",

@ -946,8 +946,8 @@
"MovieAlreadyExcluded": "Movie already Excluded",
"MovieAndCollection": "Movie and Collection",
"MovieChat": "Movie Chat",
"MovieCollectionMissingRoot": "Missing root folder for movie collection: {0}",
"MovieCollectionMultipleMissingRoots": "Multiple root folders are missing for movie collections: {0}",
"MovieCollectionFolderMultipleMissingRootsHealthCheckMessage": "Multiple root folders are missing for movie collections: {rootFoldersInfo}",
"MovieCollectionRootFolderMissingRootHealthCheckMessage": "Missing root folder for movie collection: {rootFolderInfo}",
"MovieDetailsNextMovie": "Movie Details: Next Movie",
"MovieDetailsPreviousMovie": "Movie Details: Previous Movie",
"MovieDownloadFailedTooltip": "Movie download failed",

@ -1030,7 +1030,7 @@
"MonitorCollection": "Monitorear Colección",
"MonitoredCollectionHelpText": "Monitorear para que las películas de esta colección se añadan automáticamente a la biblioteca",
"MovieAndCollection": "Película y Colección",
"MovieCollectionMultipleMissingRoots": "Múltiples carpetas raices faltantes para colecciones de películas: {0}",
"MovieCollectionFolderMultipleMissingRootsHealthCheckMessage": "Múltiples carpetas raices faltantes para colecciones de películas: {rootFoldersInfo}",
"OnMovieAdded": "Al Agregar Pelicula",
"RefreshCollections": "Actualizar Colecciones",
"ShowCollectionDetails": "Mostrar Estado De Colección",
@ -1040,7 +1040,7 @@
"ScrollMovies": "Desplazar Películas",
"ShowPosters": "Mostrar Posters",
"UnableToLoadCollections": "No se han podido cargar las colecciones",
"MovieCollectionMissingRoot": "Carpeta raíz faltante para colección de películas: {0}",
"MovieCollectionRootFolderMissingRootHealthCheckMessage": "Carpeta raíz faltante para colección de películas: {rootFolderInfo}",
"MovieOnly": "Solo Película",
"Database": "Base de datos",
"File": "Archivo",

@ -1034,8 +1034,8 @@
"MonitorCollection": "Valvo kokoelmaa",
"MonitoredCollectionHelpText": "Valvonta lisää kokoelman elokuvat kirjastoon automaattisesti.",
"MovieAndCollection": "Elokuva ja kokoelma",
"MovieCollectionMissingRoot": "Elokuvakokoelman juurikansio puuttuu: {0}",
"MovieCollectionMultipleMissingRoots": "Useiden elokuvakokoelmien juurikansiot puuttuvat: {0}",
"MovieCollectionRootFolderMissingRootHealthCheckMessage": "Elokuvakokoelman juurikansio puuttuu: {rootFolderInfo}",
"MovieCollectionFolderMultipleMissingRootsHealthCheckMessage": "Useiden elokuvakokoelmien juurikansiot puuttuvat: {rootFoldersInfo}",
"MovieOnly": "Vain elokuva",
"RefreshCollections": "Päivitä kokoelmat",
"ScrollMovies": "Vieritä elokuvia",

@ -1034,11 +1034,11 @@
"CollectionShowOverviewsHelpText": "Afficher les aperçus des collections",
"MovieAndCollection": "Film et collection",
"ShowOverview": "Afficher l'aperçu",
"MovieCollectionMissingRoot": "Dossier racine manquant pour la collection de films : {0}",
"MovieCollectionRootFolderMissingRootHealthCheckMessage": "Dossier racine manquant pour la collection de films : {rootFolderInfo}",
"OnMovieAdded": "À l'ajout d'un film",
"MonitorCollection": "Surveiller la collection",
"MonitoredCollectionHelpText": "Surveiller pour ajouter automatiquement les films de cette collection à la bibliothèque",
"MovieCollectionMultipleMissingRoots": "Plusieurs dossiers racine manquent pour les collections de films : {0}",
"MovieCollectionFolderMultipleMissingRootsHealthCheckMessage": "Plusieurs dossiers racine manquent pour les collections de films : {rootFoldersInfo}",
"MovieOnly": "Film seulement",
"RefreshCollections": "Actualiser les collections",
"SearchOnAddCollectionHelpText": "Rechercher des films dans cette collection lorsqu'ils sont ajoutés à la bibliothèque",

@ -1028,10 +1028,10 @@
"NoCollections": "Nem találhatóak filmek, kezdésnek adjon hozzá egy új filmet vagy importáljon már meglévőket",
"InstanceName": "Példány Neve",
"EditCollection": "Gyűjtemény módosítása",
"MovieCollectionMissingRoot": "Hiányzó gyökérmappa a filmgyűjteményhez: {0}",
"MovieCollectionRootFolderMissingRootHealthCheckMessage": "Hiányzó gyökérmappa a filmgyűjteményhez: {rootFolderInfo}",
"ChooseImportMode": "Válassza az Importálási módot",
"MovieAndCollection": "Film(ek) és Gyűjtemény(ek)",
"MovieCollectionMultipleMissingRoots": "Több gyökérmappa hiányzik a filmgyűjteményekhez: {0}",
"MovieCollectionFolderMultipleMissingRootsHealthCheckMessage": "Több gyökérmappa hiányzik a filmgyűjteményekhez: {rootFoldersInfo}",
"MovieOnly": "Csak Film(ek)",
"RefreshCollections": "Gyűjtemények frissítése",
"ScrollMovies": "Filmek görgetése",

@ -1051,8 +1051,8 @@
"TotalMovies": "Totaal aantal films",
"ShowCollectionDetails": "Toon collectiestatus",
"Loading": "Laden",
"MovieCollectionMissingRoot": "Missende hoofdmap voor filmcollectie: {0}",
"MovieCollectionMultipleMissingRoots": "Meerdere hoofdmappen missen voor filmcollecties: {0}",
"MovieCollectionRootFolderMissingRootHealthCheckMessage": "Missende hoofdmap voor filmcollectie: {rootFolderInfo}",
"MovieCollectionFolderMultipleMissingRootsHealthCheckMessage": "Meerdere hoofdmappen missen voor filmcollecties: {rootFoldersInfo}",
"MovieAndCollection": "Film en Collectie",
"PreferredProtocol": "Voorkeursprotocol",
"InstanceName": "Naam van de instantie",

@ -1002,8 +1002,8 @@
"Letterboxd": "Z Letterboxd",
"MonitorCollection": "Monitoruj kolekcję",
"MovieAndCollection": "Film i kolekcja",
"MovieCollectionMissingRoot": "Brak katalogu głównego dla kolekcji filmów: {0}",
"MovieCollectionMultipleMissingRoots": "Brak wielu katalogów głównych dla kolekcji filmów: {0}",
"MovieCollectionRootFolderMissingRootHealthCheckMessage": "Brak katalogu głównego dla kolekcji filmów: {rootFolderInfo}",
"MovieCollectionFolderMultipleMissingRootsHealthCheckMessage": "Brak wielu katalogów głównych dla kolekcji filmów: {rootFoldersInfo}",
"MovieOnly": "Tylko film",
"OriginalLanguage": "Język oryginału",
"OriginalTitle": "Tytuł oryginalny",

@ -1050,8 +1050,8 @@
"ApplicationUrlHelpText": "O URL desta aplicação externa, incluindo http(s)://, porta e URL base",
"CollectionShowOverviewsHelpText": "Mostrar visão global da coleção",
"CollectionShowPostersHelpText": "Mostrar os posteres da coleção",
"MovieCollectionMissingRoot": "Falta a pasta base para a coleção de filmes: {0}",
"MovieCollectionMultipleMissingRoots": "Faltam várias pastas base para as coleções de filmes: {0}",
"MovieCollectionRootFolderMissingRootHealthCheckMessage": "Falta a pasta base para a coleção de filmes: {rootFolderInfo}",
"MovieCollectionFolderMultipleMissingRootsHealthCheckMessage": "Faltam várias pastas base para as coleções de filmes: {rootFoldersInfo}",
"MovieOnly": "Apenas filme",
"ShowCollectionDetails": "Mostrar estado da coleção",
"File": "Ficheiro",

@ -1036,8 +1036,8 @@
"EditCollection": "Editar Coleção",
"MonitorCollection": "Monitorar Coleção",
"MovieAndCollection": "Filme e Coleção",
"MovieCollectionMissingRoot": "Pasta raiz ausente para a coleção de filmes: {0}",
"MovieCollectionMultipleMissingRoots": "Estão faltando várias pastas raízes para coleções de filmes: {0}",
"MovieCollectionRootFolderMissingRootHealthCheckMessage": "Pasta raiz ausente para a coleção de filmes: {rootFolderInfo}",
"MovieCollectionFolderMultipleMissingRootsHealthCheckMessage": "Estão faltando várias pastas raízes para coleções de filmes: {rootFoldersInfo}",
"ShowCollectionDetails": "Mostrar Estado da Coleção",
"ShowOverview": "Mostrar Visão Geral",
"MonitoredCollectionHelpText": "Monitorar para que os filmes desta coleção sejam adicionados automaticamente à biblioteca",

@ -1026,8 +1026,8 @@
"MonitorCollection": "Отслеживание коллекции",
"MonitoredCollectionHelpText": "Контролировать, чтобы фильмы из этой коллекции автоматически добавлялись в библиотеку",
"MovieAndCollection": "Фильм и коллекция",
"MovieCollectionMissingRoot": "Отсутствует корневая папка для коллекции фильмов: {0}",
"MovieCollectionMultipleMissingRoots": "Для коллекций фильмов отсутствуют несколько корневых папок: {0}",
"MovieCollectionRootFolderMissingRootHealthCheckMessage": "Отсутствует корневая папка для коллекции фильмов: {rootFolderInfo}",
"MovieCollectionFolderMultipleMissingRootsHealthCheckMessage": "Для коллекций фильмов отсутствуют несколько корневых папок: {rootFoldersInfo}",
"MovieOnly": "Только фильм",
"ShowCollectionDetails": "Показать статус коллекции",
"RefreshCollections": "Обновить коллекции",

@ -1342,7 +1342,7 @@
"InvalidUILanguage": "Kullanıcı arayüzünüz geçersiz bir dile ayarlanmış, düzeltin ve ayarlarınızı kaydedin",
"ManualGrab": "Manuel Yakalama",
"IndexerDownloadClientHealthCheckMessage": "Geçersiz indirme istemcilerine sahip dizinleyiciler: {indexerNames}.",
"MovieCollectionMissingRoot": "Film koleksiyonu için eksik kök klasör: {0}",
"MovieCollectionRootFolderMissingRootHealthCheckMessage": "Film koleksiyonu için eksik kök klasör: {rootFolderInfo}",
"NoImportListsFound": "İçe aktarma listesi bulunamadı",
"MovieGrabbedHistoryTooltip": "Film {indexer}'dan alındı ve {downloadClient}'a gönderildi",
"NotificationStatusAllClientHealthCheckMessage": "Arızalar nedeniyle tüm bildirimler kullanılamıyor",
@ -1350,7 +1350,7 @@
"GrabId": "ID'den Yakala",
"ImportListMissingRoot": "İçe aktarma listeleri için kök klasör eksik: {rootFolderInfo}",
"MonitoredCollectionHelpText": "Bu koleksiyondaki filmlerin otomatik olarak kitaplığa eklenmesini sağlamak için takip edin",
"MovieCollectionMultipleMissingRoots": "Film koleksiyonları için birden fazla kök klasör eksik: {0}",
"MovieCollectionFolderMultipleMissingRootsHealthCheckMessage": "Film koleksiyonları için birden fazla kök klasör eksik: {rootFoldersInfo}",
"MovieFileMissingTooltip": "Film dosyası eksik",
"MovieFolderImportedTooltip": "Film klasöründen içe aktarılan film",
"NotificationsAppriseSettingsUsernameHelpText": "HTTP Temel Kimlik Doğrulama Kullanıcı Adı",

@ -438,7 +438,7 @@
"MinimumAgeHelpText": "Тільки Usenet: мінімальний вік NZB у хвилинах до їх захоплення. Використовуйте це, щоб дати новим випускам час для поширення до вашого провайдера usenet.",
"MinimumFreeSpace": "Мінімальний вільний простір",
"MinimumLimits": "Мінімальні обмеження",
"MovieCollectionMissingRoot": "Відсутня коренева папка для колекції фільмів: {0}",
"MovieCollectionRootFolderMissingRootHealthCheckMessage": "Відсутня коренева папка для колекції фільмів: {rootFolderInfo}",
"MoveFolders1": "Бажаєте перемістити папки з фільмами до \"{0}\"?",
"MoveFolders2": "Бажаєте перемістити файли фільму з \"{0}\" до \"{1}\"?",
"MovieFolderFormat": "Формат папки фільму",
@ -691,7 +691,7 @@
"More": "Більше",
"MoveFiles": "Перемістити файли",
"MovieChat": "Кіночат",
"MovieCollectionMultipleMissingRoots": "Кілька кореневих папок відсутні для колекцій фільмів: {0}",
"MovieCollectionFolderMultipleMissingRootsHealthCheckMessage": "Кілька кореневих папок відсутні для колекцій фільмів: {rootFoldersInfo}",
"MovieDetailsNextMovie": "Подробиці про фільм: наступний фільм",
"MovieAlreadyExcluded": "Фільм уже виключено",
"MovieAndCollection": "Фільм і колекція",

@ -1032,8 +1032,8 @@
"MonitorCollection": "监视集合",
"MonitorMovies": "监控电影",
"MovieAndCollection": "电影和收藏",
"MovieCollectionMissingRoot": "电影集合丢失根目录文件夹: {0}",
"MovieCollectionMultipleMissingRoots": "电影集合丢失集合根目录文件夹",
"MovieCollectionRootFolderMissingRootHealthCheckMessage": "电影集合丢失根目录文件夹: {rootFolderInfo}",
"MovieCollectionFolderMultipleMissingRootsHealthCheckMessage": "电影集合丢失集合根目录文件夹",
"RefreshCollections": "刷新集合",
"SearchOnAddCollectionHelpText": "电影添加到收藏时自动搜索该电影",
"ShowOverview": "显示概览",

Loading…
Cancel
Save