From 209fd28062011306be88b9580b413f5eac900c06 Mon Sep 17 00:00:00 2001 From: Cody Kickertz Date: Mon, 22 Dec 2025 17:59:21 -0600 Subject: [PATCH] chore: P2/P3 code cleanup batch (#138) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Remove unused RemoveTitle() methods from AlternativeTitleService, MovieTranslationService, CreditService - Clean commented-out code blocks in EventAggregator, Pneumatic, MovieStatisticsFixture - Consolidate 4 duplicate TagsModalContent.css files into shared Components/Styles module - Fix BaseMediaService StyleCop violations (SA1127, SA1502) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: admin Co-authored-by: Claude Opus 4.5 --- .../Styles}/TagsModalContent.css | 0 .../Styles}/TagsModalContent.css.d.ts | 6 ++-- .../Index/Select/Tags/TagsModalContent.tsx | 2 +- .../Manage/Tags/TagsModalContent.css | 12 ------- .../Manage/Tags/TagsModalContent.css.d.ts | 9 ----- .../Manage/Tags/TagsModalContent.tsx | 2 +- .../Manage/Tags/TagsModalContent.css | 12 ------- .../Manage/Tags/TagsModalContent.css.d.ts | 9 ----- .../Manage/Tags/TagsModalContent.tsx | 2 +- .../Indexers/Manage/Tags/TagsModalContent.css | 12 ------- .../Manage/Tags/TagsModalContent.css.d.ts | 9 ----- .../Indexers/Manage/Tags/TagsModalContent.tsx | 2 +- .../MovieStatsTests/MovieStatisticsFixture.cs | 22 ------------ .../Download/Clients/Pneumatic/Pneumatic.cs | 5 --- .../MediaItems/BaseMediaService.cs | 35 ++++++++++++++----- .../Messaging/Events/EventAggregator.cs | 17 --------- .../AlternativeTitleService.cs | 5 --- .../Movies/Credits/CreditService.cs | 5 --- .../Translations/MovieTranslationService.cs | 5 --- 19 files changed, 34 insertions(+), 137 deletions(-) rename frontend/src/{Movie/Index/Select/Tags => Components/Styles}/TagsModalContent.css (100%) rename frontend/src/{Movie/Index/Select/Tags => Components/Styles}/TagsModalContent.css.d.ts (71%) delete mode 100644 frontend/src/Settings/DownloadClients/DownloadClients/Manage/Tags/TagsModalContent.css delete mode 100644 frontend/src/Settings/DownloadClients/DownloadClients/Manage/Tags/TagsModalContent.css.d.ts delete mode 100644 frontend/src/Settings/ImportLists/ImportLists/Manage/Tags/TagsModalContent.css delete mode 100644 frontend/src/Settings/ImportLists/ImportLists/Manage/Tags/TagsModalContent.css.d.ts delete mode 100644 frontend/src/Settings/Indexers/Indexers/Manage/Tags/TagsModalContent.css delete mode 100644 frontend/src/Settings/Indexers/Indexers/Manage/Tags/TagsModalContent.css.d.ts diff --git a/frontend/src/Movie/Index/Select/Tags/TagsModalContent.css b/frontend/src/Components/Styles/TagsModalContent.css similarity index 100% rename from frontend/src/Movie/Index/Select/Tags/TagsModalContent.css rename to frontend/src/Components/Styles/TagsModalContent.css diff --git a/frontend/src/Movie/Index/Select/Tags/TagsModalContent.css.d.ts b/frontend/src/Components/Styles/TagsModalContent.css.d.ts similarity index 71% rename from frontend/src/Movie/Index/Select/Tags/TagsModalContent.css.d.ts rename to frontend/src/Components/Styles/TagsModalContent.css.d.ts index 9b4321dcc6..2c63af789b 100644 --- a/frontend/src/Movie/Index/Select/Tags/TagsModalContent.css.d.ts +++ b/frontend/src/Components/Styles/TagsModalContent.css.d.ts @@ -1,9 +1,9 @@ // This file is automatically generated. // Please do not change this file! interface CssExports { - 'message': string; - 'renameIcon': string; - 'result': string; + message: string; + renameIcon: string; + result: string; } export const cssExports: CssExports; export default cssExports; diff --git a/frontend/src/Movie/Index/Select/Tags/TagsModalContent.tsx b/frontend/src/Movie/Index/Select/Tags/TagsModalContent.tsx index 6bddd7be7c..8a4e713cb7 100644 --- a/frontend/src/Movie/Index/Select/Tags/TagsModalContent.tsx +++ b/frontend/src/Movie/Index/Select/Tags/TagsModalContent.tsx @@ -12,12 +12,12 @@ import ModalBody from 'Components/Modal/ModalBody'; import ModalContent from 'Components/Modal/ModalContent'; import ModalFooter from 'Components/Modal/ModalFooter'; import ModalHeader from 'Components/Modal/ModalHeader'; +import styles from 'Components/Styles/TagsModalContent.css'; import { inputTypes, kinds, sizes } from 'Helpers/Props'; import Movie from 'Movie/Movie'; import createAllMoviesSelector from 'Store/Selectors/createAllMoviesSelector'; import createTagsSelector from 'Store/Selectors/createTagsSelector'; import translate from 'Utilities/String/translate'; -import styles from './TagsModalContent.css'; interface TagsModalContentProps { movieIds: number[]; diff --git a/frontend/src/Settings/DownloadClients/DownloadClients/Manage/Tags/TagsModalContent.css b/frontend/src/Settings/DownloadClients/DownloadClients/Manage/Tags/TagsModalContent.css deleted file mode 100644 index 63be9aaddb..0000000000 --- a/frontend/src/Settings/DownloadClients/DownloadClients/Manage/Tags/TagsModalContent.css +++ /dev/null @@ -1,12 +0,0 @@ -.renameIcon { - margin-left: 5px; -} - -.message { - margin-top: 20px; - margin-bottom: 10px; -} - -.result { - padding-top: 4px; -} diff --git a/frontend/src/Settings/DownloadClients/DownloadClients/Manage/Tags/TagsModalContent.css.d.ts b/frontend/src/Settings/DownloadClients/DownloadClients/Manage/Tags/TagsModalContent.css.d.ts deleted file mode 100644 index 9b4321dcc6..0000000000 --- a/frontend/src/Settings/DownloadClients/DownloadClients/Manage/Tags/TagsModalContent.css.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -// This file is automatically generated. -// Please do not change this file! -interface CssExports { - 'message': string; - 'renameIcon': string; - 'result': string; -} -export const cssExports: CssExports; -export default cssExports; diff --git a/frontend/src/Settings/DownloadClients/DownloadClients/Manage/Tags/TagsModalContent.tsx b/frontend/src/Settings/DownloadClients/DownloadClients/Manage/Tags/TagsModalContent.tsx index d3a9e28994..80ddf317cb 100644 --- a/frontend/src/Settings/DownloadClients/DownloadClients/Manage/Tags/TagsModalContent.tsx +++ b/frontend/src/Settings/DownloadClients/DownloadClients/Manage/Tags/TagsModalContent.tsx @@ -14,11 +14,11 @@ import ModalBody from 'Components/Modal/ModalBody'; import ModalContent from 'Components/Modal/ModalContent'; import ModalFooter from 'Components/Modal/ModalFooter'; import ModalHeader from 'Components/Modal/ModalHeader'; +import styles from 'Components/Styles/TagsModalContent.css'; import { inputTypes, kinds, sizes } from 'Helpers/Props'; import createTagsSelector from 'Store/Selectors/createTagsSelector'; import DownloadClient from 'typings/DownloadClient'; import translate from 'Utilities/String/translate'; -import styles from './TagsModalContent.css'; interface TagsModalContentProps { ids: number[]; diff --git a/frontend/src/Settings/ImportLists/ImportLists/Manage/Tags/TagsModalContent.css b/frontend/src/Settings/ImportLists/ImportLists/Manage/Tags/TagsModalContent.css deleted file mode 100644 index 63be9aaddb..0000000000 --- a/frontend/src/Settings/ImportLists/ImportLists/Manage/Tags/TagsModalContent.css +++ /dev/null @@ -1,12 +0,0 @@ -.renameIcon { - margin-left: 5px; -} - -.message { - margin-top: 20px; - margin-bottom: 10px; -} - -.result { - padding-top: 4px; -} diff --git a/frontend/src/Settings/ImportLists/ImportLists/Manage/Tags/TagsModalContent.css.d.ts b/frontend/src/Settings/ImportLists/ImportLists/Manage/Tags/TagsModalContent.css.d.ts deleted file mode 100644 index 9b4321dcc6..0000000000 --- a/frontend/src/Settings/ImportLists/ImportLists/Manage/Tags/TagsModalContent.css.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -// This file is automatically generated. -// Please do not change this file! -interface CssExports { - 'message': string; - 'renameIcon': string; - 'result': string; -} -export const cssExports: CssExports; -export default cssExports; diff --git a/frontend/src/Settings/ImportLists/ImportLists/Manage/Tags/TagsModalContent.tsx b/frontend/src/Settings/ImportLists/ImportLists/Manage/Tags/TagsModalContent.tsx index c6a0492613..55de84ef34 100644 --- a/frontend/src/Settings/ImportLists/ImportLists/Manage/Tags/TagsModalContent.tsx +++ b/frontend/src/Settings/ImportLists/ImportLists/Manage/Tags/TagsModalContent.tsx @@ -14,11 +14,11 @@ import ModalBody from 'Components/Modal/ModalBody'; import ModalContent from 'Components/Modal/ModalContent'; import ModalFooter from 'Components/Modal/ModalFooter'; import ModalHeader from 'Components/Modal/ModalHeader'; +import styles from 'Components/Styles/TagsModalContent.css'; import { inputTypes, kinds, sizes } from 'Helpers/Props'; import createTagsSelector from 'Store/Selectors/createTagsSelector'; import ImportList from 'typings/ImportList'; import translate from 'Utilities/String/translate'; -import styles from './TagsModalContent.css'; interface TagsModalContentProps { ids: number[]; diff --git a/frontend/src/Settings/Indexers/Indexers/Manage/Tags/TagsModalContent.css b/frontend/src/Settings/Indexers/Indexers/Manage/Tags/TagsModalContent.css deleted file mode 100644 index 63be9aaddb..0000000000 --- a/frontend/src/Settings/Indexers/Indexers/Manage/Tags/TagsModalContent.css +++ /dev/null @@ -1,12 +0,0 @@ -.renameIcon { - margin-left: 5px; -} - -.message { - margin-top: 20px; - margin-bottom: 10px; -} - -.result { - padding-top: 4px; -} diff --git a/frontend/src/Settings/Indexers/Indexers/Manage/Tags/TagsModalContent.css.d.ts b/frontend/src/Settings/Indexers/Indexers/Manage/Tags/TagsModalContent.css.d.ts deleted file mode 100644 index 9b4321dcc6..0000000000 --- a/frontend/src/Settings/Indexers/Indexers/Manage/Tags/TagsModalContent.css.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -// This file is automatically generated. -// Please do not change this file! -interface CssExports { - 'message': string; - 'renameIcon': string; - 'result': string; -} -export const cssExports: CssExports; -export default cssExports; diff --git a/frontend/src/Settings/Indexers/Indexers/Manage/Tags/TagsModalContent.tsx b/frontend/src/Settings/Indexers/Indexers/Manage/Tags/TagsModalContent.tsx index eccc379461..bbb0332883 100644 --- a/frontend/src/Settings/Indexers/Indexers/Manage/Tags/TagsModalContent.tsx +++ b/frontend/src/Settings/Indexers/Indexers/Manage/Tags/TagsModalContent.tsx @@ -14,11 +14,11 @@ import ModalBody from 'Components/Modal/ModalBody'; import ModalContent from 'Components/Modal/ModalContent'; import ModalFooter from 'Components/Modal/ModalFooter'; import ModalHeader from 'Components/Modal/ModalHeader'; +import styles from 'Components/Styles/TagsModalContent.css'; import { inputTypes, kinds, sizes } from 'Helpers/Props'; import createTagsSelector from 'Store/Selectors/createTagsSelector'; import Indexer from 'typings/Indexer'; import translate from 'Utilities/String/translate'; -import styles from './TagsModalContent.css'; interface TagsModalContentProps { ids: number[]; diff --git a/src/NzbDrone.Core.Test/MovieStatsTests/MovieStatisticsFixture.cs b/src/NzbDrone.Core.Test/MovieStatsTests/MovieStatisticsFixture.cs index 93fe64fb02..12b5cde957 100644 --- a/src/NzbDrone.Core.Test/MovieStatsTests/MovieStatisticsFixture.cs +++ b/src/NzbDrone.Core.Test/MovieStatsTests/MovieStatisticsFixture.cs @@ -87,27 +87,5 @@ public void should_have_size_on_disk_when_movie_file_exists() stats.Should().HaveCount(1); stats.First().SizeOnDisk.Should().Be(_movieFile.Size); } - - // [Test] - // public void should_not_duplicate_size_for_multi_movie_files() - // { - // GivenMovieWithFile(); - // GivenMovieFile(); - // - // var movie2 = _movie.JsonClone(); - // - // var movieMetadata = Builder.CreateNew().With(h => h.TmdbId = 234567).BuildNew(); - // Db.Insert(movieMetadata); - // - // movie2.Id = 0; - // movie2.MovieMetadataId = movieMetadata.Id; - // - // Db.Insert(movie2); - // - // var stats = Subject.MovieStatistics(); - // - // stats.Should().HaveCount(1); - // stats.First().SizeOnDisk.Should().Be(_movieFile.Size); - // } } } diff --git a/src/NzbDrone.Core/Download/Clients/Pneumatic/Pneumatic.cs b/src/NzbDrone.Core/Download/Clients/Pneumatic/Pneumatic.cs index 3aa0fdcd95..b6bb6c2dc7 100644 --- a/src/NzbDrone.Core/Download/Clients/Pneumatic/Pneumatic.cs +++ b/src/NzbDrone.Core/Download/Clients/Pneumatic/Pneumatic.cs @@ -40,11 +40,6 @@ public override async Task Download(RemoteMovie remoteMovie, IIndexer in var url = remoteMovie.Release.DownloadUrl; var title = remoteMovie.Release.Title; - // We don't have full seasons in movies. - // if (remoteMovie.ParsedEpisodeInfo.FullSeason) - // { - // throw new NotSupportedException("Full season releases are not supported with Pneumatic."); - // } title = FileNameBuilder.CleanFileName(title); // Save to the Pneumatic directory (The user will need to ensure its accessible by XBMC) diff --git a/src/NzbDrone.Core/MediaItems/BaseMediaService.cs b/src/NzbDrone.Core/MediaItems/BaseMediaService.cs index 3492df9a94..31116eefee 100644 --- a/src/NzbDrone.Core/MediaItems/BaseMediaService.cs +++ b/src/NzbDrone.Core/MediaItems/BaseMediaService.cs @@ -6,7 +6,8 @@ namespace NzbDrone.Core.MediaItems { - public interface IBaseMediaService where T : ModelBase + public interface IBaseMediaService + where T : ModelBase, new() { T Get(int id); List Get(IEnumerable ids); @@ -20,7 +21,8 @@ public interface IBaseMediaService where T : ModelBase List UpdateMany(List items); } - public abstract class BaseMediaService : IBaseMediaService where T : ModelBase + public abstract class BaseMediaService : IBaseMediaService + where T : ModelBase, new() { protected abstract IBasicRepository Repository { get; } protected virtual IEventAggregator EventAggregator => null; @@ -112,11 +114,28 @@ protected virtual void SetAddedTimestamp(T item, DateTime? timestamp = null) } } - protected virtual void OnItemAdded(T item) { } - protected virtual void OnItemsImported(List items) { } - protected virtual void OnItemDeleted(T item, bool deleteFiles) { } - protected virtual void OnItemsDeleted(List items, bool deleteFiles) { } - protected virtual void OnItemEdited(T updated, T stored) { } - protected virtual void OnItemsBulkEdited(List items) { } + protected virtual void OnItemAdded(T item) + { + } + + protected virtual void OnItemsImported(List items) + { + } + + protected virtual void OnItemDeleted(T item, bool deleteFiles) + { + } + + protected virtual void OnItemsDeleted(List items, bool deleteFiles) + { + } + + protected virtual void OnItemEdited(T updated, T stored) + { + } + + protected virtual void OnItemsBulkEdited(List items) + { + } } } diff --git a/src/NzbDrone.Core/Messaging/Events/EventAggregator.cs b/src/NzbDrone.Core/Messaging/Events/EventAggregator.cs index 368f9e9eb7..c914e02dee 100644 --- a/src/NzbDrone.Core/Messaging/Events/EventAggregator.cs +++ b/src/NzbDrone.Core/Messaging/Events/EventAggregator.cs @@ -53,23 +53,6 @@ public void PublishEvent(TEvent @event) var eventName = GetEventName(@event.GetType()); - /* - int workerThreads; - int completionPortThreads; - ThreadPool.GetAvailableThreads(out workerThreads, out completionPortThreads); - - int maxCompletionPortThreads; - int maxWorkerThreads; - ThreadPool.GetMaxThreads(out maxWorkerThreads, out maxCompletionPortThreads); - - - int minCompletionPortThreads; - int minWorkerThreads; - ThreadPool.GetMinThreads(out minWorkerThreads, out minCompletionPortThreads); - - _logger.Warn("Thread pool state WT:{0} PT:{1} MAXWT:{2} MAXPT:{3} MINWT:{4} MINPT:{5}", workerThreads, completionPortThreads, maxWorkerThreads, maxCompletionPortThreads, minWorkerThreads, minCompletionPortThreads); - */ - _logger.Trace("Publishing {0}", eventName); EventSubscribers subscribers; diff --git a/src/NzbDrone.Core/Movies/AlternativeTitles/AlternativeTitleService.cs b/src/NzbDrone.Core/Movies/AlternativeTitles/AlternativeTitleService.cs index 9714f6fa7b..7e7d534343 100644 --- a/src/NzbDrone.Core/Movies/AlternativeTitles/AlternativeTitleService.cs +++ b/src/NzbDrone.Core/Movies/AlternativeTitles/AlternativeTitleService.cs @@ -55,11 +55,6 @@ public List GetAllTitles() return _titleRepo.All().ToList(); } - public void RemoveTitle(AlternativeTitle title) - { - _titleRepo.Delete(title); - } - public List UpdateTitles(List titles, MovieMetadata movieMetadata) { var movieMetadataId = movieMetadata.Id; diff --git a/src/NzbDrone.Core/Movies/Credits/CreditService.cs b/src/NzbDrone.Core/Movies/Credits/CreditService.cs index 9c926202e4..666c88dbd5 100644 --- a/src/NzbDrone.Core/Movies/Credits/CreditService.cs +++ b/src/NzbDrone.Core/Movies/Credits/CreditService.cs @@ -55,11 +55,6 @@ public List GetAllCredits() return _creditRepo.All().ToList(); } - public void RemoveTitle(Credit credit) - { - _creditRepo.Delete(credit); - } - public List UpdateCredits(List credits, MovieMetadata movieMetadata) { var movieMetadataId = movieMetadata.Id; diff --git a/src/NzbDrone.Core/Movies/Translations/MovieTranslationService.cs b/src/NzbDrone.Core/Movies/Translations/MovieTranslationService.cs index 41f7434238..d9aff16fe7 100644 --- a/src/NzbDrone.Core/Movies/Translations/MovieTranslationService.cs +++ b/src/NzbDrone.Core/Movies/Translations/MovieTranslationService.cs @@ -36,11 +36,6 @@ public List GetAllTranslationsForLanguage(Language language) return _translationRepo.FindByLanguage(language).ToList(); } - public void RemoveTitle(MovieTranslation title) - { - _translationRepo.Delete(title); - } - public List UpdateTranslations(List translations, MovieMetadata movieMetadata) { var movieMetadataId = movieMetadata.Id;