From 93ba5ade9e896c8b9c87cc4d7afd40c07fdaf769 Mon Sep 17 00:00:00 2001 From: Qstick Date: Sun, 24 Jan 2021 02:22:50 -0500 Subject: [PATCH] Cleanup Conflicts in Sonarr/Lidarr Pulls Co-Authored-By: Robin Dadswell <19610103+RobinDadswell@users.noreply.github.com> --- frontend/src/Author/Details/AuthorDetails.css | 2 +- .../Organize/OrganizeAuthorModalContent.js | 2 +- .../Edition/SelectEditionRow.css | 2 +- .../InteractiveImportModalContent.js | 2 +- .../MediaManagement/MediaManagement.js | 2 +- .../TagDetailsModalContentConnector.js | 14 +- frontend/src/Store/Actions/bookFileActions.js | 4 +- frontend/src/Store/Actions/seriesActions.js | 4 + frontend/src/Styles/Variables/dimensions.js | 2 +- schemas/torznab.xsd | 4 +- src/NzbDrone.Automation.Test/MainPagesTest.cs | 4 +- .../DiskTests/DiskProviderFixtureBase.cs | 16 +- .../Http/HttpClientFixture.cs | 8 +- .../CleanseLogMessageFixture.cs | 8 + .../PathExtensionFixture.cs | 8 +- .../Instrumentation/CleanseLogMessage.cs | 1 - .../ArtistStatisticsFixture.cs | 22 +- .../BlacklistRepositoryFixture.cs | 4 +- .../Blacklisting/BlacklistServiceFixture.cs | 2 +- .../Datastore/DatabaseRelationshipFixture.cs | 4 +- .../Datastore/LazyLoadingFixture.cs | 18 +- .../Datastore/TableMapperFixture.cs | 2 +- .../Datastore/WhereBuilderFixture.cs | 10 +- .../AlreadyImportedSpecificationFixture.cs | 20 +- .../CutoffSpecificationFixture.cs | 8 +- .../DiscographySpecificationFixture.cs | 14 +- .../DownloadDecisionMakerFixture.cs | 47 +- .../EarlyReleaseSpecificationFixture.cs | 22 +- .../HistorySpecificationFixture.cs | 72 +- .../MonitoredAlbumSpecificationFixture.cs | 100 +- .../PrioritizeDownloadDecisionFixture.cs | 163 +- ...ityAllowedByProfileSpecificationFixture.cs | 4 +- .../QueueSpecificationFixture.cs | 108 +- .../RepackSpecificationFixture.cs | 22 +- .../RssSync/DelaySpecificationFixture.cs | 19 +- .../DeletedTrackFileSpecificationFixture.cs | 20 +- .../RssSync/ProperSpecificationFixture.cs | 14 +- .../Search/ArtistSpecificationFixture.cs | 20 +- .../TorrentSeedingSpecificationFixture.cs | 10 +- .../UpgradeAllowedSpecificationFixture.cs | 12 +- .../UpgradeDiskSpecificationFixture.cs | 18 +- .../UpgradeSpecificationFixture.cs | 6 +- .../DiskSpace/DiskSpaceServiceFixture.cs | 26 +- .../ImportFixture.cs | 44 +- .../ProcessFixture.cs | 20 +- .../DownloadApprovedFixture.cs | 84 +- .../Blackhole/TorrentBlackholeFixture.cs | 22 +- .../Blackhole/UsenetBlackholeFixture.cs | 4 +- .../DelugeTests/DelugeFixture.cs | 4 +- .../DownloadClientFixtureBase.cs | 4 +- .../TorrentDownloadStationFixture.cs | 18 +- .../UsenetDownloadStationFixture.cs | 12 +- .../HadoukenTests/HadoukenFixture.cs | 6 +- .../NzbVortexTests/NzbVortexFixture.cs | 4 +- .../NzbgetTests/NzbgetFixture.cs | 6 +- .../QBittorrentTests/QBittorrentFixture.cs | 16 +- .../RTorrentTests/RTorrentFixture.cs | 2 +- .../SabnzbdTests/SabnzbdFixture.cs | 6 +- .../TransmissionTests/TransmissionFixture.cs | 12 +- .../UTorrentTests/UTorrentFixture.cs | 8 +- .../VuzeTests/VuzeFixture.cs | 12 +- .../ProcessFixture.cs | 2 +- .../PendingReleaseServiceTests/AddFixture.cs | 24 +- .../RemoveGrabbedFixture.cs | 24 +- .../RemovePendingFixture.cs | 38 +- .../RemoveRejectedFixture.cs | 24 +- .../RedownloadFailedDownloadServiceFixture.cs | 8 +- .../TrackedDownloadAlreadyImportedFixture.cs | 24 +- .../TrackedDownloadServiceFixture.cs | 24 +- .../Files/Identification/CorruptFile.json | 218 +- .../Files/Identification/FilesWithMBIds.json | 310 +-- .../Identification/FilesWithoutTags.json | 84 +- .../InconsistentTyposInAlbum.json | 226 +- .../Identification/PenalizeUnknownMedia.json | 46 +- .../PreferMissingToBadMatch.json | 58 +- .../SucceedWhenManyAlbumsHaveSameTitle.json | 100 +- .../Files/Indexers/Gazelle/Gazelle.json | 12 +- .../Files/Indexers/Newznab/newznab_nzb_su.xml | 396 +-- .../Files/Indexers/Waffles/waffles.xml | 14 +- src/NzbDrone.Core.Test/Files/Media/LICENSE | 4 +- .../Checks/DeleteBadMediaCovers.cs | 28 +- .../Checks/RootFolderCheckFixture.cs | 10 +- .../HistoryTests/HistoryServiceFixture.cs | 8 +- .../CleanupDuplicateMetadataFilesFixture.cs | 16 +- .../CleanupOrphanedBlacklistFixture.cs | 6 +- .../CleanupOrphanedBooksFixture.cs | 20 +- .../CleanupOrphanedHistoryItemsFixture.cs | 52 +- .../CleanupOrphanedMetadataFilesFixture.cs | 78 +- .../CleanupOrphanedPendingReleasesFixture.cs | 6 +- .../UpdateCleanTitleForAuthorFixture.cs | 8 +- .../ImportListSyncServiceFixture.cs | 54 +- .../ArtistSearchServiceFixture.cs | 20 +- .../SearchDefinitionFixture.cs | 14 +- .../IndexerIntegrationTests.cs | 4 +- .../NewznabRequestGeneratorFixture.cs | 8 +- .../MediaCoverServiceFixture.cs | 2 +- .../MediaFiles/AudioTagServiceFixture.cs | 14 +- .../DiskScanServiceTests/ScanFixture.cs | 37 +- .../DownloadedAlbumsCommandServiceFixture.cs | 2 +- .../DownloadedTracksImportServiceFixture.cs | 38 +- .../MediaFiles/ImportApprovedTracksFixture.cs | 14 +- .../DeleteTrackFileFixture.cs | 44 +- .../MediaFiles/MediaFileRepositoryFixture.cs | 48 +- .../MediaFileServiceFixture.cs | 6 +- .../MediaFileTableCleanupServiceFixture.cs | 14 +- .../RenameTrackFileServiceFixture.cs | 22 +- .../MoveTrackFileFixture.cs | 22 +- .../AggregateFilenameInfoFixture.cs | 46 +- .../Identification/DistanceFixture.cs | 6 +- .../IdentificationServiceFixture.cs | 30 +- .../TrackGroupingServiceFixture.cs | 144 +- .../TrackImport/ImportDecisionMakerFixture.cs | 90 +- .../FreeSpaceSpecificationFixture.cs | 10 +- .../SameFileSpecificationFixture.cs | 10 +- .../UpgradeSpecificationFixture.cs | 12 +- .../UpgradeMediaFileServiceFixture.cs | 6 +- .../Messaging/Commands/CommandQueueFixture.cs | 4 +- .../Goodreads/GoodreadsProxyFixture.cs | 32 +- .../Goodreads/GoodreadsProxySearchFixture.cs | 8 +- .../SearchArtistComparerFixture.cs | 24 +- .../MusicTests/AddAlbumFixture.cs | 38 +- .../MusicTests/AddArtistFixture.cs | 100 +- .../AlbumMonitoredServiceFixture.cs | 38 +- .../AlbumRepositoryFixture.cs | 100 +- .../MusicTests/AlbumServiceFixture.cs | 34 +- .../ArtistMetadataRepositoryFixture.cs | 18 +- .../ArtistRepositoryFixture.cs | 84 +- .../FindByNameInexactFixture.cs | 38 +- .../UpdateMultipleArtistFixture.cs | 28 +- .../MusicTests/EntityFixture.cs | 42 +- .../MusicTests/MoveArtistServiceFixture.cs | 24 +- .../MusicTests/RefreshArtistServiceFixture.cs | 132 +- .../MusicTests/ShouldRefreshAlbumFixture.cs | 58 +- .../MusicTests/ShouldRefreshArtistFixture.cs | 78 +- .../NotificationBaseFixture.cs | 4 +- .../SynologyIndexerFixture.cs | 12 +- .../OrganizerTests/BuildFilePathFixture.cs | 14 +- .../FileNameBuilderTests/CleanTitleFixture.cs | 16 +- .../FileNameBuilderFixture.cs | 152 +- .../FileNameBuilderTests/TitleTheFixture.cs | 20 +- .../ParserTests/ArtistTitleInfoFixture.cs | 14 +- .../ParserTests/MusicParserFixture.cs | 4 +- .../ParserTests/NormalizeTitleFixture.cs | 12 +- .../ParserTests/ParserFixture.cs | 86 +- .../ParsingServiceTests/GetAlbumsFixture.cs | 16 +- .../ParsingServiceTests/GetArtistFixture.cs | 8 +- .../ParserTests/QualityParserFixture.cs | 12 +- .../Metadata/MetadataProfileServiceFixture.cs | 20 +- .../Profiles/ProfileServiceFixture.cs | 20 +- .../PreferredWordService/CalculateFixture.cs | 16 +- .../GetMatchingPreferredWordsFixture.cs | 12 +- .../QueueTests/QueueServiceFixture.cs | 10 +- .../SystemFolderValidatorFixture.cs | 16 +- .../AuthorStats/AuthorStatisticsService.cs | 6 +- .../Blacklisting/BlacklistRepository.cs | 7 +- .../Blacklisting/BlacklistService.cs | 2 +- .../Books/Handlers/AuthorEditedHandler.cs | 2 +- src/NzbDrone.Core/Books/Model/Author.cs | 2 +- src/NzbDrone.Core/Books/Model/Book.cs | 4 +- src/NzbDrone.Core/Books/Model/Edition.cs | 2 +- .../Books/Repositories/BookRepository.cs | 16 +- .../Books/Repositories/EditionRepository.cs | 8 +- .../Books/Services/BookService.cs | 6 +- .../Books/Services/EditionService.cs | 6 +- .../Books/Services/MoveAuthorService.cs | 6 +- .../Books/Services/RefreshAuthorService.cs | 8 +- .../Books/Services/RefreshBookService.cs | 12 +- .../Services/RefreshEntityServiceBase.cs | 4 +- .../Books/Services/RefreshSeriesService.cs | 4 +- .../Books/Utilities/ShouldRefreshAuthor.cs | 4 +- .../Configuration/ConfigService.cs | 2 +- ...006_remove_chown_and_folderchmod_config.cs | 2 +- .../DecisionEngine/DownloadDecisionMaker.cs | 16 +- .../AcceptableSizeSpecification.cs | 2 +- .../AlreadyImportedSpecification.cs | 6 +- .../DiscographySpecification.cs | 6 +- .../Specifications/QueueSpecification.cs | 8 +- .../RssSync/HistorySpecification.cs | 6 +- .../Specifications/UpgradableSpecification.cs | 38 +- .../UpgradeAllowedSpecification.cs | 7 +- .../UpgradeDiskSpecification.cs | 18 +- .../AggregatePreferredWordScore.cs | 2 +- .../Download/Clients/Deluge/DelugeSettings.cs | 4 +- .../Clients/NzbVortex/NzbVortexSettings.cs | 4 +- .../Download/Clients/Nzbget/NzbgetSettings.cs | 4 +- .../QBittorrent/QBittorrentSettings.cs | 4 +- .../Clients/Sabnzbd/SabnzbdSettings.cs | 4 +- .../Transmission/TransmissionSettings.cs | 4 +- .../Clients/rTorrent/RTorrentSettings.cs | 4 +- .../Clients/uTorrent/UTorrentSettings.cs | 4 +- src/NzbDrone.Core/Download/DownloadService.cs | 10 +- .../Download/Pending/PendingReleaseService.cs | 12 +- .../Download/ProcessDownloadDecisions.cs | 10 +- .../RedownloadFailedDownloadService.cs | 4 +- .../TrackedDownloadAlreadyImported.cs | 4 +- .../TrackedDownloadService.cs | 4 +- .../Extras/ExistingExtraFileService.cs | 2 +- .../Extras/Files/ExtraFileManager.cs | 2 +- .../Metadata/ExistingMetadataImporter.cs | 6 +- .../Extras/Metadata/IMetadata.cs | 2 +- .../Extras/Metadata/MetadataBase.cs | 4 +- .../Extras/Metadata/MetadataService.cs | 24 +- .../Extras/Others/OtherExtraService.cs | 2 +- .../HealthCheck/Checks/MonoNotNetCoreCheck.cs | 57 + .../HealthCheck/Checks/RootFolderCheck.cs | 3 +- .../History/HistoryRepository.cs | 1 + src/NzbDrone.Core/History/HistoryService.cs | 6 +- .../CleanupDuplicateMetadataFiles.cs | 4 +- .../CleanupOrphanedHistoryItems.cs | 8 +- .../CleanupOrphanedMetadataFiles.cs | 8 +- .../Housekeepers/DeleteBadMediaCovers.cs | 4 +- .../ImportLists/ImportListSyncService.cs | 94 +- .../LazyLibrarianImportParser.cs | 2 +- .../IndexerSearch/BookSearchService.cs | 12 +- .../Definitions/SearchCriteriaBase.cs | 4 +- .../IndexerSearch/NzbSearchService.cs | 8 +- .../Indexers/Gazelle/GazelleApi.cs | 6 +- .../Indexers/Gazelle/GazelleParser.cs | 4 +- .../Gazelle/GazelleRequestGenerator.cs | 4 +- .../Indexers/Newznab/NewznabRssParser.cs | 20 +- .../MediaCover/MediaCoverService.cs | 30 +- .../MediaCover/MediaCoversUpdatedEvent.cs | 4 +- src/NzbDrone.Core/MediaFiles/AudioTag.cs | 38 +- .../MediaFiles/AudioTagService.cs | 14 +- .../Aggregation/AggregationService.cs | 18 +- .../Aggregators/AggregateCalibreData.cs | 4 +- .../Aggregators/AggregateFilenameInfo.cs | 6 +- .../Aggregators/AggregateQuality.cs | 2 +- .../Aggregators/AggregateReleaseGroup.cs | 2 +- .../Identification/CandidateService.cs | 44 +- .../BookImport/Identification/Distance.cs | 10 +- .../Identification/DistanceCalculator.cs | 24 +- .../Identification/IdentificationService.cs | 38 +- .../Identification/TrackGroupingService.cs | 52 +- .../BookImport/ImportApprovedBooks.cs | 46 +- .../BookImport/ImportArtistDefaults.cs | 4 +- .../BookImport/ImportDecisionMaker.cs | 6 +- .../BookImport/Manual/ManualImportService.cs | 10 +- .../AlbumUpgradeSpecification.cs | 8 +- .../AlreadyImportedSpecification.cs | 12 +- .../AuthorPathInRootFolderSpecification.cs | 2 +- .../CloseAlbumMatchSpecification.cs | 22 +- .../Specifications/SameFileSpecification.cs | 16 +- .../Specifications/UpgradeSpecification.cs | 2 +- .../Commands/RescanFoldersCommand.cs | 8 +- .../MediaFiles/DiskScanService.cs | 14 +- .../DownloadedBooksImportService.cs | 10 +- .../MediaFiles/EbookTagService.cs | 12 +- src/NzbDrone.Core/MediaFiles/FileDateType.cs | 2 +- .../MediaFiles/MediaFileDeletionService.cs | 4 +- .../MediaFiles/RenameBookFileService.cs | 4 +- .../MediaFiles/UpdateTrackFileService.cs | 2 +- .../Goodreads/GoodreadsProxy.cs | 2 +- .../MetadataSource/IProvideAuthorInfo.cs | 2 +- .../MetadataSource/SkyHook/SkyHookProxy.cs | 6 +- .../Notifications/Join/JoinProxy.cs | 2 +- .../Notifications/NotificationService.cs | 30 +- .../Notifications/SendGrid/SendGrid.cs | 10 +- .../Notifications/Webhook/Webhook.cs | 14 +- .../Webhook/WebhookRenamePayload.cs | 2 +- .../Webhook/WebhookRetagPayload.cs | 2 +- .../Organizer/BasicNamingConfig.cs | 4 +- .../Organizer/FileNameBuilder.cs | 6 +- src/NzbDrone.Core/Parser/Model/LocalBook.cs | 2 +- .../Parser/Model/LocalEdition.cs | 4 +- .../Parser/Model/ParsedTrackInfo.cs | 10 +- src/NzbDrone.Core/Parser/Parser.cs | 144 +- src/NzbDrone.Core/Parser/ParsingService.cs | 68 +- src/NzbDrone.Core/Parser/SceneChecker.cs | 2 +- .../Profiles/Releases/PreferredWordService.cs | 4 +- src/NzbDrone.Core/Tags/TagService.cs | 4 +- .../ApiTests/AuthorEditorFixture.cs | 6 +- .../ApiTests/AuthorFixture.cs | 106 +- .../ApiTests/BlacklistFixture.cs | 8 +- .../ApiTests/CalendarFixture.cs | 18 +- .../ApiTests/IndexerFixture.cs | 4 +- .../ApiTests/NamingConfigFixture.cs | 2 +- .../ApiTests/ReleasePushFixture.cs | 2 +- .../ApiTests/WantedFixture.cs | 22 +- .../Client/AuthorClient.cs | 4 +- .../IntegrationTestBase.cs | 12 +- .../UpdateEngine/InstallUpdateService.cs | 2 +- src/Readarr.Api.V1/Author/AuthorModule.cs | 40 +- src/Readarr.Api.V1/Author/AuthorResource.cs | 2 +- .../BookFiles/BookFileModule.cs | 2 +- .../BookShelf/BookshelfModule.cs | 2 +- .../Books/BookModuleWithSignalR.cs | 8 +- src/Readarr.Api.V1/Books/RetagBookModule.cs | 4 +- .../Calendar/CalendarFeedModule.cs | 4 +- src/Readarr.Api.V1/Calendar/CalendarModule.cs | 2 +- .../Config/NamingConfigResource.cs | 4 +- .../Config/NamingExampleResource.cs | 4 +- src/Readarr.Api.V1/History/HistoryModule.cs | 10 +- src/Readarr.Api.V1/Indexers/ReleaseModule.cs | 4 +- .../MediaCovers/MediaCoverModule.cs | 8 +- src/Readarr.Api.V1/Queue/QueueResource.cs | 6 +- src/Readarr.Http/REST/RestModule.cs | 2 +- yarn.lock | 2242 ++++++++--------- 298 files changed, 4464 insertions(+), 4512 deletions(-) create mode 100644 src/NzbDrone.Core/HealthCheck/Checks/MonoNotNetCoreCheck.cs diff --git a/frontend/src/Author/Details/AuthorDetails.css b/frontend/src/Author/Details/AuthorDetails.css index d5e2aaf30..f797a094c 100644 --- a/frontend/src/Author/Details/AuthorDetails.css +++ b/frontend/src/Author/Details/AuthorDetails.css @@ -96,7 +96,7 @@ margin-left: 20px; } -.artistNavigationButtons { +.authorNavigationButtons { position: absolute; right: 0; white-space: nowrap; diff --git a/frontend/src/Author/Editor/Organize/OrganizeAuthorModalContent.js b/frontend/src/Author/Editor/Organize/OrganizeAuthorModalContent.js index f4b696229..32c5bcdd2 100644 --- a/frontend/src/Author/Editor/Organize/OrganizeAuthorModalContent.js +++ b/frontend/src/Author/Editor/Organize/OrganizeAuthorModalContent.js @@ -25,7 +25,7 @@ function OrganizeAuthorModalContent(props) { - Tip: To preview a rename, select "Cancel", then select any artist name and use the + Tip: To preview a rename, select "Cancel", then select any author name and use the x.album).groupBy((x) => x.book.id).mapValues((x) => x.map((y) => y.id)).value()} + importIdsByBook={_.chain(items).filter((x) => x.book).groupBy((x) => x.book.id).mapValues((x) => x.map((y) => y.id)).value()} books={_.chain(items).filter((x) => x.book).keyBy((x) => x.book.id).mapValues((x) => ({ matchedEditionId: x.editionId, book: x.book })).values().value()} onModalClose={this.onSelectModalClose} /> diff --git a/frontend/src/Settings/MediaManagement/MediaManagement.js b/frontend/src/Settings/MediaManagement/MediaManagement.js index e224b6af0..79b62fe9f 100644 --- a/frontend/src/Settings/MediaManagement/MediaManagement.js +++ b/frontend/src/Settings/MediaManagement/MediaManagement.js @@ -389,7 +389,7 @@ class MediaManagement extends Component { type={inputTypes.UMASK} name="chmodFolder" helpText="Octal, applied during import/rename to media folders and files (without execute bits)" - helpTextWarning="This only works if the user running Lidarr is the owner of the file. It's better to ensure the download client sets the permissions properly." + helpTextWarning="This only works if the user running Readarr is the owner of the file. It's better to ensure the download client sets the permissions properly." onChange={onInputChange} {...settings.chmodFolder} /> diff --git a/frontend/src/Settings/Tags/Details/TagDetailsModalContentConnector.js b/frontend/src/Settings/Tags/Details/TagDetailsModalContentConnector.js index c57f1f337..3444039f4 100644 --- a/frontend/src/Settings/Tags/Details/TagDetailsModalContentConnector.js +++ b/frontend/src/Settings/Tags/Details/TagDetailsModalContentConnector.js @@ -9,7 +9,7 @@ function findMatchingItems(ids, items) { }); } -function createMatchingAuthorSelector() { +function createUnorderedMatchingAuthorSelector() { return createSelector( (state, { authorIds }) => authorIds, createAllAuthorSelector(), @@ -17,13 +17,13 @@ function createMatchingAuthorSelector() { ); } -function createMatchingArtistSelector() { +function createMatchingAuthorSelector() { return createSelector( - createUnorderedMatchingArtistSelector(), - (artists) => { - return artists.sort((artistA, artistB) => { - const sortNameA = artistA.sortName; - const sortNameB = artistB.sortName; + createUnorderedMatchingAuthorSelector(), + (authors) => { + return authors.sort((authorA, authorB) => { + const sortNameA = authorA.sortName; + const sortNameB = authorB.sortName; if (sortNameA > sortNameB) { return 1; diff --git a/frontend/src/Store/Actions/bookFileActions.js b/frontend/src/Store/Actions/bookFileActions.js index c809e9641..29b3059b7 100644 --- a/frontend/src/Store/Actions/bookFileActions.js +++ b/frontend/src/Store/Actions/bookFileActions.js @@ -220,9 +220,9 @@ export const actionHandlers = handleThunks({ ...bookFileIds.map((id) => { const props = {}; - const trackFile = data.find((file) => file.id === id); + const bookFile = data.find((file) => file.id === id); - props.qualityCutoffNotMet = trackFile.qualityCutoffNotMet; + props.qualityCutoffNotMet = bookFile.qualityCutoffNotMet; if (quality) { props.quality = quality; diff --git a/frontend/src/Store/Actions/seriesActions.js b/frontend/src/Store/Actions/seriesActions.js index f4c7f4b34..83526108f 100644 --- a/frontend/src/Store/Actions/seriesActions.js +++ b/frontend/src/Store/Actions/seriesActions.js @@ -4,6 +4,7 @@ import { createThunk, handleThunks } from 'Store/thunks'; import createFetchHandler from './Creators/createFetchHandler'; import createHandleActions from './Creators/createHandleActions'; import createSetClientSideCollectionSortReducer from './Creators/Reducers/createSetClientSideCollectionSortReducer'; +import createSetSettingValueReducer from './Creators/Reducers/createSetSettingValueReducer'; // // Variables @@ -96,6 +97,7 @@ export const defaultState = { export const FETCH_SERIES = 'series/fetchSeries'; export const SET_SERIES_SORT = 'books/setSeriesSort'; export const CLEAR_SERIES = 'series/clearSeries'; +export const SET_SERIES_VALUE = 'books/setBookValue'; // // Action Creators @@ -118,6 +120,8 @@ export const reducers = createHandleActions({ [SET_SERIES_SORT]: createSetClientSideCollectionSortReducer(section), + [SET_SERIES_VALUE]: createSetSettingValueReducer(section), + [CLEAR_SERIES]: (state) => { return Object.assign({}, state, { isFetching: false, diff --git a/frontend/src/Styles/Variables/dimensions.js b/frontend/src/Styles/Variables/dimensions.js index fd78d61fa..b650e7ce1 100644 --- a/frontend/src/Styles/Variables/dimensions.js +++ b/frontend/src/Styles/Variables/dimensions.js @@ -46,7 +46,7 @@ module.exports = { // Modal modalBodyPadding: '30px', - // Artist + // Author authorIndexColumnPadding: '10px', authorIndexColumnPaddingSmallScreen: '5px', authorIndexOverviewInfoRowHeight: '21px' diff --git a/schemas/torznab.xsd b/schemas/torznab.xsd index 9c772c9da..041525508 100644 --- a/schemas/torznab.xsd +++ b/schemas/torznab.xsd @@ -44,8 +44,8 @@ - - + + diff --git a/src/NzbDrone.Automation.Test/MainPagesTest.cs b/src/NzbDrone.Automation.Test/MainPagesTest.cs index fdc1eca3c..98feb3a20 100644 --- a/src/NzbDrone.Automation.Test/MainPagesTest.cs +++ b/src/NzbDrone.Automation.Test/MainPagesTest.cs @@ -18,7 +18,7 @@ namespace NzbDrone.Automation.Test } [Test] - public void artist_page() + public void author_page() { _page.LibraryNavIcon.Click(); _page.WaitForNoSpinner(); @@ -78,7 +78,7 @@ namespace NzbDrone.Automation.Test } [Test] - public void add_artist_page() + public void add_author_page() { _page.LibraryNavIcon.Click(); _page.WaitForNoSpinner(); diff --git a/src/NzbDrone.Common.Test/DiskTests/DiskProviderFixtureBase.cs b/src/NzbDrone.Common.Test/DiskTests/DiskProviderFixtureBase.cs index d9e39b787..5486fbef0 100644 --- a/src/NzbDrone.Common.Test/DiskTests/DiskProviderFixtureBase.cs +++ b/src/NzbDrone.Common.Test/DiskTests/DiskProviderFixtureBase.cs @@ -125,16 +125,16 @@ namespace NzbDrone.Common.Test.DiskTests [Test] public void should_be_able_to_delete_nested_empty_subdirs() { - var artistDir = Path.Combine(GetTempFilePath(), "Artist"); - var albumDir = Path.Combine(artistDir, "Album"); + var authorDir = Path.Combine(GetTempFilePath(), "Author"); + var bookDir = Path.Combine(authorDir, "Book"); - Directory.CreateDirectory(Path.Combine(albumDir)); - Directory.CreateDirectory(Path.Combine(albumDir, "Album")); - Directory.CreateDirectory(Path.Combine(albumDir, "Album", "CD1")); - Directory.CreateDirectory(Path.Combine(albumDir, "Album", "CD2")); + Directory.CreateDirectory(Path.Combine(bookDir)); + Directory.CreateDirectory(Path.Combine(bookDir, "Book")); + Directory.CreateDirectory(Path.Combine(bookDir, "Book", "CD1")); + Directory.CreateDirectory(Path.Combine(bookDir, "Book", "CD2")); - Subject.RemoveEmptySubfolders(artistDir); - Directory.Exists(albumDir).Should().BeFalse(); + Subject.RemoveEmptySubfolders(authorDir); + Directory.Exists(bookDir).Should().BeFalse(); } [Test] diff --git a/src/NzbDrone.Common.Test/Http/HttpClientFixture.cs b/src/NzbDrone.Common.Test/Http/HttpClientFixture.cs index 9b3e84046..b87e3a4ce 100644 --- a/src/NzbDrone.Common.Test/Http/HttpClientFixture.cs +++ b/src/NzbDrone.Common.Test/Http/HttpClientFixture.cs @@ -283,13 +283,13 @@ namespace NzbDrone.Common.Test.Http { var file = GetTempFilePath(); - var url = "https://lidarr.audio/img/slider/artistdetails.png"; + var url = "https://readarr.com/img/slider/artistdetails.png"; Subject.DownloadFile(url, file); var fileInfo = new FileInfo(file); fileInfo.Exists.Should().BeTrue(); - fileInfo.Length.Should().Be(146122); + fileInfo.Length.Should().Be(192367); } [Test] @@ -298,7 +298,7 @@ namespace NzbDrone.Common.Test.Http var file = GetTempFilePath(); var request = new HttpRequestBuilder($"https://{_httpBinHost}/redirect-to") - .AddQueryParam("url", $"https://lidarr.audio/img/slider/artistdetails.png") + .AddQueryParam("url", $"https://readarr.com/img/slider/artistdetails.png") .Build(); Subject.DownloadFile(request.Url.FullUri, file); @@ -307,7 +307,7 @@ namespace NzbDrone.Common.Test.Http var fileInfo = new FileInfo(file); fileInfo.Exists.Should().BeTrue(); - fileInfo.Length.Should().Be(146122); + fileInfo.Length.Should().Be(192367); } [Test] diff --git a/src/NzbDrone.Common.Test/InstrumentationTests/CleanseLogMessageFixture.cs b/src/NzbDrone.Common.Test/InstrumentationTests/CleanseLogMessageFixture.cs index 20c512538..cbbcbd378 100644 --- a/src/NzbDrone.Common.Test/InstrumentationTests/CleanseLogMessageFixture.cs +++ b/src/NzbDrone.Common.Test/InstrumentationTests/CleanseLogMessageFixture.cs @@ -17,9 +17,11 @@ namespace NzbDrone.Common.Test.InstrumentationTests [TestCase(@"https://baconbits.org/feeds.php?feed=torrents_tv&user=12345&auth=2b51db35e1910123321025a12b9933d2&passkey=mySecret&authkey=2b51db35e1910123321025a12b9933d2")] [TestCase(@"http://127.0.0.1:9117/dl/indexername?jackett_apikey=flwjiefewklfjacketmySecretsdfldskjfsdlk&path=we0re9f0sdfbase64sfdkfjsdlfjk&file=The+Torrent+File+Name.torrent")] [TestCase(@"http://nzb.su/getnzb/2b51db35e1912ffc138825a12b9933d2.nzb&i=37292&r=2b51db35e1910123321025a12b9933d2")] + // NzbGet [TestCase(@"{ ""Name"" : ""ControlUsername"", ""Value"" : ""mySecret"" }, { ""Name"" : ""ControlPassword"", ""Value"" : ""mySecret"" }, ")] [TestCase(@"{ ""Name"" : ""Server1.Username"", ""Value"" : ""mySecret"" }, { ""Name"" : ""Server1.Password"", ""Value"" : ""mySecret"" }, ")] + // Sabnzbd [TestCase(@"http://127.0.0.1:1234/api/call?vv=1&apikey=mySecret")] [TestCase(@"http://127.0.0.1:1234/api/call?vv=1&ma_username=mySecret&ma_password=mySecret")] @@ -30,6 +32,7 @@ namespace NzbDrone.Common.Test.InstrumentationTests [TestCase(@"""misc"":{""username"":""mySecret"",""api_key"":""mySecret"",""password"":""mySecret"",""nzb_key"":""mySecret""}")] [TestCase(@"""servers"":[{""username"":""mySecret"",""password"":""mySecret""}]")] [TestCase(@"""misc"":{""email_account"":""mySecret"",""email_to"":[],""email_from"":"""",""email_pwd"":""mySecret""}")] + // uTorrent [TestCase(@"http://localhost:9091/gui/?token=wThmph5l0ZXfH-a6WOA4lqiLvyjCP0FpMrMeXmySecret_VXBO11HoKL751MAAAAA&list=1")] [TestCase(@",[""boss_key"",0,""mySecret"",{""access"":""Y""}],[""boss_key_salt"",0,""mySecret"",{""access"":""W""}]")] @@ -37,18 +40,23 @@ namespace NzbDrone.Common.Test.InstrumentationTests [TestCase(@",[""webui.uconnect_username"",2,""mySecret"",{""access"":""Y""}],[""webui.uconnect_password"",2,""mySecret"",{""access"":""Y""}]")] [TestCase(@",[""proxy.proxy"",2,""mySecret"",{""access"":""Y""}]")] [TestCase(@",[""proxy.username"",2,""mySecret"",{""access"":""Y""}],[""proxy.password"",2,""mySecret"",{""access"":""Y""}]")] + // Deluge [TestCase(@",{""download_location"": ""C:\Users\\mySecret mySecret\\Downloads""}")] [TestCase(@",{""download_location"": ""/home/mySecret/Downloads""}")] [TestCase(@"auth.login(""mySecret"")")] + // Download Station [TestCase(@"webapi/entry.cgi?api=(removed)&version=2&method=login&account=01233210&passwd=mySecret&format=sid&session=DownloadStation")] + // BroadcastheNet [TestCase(@"method: ""getTorrents"", ""params"": [ ""mySecret"",")] [TestCase(@"getTorrents(""mySecret"", [asdfasdf], 100, 0)")] [TestCase(@"""DownloadURL"":""https:\/\/broadcasthe.net\/torrents.php?action=download&id=123&authkey=mySecret&torrent_pass=mySecret""")] + // Spotify Refresh [TestCase(@"https://auth.servarr.com/renew?refresh_token=mySecret")] + // Plex [TestCase(@" http://localhost:32400/library/metadata/12345/refresh?X-Plex-Client-Identifier=1234530f-422f-4aac-b6b3-01233210aaaa&X-Plex-Product=Sonarr&X-Plex-Platform=Windows&X-Plex-Platform-Version=7&X-Plex-Device-Name=Sonarr&X-Plex-Version=3.0.3.833&X-Plex-Token=mySecret")] public void should_clean_message(string message) diff --git a/src/NzbDrone.Common.Test/PathExtensionFixture.cs b/src/NzbDrone.Common.Test/PathExtensionFixture.cs index 08fa3b645..144094c26 100644 --- a/src/NzbDrone.Common.Test/PathExtensionFixture.cs +++ b/src/NzbDrone.Common.Test/PathExtensionFixture.cs @@ -292,28 +292,28 @@ namespace NzbDrone.Common.Test public void GetAncestorFolders_should_return_all_ancestors_in_path_Windows() { WindowsOnly(); - var path = @"C:\Test\Music\Artist Title"; + var path = @"C:\Test\Music\Author Title"; var result = path.GetAncestorFolders(); result.Count.Should().Be(4); result[0].Should().Be(@"C:\"); result[1].Should().Be(@"Test"); result[2].Should().Be(@"Music"); - result[3].Should().Be(@"Artist Title"); + result[3].Should().Be(@"Author Title"); } [Test] public void GetAncestorFolders_should_return_all_ancestors_in_path_Linux() { PosixOnly(); - var path = @"/Test/Music/Artist Title"; + var path = @"/Test/Music/Author Title"; var result = path.GetAncestorFolders(); result.Count.Should().Be(4); result[0].Should().Be(@"/"); result[1].Should().Be(@"Test"); result[2].Should().Be(@"Music"); - result[3].Should().Be(@"Artist Title"); + result[3].Should().Be(@"Author Title"); } } } diff --git a/src/NzbDrone.Common/Instrumentation/CleanseLogMessage.cs b/src/NzbDrone.Common/Instrumentation/CleanseLogMessage.cs index 5001f59f7..84ef1f833 100644 --- a/src/NzbDrone.Common/Instrumentation/CleanseLogMessage.cs +++ b/src/NzbDrone.Common/Instrumentation/CleanseLogMessage.cs @@ -1,4 +1,3 @@ -using System; using System.Linq; using System.Net; using System.Text.RegularExpressions; diff --git a/src/NzbDrone.Core.Test/ArtistStatsTests/ArtistStatisticsFixture.cs b/src/NzbDrone.Core.Test/ArtistStatsTests/ArtistStatisticsFixture.cs index ec3ec87b7..89c428ad4 100644 --- a/src/NzbDrone.Core.Test/ArtistStatsTests/ArtistStatisticsFixture.cs +++ b/src/NzbDrone.Core.Test/ArtistStatsTests/ArtistStatisticsFixture.cs @@ -9,38 +9,38 @@ using NzbDrone.Core.MediaFiles; using NzbDrone.Core.Qualities; using NzbDrone.Core.Test.Framework; -namespace NzbDrone.Core.Test.ArtistStatsTests +namespace NzbDrone.Core.Test.AuthorStatsTests { [TestFixture] - public class ArtistStatisticsFixture : DbTest + public class AuthorStatisticsFixture : DbTest { - private Author _artist; - private Book _album; + private Author _author; + private Book _book; private Edition _edition; private BookFile _trackFile; [SetUp] public void Setup() { - _artist = Builder.CreateNew() + _author = Builder.CreateNew() .With(a => a.AuthorMetadataId = 10) .BuildNew(); - Db.Insert(_artist); + Db.Insert(_author); - _album = Builder.CreateNew() + _book = Builder.CreateNew() .With(e => e.ReleaseDate = DateTime.Today.AddDays(-5)) .With(e => e.AuthorMetadataId = 10) .BuildNew(); - Db.Insert(_album); + Db.Insert(_book); _edition = Builder.CreateNew() - .With(e => e.BookId = _album.Id) + .With(e => e.BookId = _book.Id) .With(e => e.Monitored = true) .BuildNew(); Db.Insert(_edition); _trackFile = Builder.CreateNew() - .With(e => e.Author = _artist) + .With(e => e.Author = _author) .With(e => e.Edition = _edition) .With(e => e.EditionId == _edition.Id) .With(e => e.Quality = new QualityModel(Quality.MP3_320)) @@ -53,7 +53,7 @@ namespace NzbDrone.Core.Test.ArtistStatsTests } [Test] - public void should_get_stats_for_artist() + public void should_get_stats_for_author() { var stats = Subject.AuthorStatistics(); diff --git a/src/NzbDrone.Core.Test/Blacklisting/BlacklistRepositoryFixture.cs b/src/NzbDrone.Core.Test/Blacklisting/BlacklistRepositoryFixture.cs index 00be192f0..50a57d93f 100644 --- a/src/NzbDrone.Core.Test/Blacklisting/BlacklistRepositoryFixture.cs +++ b/src/NzbDrone.Core.Test/Blacklisting/BlacklistRepositoryFixture.cs @@ -22,7 +22,7 @@ namespace NzbDrone.Core.Test.Blacklisting AuthorId = 12345, BookIds = new List { 1 }, Quality = new QualityModel(Quality.FLAC), - SourceTitle = "artist.name.album.title", + SourceTitle = "author.name.book.title", Date = DateTime.UtcNow }; } @@ -35,7 +35,7 @@ namespace NzbDrone.Core.Test.Blacklisting } [Test] - public void should_should_have_album_ids() + public void should_should_have_book_ids() { Subject.Insert(_blacklist); diff --git a/src/NzbDrone.Core.Test/Blacklisting/BlacklistServiceFixture.cs b/src/NzbDrone.Core.Test/Blacklisting/BlacklistServiceFixture.cs index 6a23d0a4d..7a5e827ef 100644 --- a/src/NzbDrone.Core.Test/Blacklisting/BlacklistServiceFixture.cs +++ b/src/NzbDrone.Core.Test/Blacklisting/BlacklistServiceFixture.cs @@ -22,7 +22,7 @@ namespace NzbDrone.Core.Test.Blacklisting AuthorId = 12345, BookIds = new List { 1 }, Quality = new QualityModel(Quality.MP3_320), - SourceTitle = "artist.name.album.title", + SourceTitle = "author.name.book.title", DownloadClient = "SabnzbdClient", DownloadId = "Sabnzbd_nzo_2dfh73k" }; diff --git a/src/NzbDrone.Core.Test/Datastore/DatabaseRelationshipFixture.cs b/src/NzbDrone.Core.Test/Datastore/DatabaseRelationshipFixture.cs index 4e4903c7f..c8e9efd6c 100644 --- a/src/NzbDrone.Core.Test/Datastore/DatabaseRelationshipFixture.cs +++ b/src/NzbDrone.Core.Test/Datastore/DatabaseRelationshipFixture.cs @@ -15,13 +15,13 @@ namespace NzbDrone.Core.Test.Datastore [Test] public void one_to_one() { - var album = Builder.CreateNew() + var book = Builder.CreateNew() .With(c => c.Id = 0) .With(x => x.ReleaseDate = DateTime.UtcNow) .With(x => x.LastInfoSync = DateTime.UtcNow) .With(x => x.Added = DateTime.UtcNow) .BuildNew(); - Db.Insert(album); + Db.Insert(book); } [Test] diff --git a/src/NzbDrone.Core.Test/Datastore/LazyLoadingFixture.cs b/src/NzbDrone.Core.Test/Datastore/LazyLoadingFixture.cs index 693dc0bec..3f2a69ebd 100644 --- a/src/NzbDrone.Core.Test/Datastore/LazyLoadingFixture.cs +++ b/src/NzbDrone.Core.Test/Datastore/LazyLoadingFixture.cs @@ -34,31 +34,31 @@ namespace NzbDrone.Core.Test.Datastore .Build(); Db.Insert(metadata); - var artist = Builder.CreateListOfSize(1) + var author = Builder.CreateListOfSize(1) .All() .With(v => v.Id = 0) .With(v => v.QualityProfileId = profile.Id) .With(v => v.AuthorMetadataId = metadata.Id) .BuildListOfNew(); - Db.InsertMany(artist); + Db.InsertMany(author); - var albums = Builder.CreateListOfSize(3) + var books = Builder.CreateListOfSize(3) .All() .With(v => v.Id = 0) .With(v => v.AuthorMetadataId = metadata.Id) .BuildListOfNew(); - Db.InsertMany(albums); + Db.InsertMany(books); var editions = new List(); - foreach (var album in albums) + foreach (var book in books) { editions.Add( Builder.CreateNew() .With(v => v.Id = 0) - .With(v => v.BookId = album.Id) - .With(v => v.ForeignEditionId = "test" + album.Id) + .With(v => v.BookId = book.Id) + .With(v => v.ForeignEditionId = "test" + book.Id) .Build()); } @@ -75,7 +75,7 @@ namespace NzbDrone.Core.Test.Datastore } [Test] - public void should_lazy_load_artist_for_trackfile() + public void should_lazy_load_author_for_trackfile() { var db = Mocker.Resolve(); var tracks = db.Query(new SqlBuilder()).ToList(); @@ -112,7 +112,7 @@ namespace NzbDrone.Core.Test.Datastore new SqlBuilder() .Join((t, a) => t.EditionId == a.Id) .Join((e, b) => e.BookId == b.Id) - .Join((album, artist) => album.AuthorMetadataId == artist.AuthorMetadataId) + .Join((book, author) => book.AuthorMetadataId == author.AuthorMetadataId) .Join((a, m) => a.AuthorMetadataId == m.Id)); Assert.IsNotEmpty(files); diff --git a/src/NzbDrone.Core.Test/Datastore/TableMapperFixture.cs b/src/NzbDrone.Core.Test/Datastore/TableMapperFixture.cs index 72660d1bb..36a6c46a8 100644 --- a/src/NzbDrone.Core.Test/Datastore/TableMapperFixture.cs +++ b/src/NzbDrone.Core.Test/Datastore/TableMapperFixture.cs @@ -27,7 +27,7 @@ namespace NzbDrone.Core.Test.Datastore public class TypeWithNoMappableProperties { - public Author Artist { get; set; } + public Author Author { get; set; } public int ReadOnly { get; private set; } public int WriteOnly { private get; set; } diff --git a/src/NzbDrone.Core.Test/Datastore/WhereBuilderFixture.cs b/src/NzbDrone.Core.Test/Datastore/WhereBuilderFixture.cs index 98ba39621..75ffb777a 100644 --- a/src/NzbDrone.Core.Test/Datastore/WhereBuilderFixture.cs +++ b/src/NzbDrone.Core.Test/Datastore/WhereBuilderFixture.cs @@ -54,12 +54,12 @@ namespace NzbDrone.Core.Test.Datastore [Test] public void where_equal_property() { - var artist = new Author { Id = 10 }; - _subject = Where(x => x.Id == artist.Id); + var author = new Author { Id = 10 }; + _subject = Where(x => x.Id == author.Id); _subject.Parameters.ParameterNames.Should().HaveCount(1); _subject.ToString().Should().Be($"(\"Authors\".\"Id\" = @Clause1_P1)"); - _subject.Parameters.Get("Clause1_P1").Should().Be(artist.Id); + _subject.Parameters.Get("Clause1_P1").Should().Be(author.Id); } [Test] @@ -108,8 +108,8 @@ namespace NzbDrone.Core.Test.Datastore [Test] public void where_equal_null_property() { - var artist = new Author { CleanName = null }; - _subject = Where(x => x.CleanName == artist.CleanName); + var author = new Author { CleanName = null }; + _subject = Where(x => x.CleanName == author.CleanName); _subject.ToString().Should().Be($"(\"Authors\".\"CleanName\" IS NULL)"); } diff --git a/src/NzbDrone.Core.Test/DecisionEngineTests/AlreadyImportedSpecificationFixture.cs b/src/NzbDrone.Core.Test/DecisionEngineTests/AlreadyImportedSpecificationFixture.cs index 96745b7c9..dfe063da9 100644 --- a/src/NzbDrone.Core.Test/DecisionEngineTests/AlreadyImportedSpecificationFixture.cs +++ b/src/NzbDrone.Core.Test/DecisionEngineTests/AlreadyImportedSpecificationFixture.cs @@ -20,9 +20,9 @@ namespace NzbDrone.Core.Test.DecisionEngineTests public class AlreadyImportedSpecificationFixture : CoreTest { private const int FIRST_ALBUM_ID = 1; - private const string TITLE = "Some.Artist-Some.Album-2018-320kbps-CD-Readarr"; + private const string TITLE = "Some.Author-Some.Book-2018-320kbps-CD-Readarr"; - private Author _artist; + private Author _author; private QualityModel _mp3; private QualityModel _flac; private RemoteBook _remoteBook; @@ -32,16 +32,16 @@ namespace NzbDrone.Core.Test.DecisionEngineTests [SetUp] public void Setup() { - var singleAlbumList = new List + var singleBookList = new List { new Book { Id = FIRST_ALBUM_ID, - Title = "Some Album" + Title = "Some Book" } }; - _artist = Builder.CreateNew() + _author = Builder.CreateNew() .Build(); _firstFile = new BookFile { Quality = new QualityModel(Quality.FLAC, new Revision(version: 2)), DateAdded = DateTime.Now }; @@ -51,9 +51,9 @@ namespace NzbDrone.Core.Test.DecisionEngineTests _remoteBook = new RemoteBook { - Author = _artist, + Author = _author, ParsedBookInfo = new ParsedBookInfo { Quality = _mp3 }, - Books = singleAlbumList, + Books = singleBookList, Release = Builder.CreateNew() .Build() }; @@ -101,7 +101,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests } [Test] - public void should_be_accepted_if_album_does_not_have_a_file() + public void should_be_accepted_if_book_does_not_have_a_file() { Mocker.GetMock() .Setup(c => c.GetFilesByBook(It.IsAny())) @@ -111,13 +111,13 @@ namespace NzbDrone.Core.Test.DecisionEngineTests } [Test] - public void should_be_accepted_if_album_does_not_have_grabbed_event() + public void should_be_accepted_if_book_does_not_have_grabbed_event() { Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue(); } [Test] - public void should_be_accepted_if_album_does_not_have_imported_event() + public void should_be_accepted_if_book_does_not_have_imported_event() { GivenHistoryItem(Guid.NewGuid().ToString().ToUpper(), TITLE, _mp3, HistoryEventType.Grabbed); diff --git a/src/NzbDrone.Core.Test/DecisionEngineTests/CutoffSpecificationFixture.cs b/src/NzbDrone.Core.Test/DecisionEngineTests/CutoffSpecificationFixture.cs index 1c5992556..cadd4208a 100644 --- a/src/NzbDrone.Core.Test/DecisionEngineTests/CutoffSpecificationFixture.cs +++ b/src/NzbDrone.Core.Test/DecisionEngineTests/CutoffSpecificationFixture.cs @@ -14,7 +14,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests private static readonly int NoPreferredWordScore = 0; [Test] - public void should_return_true_if_current_album_is_less_than_cutoff() + public void should_return_true_if_current_book_is_less_than_cutoff() { Subject.CutoffNotMet( new QualityProfile @@ -27,7 +27,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests } [Test] - public void should_return_false_if_current_album_is_equal_to_cutoff() + public void should_return_false_if_current_book_is_equal_to_cutoff() { Subject.CutoffNotMet( new QualityProfile @@ -40,7 +40,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests } [Test] - public void should_return_false_if_current_album_is_greater_than_cutoff() + public void should_return_false_if_current_book_is_greater_than_cutoff() { Subject.CutoffNotMet( new QualityProfile @@ -53,7 +53,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests } [Test] - public void should_return_true_when_new_album_is_proper_but_existing_is_not() + public void should_return_true_when_new_book_is_proper_but_existing_is_not() { Subject.CutoffNotMet( new QualityProfile diff --git a/src/NzbDrone.Core.Test/DecisionEngineTests/DiscographySpecificationFixture.cs b/src/NzbDrone.Core.Test/DecisionEngineTests/DiscographySpecificationFixture.cs index 8aece977d..e1a86ae58 100644 --- a/src/NzbDrone.Core.Test/DecisionEngineTests/DiscographySpecificationFixture.cs +++ b/src/NzbDrone.Core.Test/DecisionEngineTests/DiscographySpecificationFixture.cs @@ -20,7 +20,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests [SetUp] public void Setup() { - var artist = Builder.CreateNew().With(s => s.Id = 1234).Build(); + var author = Builder.CreateNew().With(s => s.Id = 1234).Build(); _remoteBook = new RemoteBook { ParsedBookInfo = new ParsedBookInfo @@ -30,12 +30,12 @@ namespace NzbDrone.Core.Test.DecisionEngineTests Books = Builder.CreateListOfSize(3) .All() .With(e => e.ReleaseDate = DateTime.UtcNow.AddDays(-8)) - .With(s => s.AuthorId = artist.Id) + .With(s => s.AuthorId = author.Id) .BuildList(), - Author = artist, + Author = author, Release = new ReleaseInfo { - Title = "Artist.Discography.1978.2005.FLAC-RlsGrp" + Title = "Author.Discography.1978.2005.FLAC-RlsGrp" } }; @@ -52,20 +52,20 @@ namespace NzbDrone.Core.Test.DecisionEngineTests } [Test] - public void should_return_true_if_all_albums_have_released() + public void should_return_true_if_all_books_have_released() { Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue(); } [Test] - public void should_return_false_if_one_album_has_not_released() + public void should_return_false_if_one_book_has_not_released() { _remoteBook.Books.Last().ReleaseDate = DateTime.UtcNow.AddDays(+2); Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeFalse(); } [Test] - public void should_return_false_if_an_album_does_not_have_an_release_date() + public void should_return_false_if_an_book_does_not_have_an_release_date() { _remoteBook.Books.Last().ReleaseDate = null; Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeFalse(); diff --git a/src/NzbDrone.Core.Test/DecisionEngineTests/DownloadDecisionMakerFixture.cs b/src/NzbDrone.Core.Test/DecisionEngineTests/DownloadDecisionMakerFixture.cs index 539feec6e..2af1fa54a 100644 --- a/src/NzbDrone.Core.Test/DecisionEngineTests/DownloadDecisionMakerFixture.cs +++ b/src/NzbDrone.Core.Test/DecisionEngineTests/DownloadDecisionMakerFixture.cs @@ -147,7 +147,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests } [Test] - public void should_not_attempt_to_map_album_if_not_parsable() + public void should_not_attempt_to_map_book_if_not_parsable() { GivenSpecifications(_pass1, _pass2, _pass3); _reports[0].Title = "Not parsable"; @@ -159,11 +159,10 @@ namespace NzbDrone.Core.Test.DecisionEngineTests _pass1.Verify(c => c.IsSatisfiedBy(It.IsAny(), null), Times.Never()); _pass2.Verify(c => c.IsSatisfiedBy(It.IsAny(), null), Times.Never()); _pass3.Verify(c => c.IsSatisfiedBy(It.IsAny(), null), Times.Never()); - } [Test] - public void should_not_attempt_to_map_album_if_artist_title_is_blank() + public void should_not_attempt_to_map_book_if_author_title_is_blank() { GivenSpecifications(_pass1, _pass2, _pass3); _reports[0].Title = "2013 - Night Visions"; @@ -185,20 +184,20 @@ namespace NzbDrone.Core.Test.DecisionEngineTests GivenSpecifications(_pass1, _pass2, _pass3); _reports[0].Title = "1937 - Snow White and the Seven Dwarves"; - var artist = new Artist { Name = "Some Artist" }; - var albums = new List { new Album { Title = "Some Album" } }; + var author = new Author { Name = "Some Author" }; + var books = new List { new Book { Title = "Some Book" } }; - Subject.GetSearchDecision(_reports, new AlbumSearchCriteria { Artist = artist, Albums = albums }).ToList(); + Subject.GetSearchDecision(_reports, new BookSearchCriteria { Author = author, Books = books }).ToList(); - Mocker.GetMock().Verify(c => c.Map(It.IsAny(), It.IsAny()), Times.Never()); + Mocker.GetMock().Verify(c => c.Map(It.IsAny(), It.IsAny()), Times.Never()); - _pass1.Verify(c => c.IsSatisfiedBy(It.IsAny(), null), Times.Never()); - _pass2.Verify(c => c.IsSatisfiedBy(It.IsAny(), null), Times.Never()); - _pass3.Verify(c => c.IsSatisfiedBy(It.IsAny(), null), Times.Never()); + _pass1.Verify(c => c.IsSatisfiedBy(It.IsAny(), null), Times.Never()); + _pass2.Verify(c => c.IsSatisfiedBy(It.IsAny(), null), Times.Never()); + _pass3.Verify(c => c.IsSatisfiedBy(It.IsAny(), null), Times.Never()); } [Test] - public void should_not_attempt_to_make_decision_if_artist_is_unknown() + public void should_not_attempt_to_make_decision_if_author_is_unknown() { GivenSpecifications(_pass1, _pass2, _pass3); @@ -234,7 +233,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests } [Test] - public void should_return_unknown_artist_rejection_if_artist_is_unknown() + public void should_return_unknown_author_rejection_if_author_is_unknown() { GivenSpecifications(_pass1, _pass2, _pass3); @@ -246,22 +245,22 @@ namespace NzbDrone.Core.Test.DecisionEngineTests } [Test] - public void should_only_include_reports_for_requested_albums() + public void should_only_include_reports_for_requested_books() { - var artist = Builder.CreateNew().Build(); + var author = Builder.CreateNew().Build(); - var albums = Builder.CreateListOfSize(2) + var books = Builder.CreateListOfSize(2) .All() - .With(v => v.AuthorId, artist.Id) - .With(v => v.Author, new LazyLoaded(artist)) + .With(v => v.AuthorId, author.Id) + .With(v => v.Author, new LazyLoaded(author)) .BuildList(); - var criteria = new AuthorSearchCriteria { Books = albums.Take(1).ToList() }; + var criteria = new AuthorSearchCriteria { Books = books.Take(1).ToList() }; - var reports = albums.Select(v => + var reports = books.Select(v => new ReleaseInfo() { - Title = string.Format("{0}-{1}[FLAC][2017][DRONE]", artist.Name, v.Title) + Title = string.Format("{0}-{1}[FLAC][2017][DRONE]", author.Name, v.Title) }).ToList(); Mocker.GetMock() @@ -271,8 +270,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests { DownloadAllowed = true, ParsedBookInfo = p, - Author = artist, - Books = albums.Where(v => v.Title == p.BookTitle).ToList() + Author = author, + Books = books.Where(v => v.Title == p.BookTitle).ToList() }); Mocker.SetConstant>(new List @@ -288,7 +287,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests } [Test] - public void should_not_allow_download_if_artist_is_unknown() + public void should_not_allow_download_if_author_is_unknown() { GivenSpecifications(_pass1, _pass2, _pass3); @@ -302,7 +301,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests } [Test] - public void should_not_allow_download_if_no_albums_found() + public void should_not_allow_download_if_no_books_found() { GivenSpecifications(_pass1, _pass2, _pass3); diff --git a/src/NzbDrone.Core.Test/DecisionEngineTests/EarlyReleaseSpecificationFixture.cs b/src/NzbDrone.Core.Test/DecisionEngineTests/EarlyReleaseSpecificationFixture.cs index 0fe0ec230..3c50a1d9e 100644 --- a/src/NzbDrone.Core.Test/DecisionEngineTests/EarlyReleaseSpecificationFixture.cs +++ b/src/NzbDrone.Core.Test/DecisionEngineTests/EarlyReleaseSpecificationFixture.cs @@ -17,27 +17,27 @@ namespace NzbDrone.Core.Test.DecisionEngineTests [TestFixture] public class EarlyReleaseSpecificationFixture : TestBase { - private Author _artist; - private Book _album1; - private Book _album2; + private Author _author; + private Book _book1; + private Book _book2; private RemoteBook _remoteBook; private IndexerDefinition _indexerDefinition; [SetUp] public void Setup() { - _artist = Builder.CreateNew().With(s => s.Id = 1).Build(); - _album1 = Builder.CreateNew().With(s => s.ReleaseDate = DateTime.Today).Build(); - _album2 = Builder.CreateNew().With(s => s.ReleaseDate = DateTime.Today).Build(); + _author = Builder.CreateNew().With(s => s.Id = 1).Build(); + _book1 = Builder.CreateNew().With(s => s.ReleaseDate = DateTime.Today).Build(); + _book2 = Builder.CreateNew().With(s => s.ReleaseDate = DateTime.Today).Build(); _remoteBook = new RemoteBook { - Author = _artist, - Books = new List { _album1 }, + Author = _author, + Books = new List { _book1 }, Release = new TorrentInfo { IndexerId = 1, - Title = "Artist - Album [FLAC-RlsGrp]", + Title = "Author - Book [FLAC-RlsGrp]", PublishDate = DateTime.Today } }; @@ -66,9 +66,9 @@ namespace NzbDrone.Core.Test.DecisionEngineTests } [Test] - public void should_return_true_if_release_contains_multiple_albums() + public void should_return_true_if_release_contains_multiple_books() { - _remoteBook.Books.Add(_album2); + _remoteBook.Books.Add(_book2); Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue(); } diff --git a/src/NzbDrone.Core.Test/DecisionEngineTests/HistorySpecificationFixture.cs b/src/NzbDrone.Core.Test/DecisionEngineTests/HistorySpecificationFixture.cs index f9962a37b..540b121da 100644 --- a/src/NzbDrone.Core.Test/DecisionEngineTests/HistorySpecificationFixture.cs +++ b/src/NzbDrone.Core.Test/DecisionEngineTests/HistorySpecificationFixture.cs @@ -29,7 +29,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests private RemoteBook _parseResultSingle; private QualityModel _upgradableQuality; private QualityModel _notupgradableQuality; - private Author _fakeArtist; + private Author _fakeAuthor; [SetUp] public void Setup() @@ -37,15 +37,15 @@ namespace NzbDrone.Core.Test.DecisionEngineTests Mocker.Resolve(); _upgradeHistory = Mocker.Resolve(); - var singleAlbumList = new List { new Book { Id = FIRST_ALBUM_ID } }; - var doubleAlbumList = new List + var singleBookList = new List { new Book { Id = FIRST_ALBUM_ID } }; + var doubleBookList = new List { new Book { Id = FIRST_ALBUM_ID }, new Book { Id = SECOND_ALBUM_ID }, new Book { Id = 3 } }; - _fakeArtist = Builder.CreateNew() + _fakeAuthor = Builder.CreateNew() .With(c => c.QualityProfile = new QualityProfile { UpgradeAllowed = true, @@ -56,16 +56,16 @@ namespace NzbDrone.Core.Test.DecisionEngineTests _parseResultMulti = new RemoteBook { - Author = _fakeArtist, + Author = _fakeAuthor, ParsedBookInfo = new ParsedBookInfo { Quality = new QualityModel(Quality.MP3_320, new Revision(version: 2)) }, - Books = doubleAlbumList + Books = doubleBookList }; _parseResultSingle = new RemoteBook { - Author = _fakeArtist, + Author = _fakeAuthor, ParsedBookInfo = new ParsedBookInfo { Quality = new QualityModel(Quality.MP3_320, new Revision(version: 2)) }, - Books = singleAlbumList + Books = singleBookList }; _upgradableQuality = new QualityModel(Quality.MP3_320, new Revision(version: 1)); @@ -76,7 +76,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests .Returns(true); } - private void GivenMostRecentForAlbum(int bookId, string downloadId, QualityModel quality, DateTime date, HistoryEventType eventType) + private void GivenMostRecentForBook(int bookId, string downloadId, QualityModel quality, DateTime date, HistoryEventType eventType) { Mocker.GetMock().Setup(s => s.MostRecentForBook(bookId)) .Returns(new History.History { DownloadId = downloadId, Quality = quality, Date = date, EventType = eventType }); @@ -105,7 +105,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests [Test] public void should_return_true_if_latest_history_item_is_not_grabbed() { - GivenMostRecentForAlbum(FIRST_ALBUM_ID, string.Empty, _notupgradableQuality, DateTime.UtcNow, HistoryEventType.DownloadFailed); + GivenMostRecentForBook(FIRST_ALBUM_ID, string.Empty, _notupgradableQuality, DateTime.UtcNow, HistoryEventType.DownloadFailed); _upgradeHistory.IsSatisfiedBy(_parseResultMulti, null).Accepted.Should().BeTrue(); } @@ -118,57 +118,57 @@ namespace NzbDrone.Core.Test.DecisionEngineTests [Test] public void should_return_true_if_latest_history_item_is_older_than_twelve_hours() { - GivenMostRecentForAlbum(FIRST_ALBUM_ID, string.Empty, _notupgradableQuality, DateTime.UtcNow.AddHours(-12).AddMilliseconds(-1), HistoryEventType.Grabbed); + GivenMostRecentForBook(FIRST_ALBUM_ID, string.Empty, _notupgradableQuality, DateTime.UtcNow.AddHours(-12).AddMilliseconds(-1), HistoryEventType.Grabbed); _upgradeHistory.IsSatisfiedBy(_parseResultMulti, null).Accepted.Should().BeTrue(); } [Test] - public void should_be_upgradable_if_only_album_is_upgradable() + public void should_be_upgradable_if_only_book_is_upgradable() { - GivenMostRecentForAlbum(FIRST_ALBUM_ID, string.Empty, _upgradableQuality, DateTime.UtcNow, HistoryEventType.Grabbed); + GivenMostRecentForBook(FIRST_ALBUM_ID, string.Empty, _upgradableQuality, DateTime.UtcNow, HistoryEventType.Grabbed); _upgradeHistory.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeTrue(); } [Test] - public void should_be_upgradable_if_both_albums_are_upgradable() + public void should_be_upgradable_if_both_books_are_upgradable() { - GivenMostRecentForAlbum(FIRST_ALBUM_ID, string.Empty, _upgradableQuality, DateTime.UtcNow, HistoryEventType.Grabbed); - GivenMostRecentForAlbum(SECOND_ALBUM_ID, string.Empty, _upgradableQuality, DateTime.UtcNow, HistoryEventType.Grabbed); + GivenMostRecentForBook(FIRST_ALBUM_ID, string.Empty, _upgradableQuality, DateTime.UtcNow, HistoryEventType.Grabbed); + GivenMostRecentForBook(SECOND_ALBUM_ID, string.Empty, _upgradableQuality, DateTime.UtcNow, HistoryEventType.Grabbed); _upgradeHistory.IsSatisfiedBy(_parseResultMulti, null).Accepted.Should().BeTrue(); } [Test] - public void should_not_be_upgradable_if_both_albums_are_not_upgradable() + public void should_not_be_upgradable_if_both_books_are_not_upgradable() { - GivenMostRecentForAlbum(FIRST_ALBUM_ID, string.Empty, _notupgradableQuality, DateTime.UtcNow, HistoryEventType.Grabbed); - GivenMostRecentForAlbum(SECOND_ALBUM_ID, string.Empty, _notupgradableQuality, DateTime.UtcNow, HistoryEventType.Grabbed); + GivenMostRecentForBook(FIRST_ALBUM_ID, string.Empty, _notupgradableQuality, DateTime.UtcNow, HistoryEventType.Grabbed); + GivenMostRecentForBook(SECOND_ALBUM_ID, string.Empty, _notupgradableQuality, DateTime.UtcNow, HistoryEventType.Grabbed); _upgradeHistory.IsSatisfiedBy(_parseResultMulti, null).Accepted.Should().BeFalse(); } [Test] - public void should_be_not_upgradable_if_only_first_albums_is_upgradable() + public void should_be_not_upgradable_if_only_first_books_is_upgradable() { - GivenMostRecentForAlbum(FIRST_ALBUM_ID, string.Empty, _upgradableQuality, DateTime.UtcNow, HistoryEventType.Grabbed); - GivenMostRecentForAlbum(FIRST_ALBUM_ID, string.Empty, _notupgradableQuality, DateTime.UtcNow, HistoryEventType.Grabbed); + GivenMostRecentForBook(FIRST_ALBUM_ID, string.Empty, _upgradableQuality, DateTime.UtcNow, HistoryEventType.Grabbed); + GivenMostRecentForBook(FIRST_ALBUM_ID, string.Empty, _notupgradableQuality, DateTime.UtcNow, HistoryEventType.Grabbed); _upgradeHistory.IsSatisfiedBy(_parseResultMulti, null).Accepted.Should().BeFalse(); } [Test] - public void should_be_not_upgradable_if_only_second_albums_is_upgradable() + public void should_be_not_upgradable_if_only_second_books_is_upgradable() { - GivenMostRecentForAlbum(FIRST_ALBUM_ID, string.Empty, _notupgradableQuality, DateTime.UtcNow, HistoryEventType.Grabbed); - GivenMostRecentForAlbum(SECOND_ALBUM_ID, string.Empty, _upgradableQuality, DateTime.UtcNow, HistoryEventType.Grabbed); + GivenMostRecentForBook(FIRST_ALBUM_ID, string.Empty, _notupgradableQuality, DateTime.UtcNow, HistoryEventType.Grabbed); + GivenMostRecentForBook(SECOND_ALBUM_ID, string.Empty, _upgradableQuality, DateTime.UtcNow, HistoryEventType.Grabbed); _upgradeHistory.IsSatisfiedBy(_parseResultMulti, null).Accepted.Should().BeFalse(); } [Test] - public void should_not_be_upgradable_if_album_is_of_same_quality_as_existing() + public void should_not_be_upgradable_if_book_is_of_same_quality_as_existing() { - _fakeArtist.QualityProfile = new QualityProfile { Cutoff = Quality.MP3_320.Id, Items = Qualities.QualityFixture.GetDefaultQualities() }; + _fakeAuthor.QualityProfile = new QualityProfile { Cutoff = Quality.MP3_320.Id, Items = Qualities.QualityFixture.GetDefaultQualities() }; _parseResultSingle.ParsedBookInfo.Quality = new QualityModel(Quality.MP3_320, new Revision(version: 1)); _upgradableQuality = new QualityModel(Quality.MP3_320, new Revision(version: 1)); - GivenMostRecentForAlbum(FIRST_ALBUM_ID, string.Empty, _upgradableQuality, DateTime.UtcNow, HistoryEventType.Grabbed); + GivenMostRecentForBook(FIRST_ALBUM_ID, string.Empty, _upgradableQuality, DateTime.UtcNow, HistoryEventType.Grabbed); _upgradeHistory.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeFalse(); } @@ -176,11 +176,11 @@ namespace NzbDrone.Core.Test.DecisionEngineTests [Test] public void should_not_be_upgradable_if_cutoff_already_met() { - _fakeArtist.QualityProfile = new QualityProfile { Cutoff = Quality.MP3_320.Id, Items = Qualities.QualityFixture.GetDefaultQualities() }; + _fakeAuthor.QualityProfile = new QualityProfile { Cutoff = Quality.MP3_320.Id, Items = Qualities.QualityFixture.GetDefaultQualities() }; _parseResultSingle.ParsedBookInfo.Quality = new QualityModel(Quality.MP3_320, new Revision(version: 1)); _upgradableQuality = new QualityModel(Quality.MP3_320, new Revision(version: 1)); - GivenMostRecentForAlbum(FIRST_ALBUM_ID, string.Empty, _upgradableQuality, DateTime.UtcNow, HistoryEventType.Grabbed); + GivenMostRecentForBook(FIRST_ALBUM_ID, string.Empty, _upgradableQuality, DateTime.UtcNow, HistoryEventType.Grabbed); _upgradeHistory.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeFalse(); } @@ -188,7 +188,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests [Test] public void should_return_false_if_latest_history_item_is_only_one_hour_old() { - GivenMostRecentForAlbum(FIRST_ALBUM_ID, string.Empty, _notupgradableQuality, DateTime.UtcNow.AddHours(-1), HistoryEventType.Grabbed); + GivenMostRecentForBook(FIRST_ALBUM_ID, string.Empty, _notupgradableQuality, DateTime.UtcNow.AddHours(-1), HistoryEventType.Grabbed); _upgradeHistory.IsSatisfiedBy(_parseResultMulti, null).Accepted.Should().BeFalse(); } @@ -196,7 +196,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests public void should_return_false_if_latest_history_has_a_download_id_and_cdh_is_disabled() { GivenCdhDisabled(); - GivenMostRecentForAlbum(FIRST_ALBUM_ID, "test", _upgradableQuality, DateTime.UtcNow.AddDays(-100), HistoryEventType.Grabbed); + GivenMostRecentForBook(FIRST_ALBUM_ID, "test", _upgradableQuality, DateTime.UtcNow.AddDays(-100), HistoryEventType.Grabbed); _upgradeHistory.IsSatisfiedBy(_parseResultMulti, null).Accepted.Should().BeTrue(); } @@ -204,20 +204,20 @@ namespace NzbDrone.Core.Test.DecisionEngineTests public void should_return_false_if_cutoff_already_met_and_cdh_is_disabled() { GivenCdhDisabled(); - _fakeArtist.QualityProfile = new QualityProfile { Cutoff = Quality.MP3_320.Id, Items = Qualities.QualityFixture.GetDefaultQualities() }; + _fakeAuthor.QualityProfile = new QualityProfile { Cutoff = Quality.MP3_320.Id, Items = Qualities.QualityFixture.GetDefaultQualities() }; _parseResultSingle.ParsedBookInfo.Quality = new QualityModel(Quality.MP3_320, new Revision(version: 1)); _upgradableQuality = new QualityModel(Quality.MP3_320, new Revision(version: 1)); - GivenMostRecentForAlbum(FIRST_ALBUM_ID, "test", _upgradableQuality, DateTime.UtcNow.AddDays(-100), HistoryEventType.Grabbed); + GivenMostRecentForBook(FIRST_ALBUM_ID, "test", _upgradableQuality, DateTime.UtcNow.AddDays(-100), HistoryEventType.Grabbed); _upgradeHistory.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeFalse(); } [Test] - public void should_return_false_if_only_album_is_not_upgradable_and_cdh_is_disabled() + public void should_return_false_if_only_book_is_not_upgradable_and_cdh_is_disabled() { GivenCdhDisabled(); - GivenMostRecentForAlbum(FIRST_ALBUM_ID, "test", _notupgradableQuality, DateTime.UtcNow.AddDays(-100), HistoryEventType.Grabbed); + GivenMostRecentForBook(FIRST_ALBUM_ID, "test", _notupgradableQuality, DateTime.UtcNow.AddDays(-100), HistoryEventType.Grabbed); _upgradeHistory.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeFalse(); } } diff --git a/src/NzbDrone.Core.Test/DecisionEngineTests/MonitoredAlbumSpecificationFixture.cs b/src/NzbDrone.Core.Test/DecisionEngineTests/MonitoredAlbumSpecificationFixture.cs index 9d75b505c..840cc086d 100644 --- a/src/NzbDrone.Core.Test/DecisionEngineTests/MonitoredAlbumSpecificationFixture.cs +++ b/src/NzbDrone.Core.Test/DecisionEngineTests/MonitoredAlbumSpecificationFixture.cs @@ -12,128 +12,128 @@ namespace NzbDrone.Core.Test.DecisionEngineTests { [TestFixture] - public class MonitoredAlbumSpecificationFixture : CoreTest + public class MonitoredBookSpecificationFixture : CoreTest { - private MonitoredBookSpecification _monitoredAlbumSpecification; + private MonitoredBookSpecification _monitoredBookSpecification; private RemoteBook _parseResultMulti; private RemoteBook _parseResultSingle; - private Author _fakeArtist; - private Book _firstAlbum; - private Book _secondAlbum; + private Author _fakeAuthor; + private Book _firstBook; + private Book _secondBook; [SetUp] public void Setup() { - _monitoredAlbumSpecification = Mocker.Resolve(); + _monitoredBookSpecification = Mocker.Resolve(); - _fakeArtist = Builder.CreateNew() + _fakeAuthor = Builder.CreateNew() .With(c => c.Monitored = true) .Build(); - _firstAlbum = new Book { Monitored = true }; - _secondAlbum = new Book { Monitored = true }; + _firstBook = new Book { Monitored = true }; + _secondBook = new Book { Monitored = true }; - var singleAlbumList = new List { _firstAlbum }; - var doubleAlbumList = new List { _firstAlbum, _secondAlbum }; + var singleBookList = new List { _firstBook }; + var doubleBookList = new List { _firstBook, _secondBook }; _parseResultMulti = new RemoteBook { - Author = _fakeArtist, - Books = doubleAlbumList + Author = _fakeAuthor, + Books = doubleBookList }; _parseResultSingle = new RemoteBook { - Author = _fakeArtist, - Books = singleAlbumList + Author = _fakeAuthor, + Books = singleBookList }; } - private void WithFirstAlbumUnmonitored() + private void WithFirstBookUnmonitored() { - _firstAlbum.Monitored = false; + _firstBook.Monitored = false; } - private void WithSecondAlbumUnmonitored() + private void WithSecondBookUnmonitored() { - _secondAlbum.Monitored = false; + _secondBook.Monitored = false; } [Test] - public void setup_should_return_monitored_album_should_return_true() + public void setup_should_return_monitored_book_should_return_true() { - _monitoredAlbumSpecification.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeTrue(); - _monitoredAlbumSpecification.IsSatisfiedBy(_parseResultMulti, null).Accepted.Should().BeTrue(); + _monitoredBookSpecification.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeTrue(); + _monitoredBookSpecification.IsSatisfiedBy(_parseResultMulti, null).Accepted.Should().BeTrue(); } [Test] - public void not_monitored_artist_should_be_skipped() + public void not_monitored_author_should_be_skipped() { - _fakeArtist.Monitored = false; - _monitoredAlbumSpecification.IsSatisfiedBy(_parseResultMulti, null).Accepted.Should().BeFalse(); + _fakeAuthor.Monitored = false; + _monitoredBookSpecification.IsSatisfiedBy(_parseResultMulti, null).Accepted.Should().BeFalse(); } [Test] - public void only_album_not_monitored_should_return_false() + public void only_book_not_monitored_should_return_false() { - WithFirstAlbumUnmonitored(); - _monitoredAlbumSpecification.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeFalse(); + WithFirstBookUnmonitored(); + _monitoredBookSpecification.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeFalse(); } [Test] - public void both_albums_not_monitored_should_return_false() + public void both_books_not_monitored_should_return_false() { - WithFirstAlbumUnmonitored(); - WithSecondAlbumUnmonitored(); - _monitoredAlbumSpecification.IsSatisfiedBy(_parseResultMulti, null).Accepted.Should().BeFalse(); + WithFirstBookUnmonitored(); + WithSecondBookUnmonitored(); + _monitoredBookSpecification.IsSatisfiedBy(_parseResultMulti, null).Accepted.Should().BeFalse(); } [Test] - public void only_first_album_not_monitored_should_return_false() + public void only_first_book_not_monitored_should_return_false() { - WithFirstAlbumUnmonitored(); - _monitoredAlbumSpecification.IsSatisfiedBy(_parseResultMulti, null).Accepted.Should().BeFalse(); + WithFirstBookUnmonitored(); + _monitoredBookSpecification.IsSatisfiedBy(_parseResultMulti, null).Accepted.Should().BeFalse(); } [Test] - public void only_second_album_not_monitored_should_return_false() + public void only_second_book_not_monitored_should_return_false() { - WithSecondAlbumUnmonitored(); - _monitoredAlbumSpecification.IsSatisfiedBy(_parseResultMulti, null).Accepted.Should().BeFalse(); + WithSecondBookUnmonitored(); + _monitoredBookSpecification.IsSatisfiedBy(_parseResultMulti, null).Accepted.Should().BeFalse(); } [Test] - public void should_return_true_for_single_album_search() + public void should_return_true_for_single_book_search() { - _fakeArtist.Monitored = false; - _monitoredAlbumSpecification.IsSatisfiedBy(_parseResultSingle, new BookSearchCriteria()).Accepted.Should().BeTrue(); + _fakeAuthor.Monitored = false; + _monitoredBookSpecification.IsSatisfiedBy(_parseResultSingle, new BookSearchCriteria()).Accepted.Should().BeTrue(); } [Test] - public void should_return_true_if_album_is_not_monitored_and_monitoredEpisodesOnly_flag_is_false() + public void should_return_true_if_book_is_not_monitored_and_monitoredEpisodesOnly_flag_is_false() { - WithFirstAlbumUnmonitored(); - _monitoredAlbumSpecification.IsSatisfiedBy(_parseResultSingle, new BookSearchCriteria { MonitoredBooksOnly = false }).Accepted.Should().BeTrue(); + WithFirstBookUnmonitored(); + _monitoredBookSpecification.IsSatisfiedBy(_parseResultSingle, new BookSearchCriteria { MonitoredBooksOnly = false }).Accepted.Should().BeTrue(); } [Test] - public void should_return_false_if_album_is_not_monitored_and_monitoredEpisodesOnly_flag_is_true() + public void should_return_false_if_book_is_not_monitored_and_monitoredEpisodesOnly_flag_is_true() { - WithFirstAlbumUnmonitored(); - _monitoredAlbumSpecification.IsSatisfiedBy(_parseResultSingle, new BookSearchCriteria { MonitoredBooksOnly = true }).Accepted.Should().BeFalse(); + WithFirstBookUnmonitored(); + _monitoredBookSpecification.IsSatisfiedBy(_parseResultSingle, new BookSearchCriteria { MonitoredBooksOnly = true }).Accepted.Should().BeFalse(); } [Test] - public void should_return_false_if_all_albums_are_not_monitored_for_discography_pack_release() + public void should_return_false_if_all_books_are_not_monitored_for_discography_pack_release() { - WithSecondAlbumUnmonitored(); + WithSecondBookUnmonitored(); _parseResultMulti.ParsedBookInfo = new ParsedBookInfo() { Discography = true }; - _monitoredAlbumSpecification.IsSatisfiedBy(_parseResultMulti, null).Accepted.Should().BeFalse(); + _monitoredBookSpecification.IsSatisfiedBy(_parseResultMulti, null).Accepted.Should().BeFalse(); } } } diff --git a/src/NzbDrone.Core.Test/DecisionEngineTests/PrioritizeDownloadDecisionFixture.cs b/src/NzbDrone.Core.Test/DecisionEngineTests/PrioritizeDownloadDecisionFixture.cs index 37b546bad..2f5e1fb14 100644 --- a/src/NzbDrone.Core.Test/DecisionEngineTests/PrioritizeDownloadDecisionFixture.cs +++ b/src/NzbDrone.Core.Test/DecisionEngineTests/PrioritizeDownloadDecisionFixture.cs @@ -27,21 +27,21 @@ namespace NzbDrone.Core.Test.DecisionEngineTests GivenPreferredDownloadProtocol(DownloadProtocol.Usenet); } - private Book GivenAlbum(int id) + private Book GivenBook(int id) { return Builder.CreateNew() .With(e => e.Id = id) .Build(); } - private RemoteBook GivenRemoteAlbum(List albums, QualityModel quality, int age = 0, long size = 0, DownloadProtocol downloadProtocol = DownloadProtocol.Usenet, int indexerPriority = 25) + private RemoteBook GivenRemoteBook(List books, QualityModel quality, int age = 0, long size = 0, DownloadProtocol downloadProtocol = DownloadProtocol.Usenet, int indexerPriority = 25) { var remoteBook = new RemoteBook(); remoteBook.ParsedBookInfo = new ParsedBookInfo(); remoteBook.ParsedBookInfo.Quality = quality; remoteBook.Books = new List(); - remoteBook.Books.AddRange(albums); + remoteBook.Books.AddRange(books); remoteBook.Release = new ReleaseInfo(); remoteBook.Release.PublishDate = DateTime.Now.AddDays(-age); @@ -73,22 +73,22 @@ namespace NzbDrone.Core.Test.DecisionEngineTests [Test] public void should_put_reals_before_non_reals() { - var remoteAlbum1 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.MP3_256, new Revision(version: 1, real: 0))); - var remoteAlbum2 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.MP3_256, new Revision(version: 1, real: 1))); + var remoteBook1 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.MP3_320, new Revision(version: 1, real: 0))); + var remoteBook2 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.MP3_320, new Revision(version: 1, real: 1))); var decisions = new List(); - decisions.Add(new DownloadDecision(remoteAlbum1)); - decisions.Add(new DownloadDecision(remoteAlbum2)); + decisions.Add(new DownloadDecision(remoteBook1)); + decisions.Add(new DownloadDecision(remoteBook2)); var qualifiedReports = Subject.PrioritizeDecisions(decisions); - qualifiedReports.First().RemoteAlbum.ParsedAlbumInfo.Quality.Revision.Real.Should().Be(1); + qualifiedReports.First().RemoteBook.ParsedBookInfo.Quality.Revision.Real.Should().Be(1); } [Test] public void should_put_propers_before_non_propers() { - var remoteBook1 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.MP3_320, new Revision(version: 1))); - var remoteBook2 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.MP3_320, new Revision(version: 2))); + var remoteBook1 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.MP3_320, new Revision(version: 1))); + var remoteBook2 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.MP3_320, new Revision(version: 2))); var decisions = new List(); decisions.Add(new DownloadDecision(remoteBook1)); @@ -101,8 +101,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests [Test] public void should_put_higher_quality_before_lower() { - var remoteBook1 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.MP3_320)); - var remoteBook2 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.MP3_320)); + var remoteBook1 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.MP3_320)); + var remoteBook2 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.MP3_320)); var decisions = new List(); decisions.Add(new DownloadDecision(remoteBook1)); @@ -115,10 +115,10 @@ namespace NzbDrone.Core.Test.DecisionEngineTests [Test] public void should_order_by_age_then_largest_rounded_to_200mb() { - var remoteBookSd = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.MP3_320), size: 100.Megabytes(), age: 1); - var remoteBookHdSmallOld = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.MP3_320), size: 1200.Megabytes(), age: 1000); - var remoteBookSmallYoung = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.MP3_320), size: 1250.Megabytes(), age: 10); - var remoteBookHdLargeYoung = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.MP3_320), size: 3000.Megabytes(), age: 1); + var remoteBookSd = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.MP3_320), size: 100.Megabytes(), age: 1); + var remoteBookHdSmallOld = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.MP3_320), size: 1200.Megabytes(), age: 1000); + var remoteBookSmallYoung = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.MP3_320), size: 1250.Megabytes(), age: 10); + var remoteBookHdLargeYoung = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.MP3_320), size: 3000.Megabytes(), age: 1); var decisions = new List(); decisions.Add(new DownloadDecision(remoteBookSd)); @@ -133,8 +133,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests [Test] public void should_order_by_youngest() { - var remoteBook1 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.MP3_320), age: 10); - var remoteBook2 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.MP3_320), age: 5); + var remoteBook1 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.MP3_320), age: 10); + var remoteBook2 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.MP3_320), age: 5); var decisions = new List(); decisions.Add(new DownloadDecision(remoteBook1)); @@ -145,10 +145,10 @@ namespace NzbDrone.Core.Test.DecisionEngineTests } [Test] - public void should_not_throw_if_no_albums_are_found() + public void should_not_throw_if_no_books_are_found() { - var remoteBook1 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.MP3_320), size: 500.Megabytes()); - var remoteBook2 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.MP3_320), size: 500.Megabytes()); + var remoteBook1 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.MP3_320), size: 500.Megabytes()); + var remoteBook2 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.MP3_320), size: 500.Megabytes()); remoteBook1.Books = new List(); @@ -164,8 +164,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests { GivenPreferredDownloadProtocol(DownloadProtocol.Usenet); - var remoteBook1 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.MP3_320), downloadProtocol: DownloadProtocol.Torrent); - var remoteBook2 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.MP3_320), downloadProtocol: DownloadProtocol.Usenet); + var remoteBook1 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.MP3_320), downloadProtocol: DownloadProtocol.Torrent); + var remoteBook2 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.MP3_320), downloadProtocol: DownloadProtocol.Usenet); var decisions = new List(); decisions.Add(new DownloadDecision(remoteBook1)); @@ -180,8 +180,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests { GivenPreferredDownloadProtocol(DownloadProtocol.Torrent); - var remoteBook1 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.MP3_320), downloadProtocol: DownloadProtocol.Torrent); - var remoteBook2 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.MP3_320), downloadProtocol: DownloadProtocol.Usenet); + var remoteBook1 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.MP3_320), downloadProtocol: DownloadProtocol.Torrent); + var remoteBook2 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.MP3_320), downloadProtocol: DownloadProtocol.Usenet); var decisions = new List(); decisions.Add(new DownloadDecision(remoteBook1)); @@ -192,10 +192,10 @@ namespace NzbDrone.Core.Test.DecisionEngineTests } [Test] - public void should_prefer_discography_pack_above_single_album() + public void should_prefer_discography_pack_above_single_book() { - var remoteBook1 = GivenRemoteAlbum(new List { GivenAlbum(1), GivenAlbum(2) }, new QualityModel(Quality.FLAC)); - var remoteBook2 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.FLAC)); + var remoteBook1 = GivenRemoteBook(new List { GivenBook(1), GivenBook(2) }, new QualityModel(Quality.FLAC)); + var remoteBook2 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.FLAC)); remoteBook1.ParsedBookInfo.Discography = true; @@ -210,8 +210,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests [Test] public void should_prefer_quality_over_discography_pack() { - var remoteBook1 = GivenRemoteAlbum(new List { GivenAlbum(1), GivenAlbum(2) }, new QualityModel(Quality.MP3_320)); - var remoteBook2 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.FLAC)); + var remoteBook1 = GivenRemoteBook(new List { GivenBook(1), GivenBook(2) }, new QualityModel(Quality.MP3_320)); + var remoteBook2 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.FLAC)); remoteBook1.ParsedBookInfo.Discography = true; @@ -224,10 +224,10 @@ namespace NzbDrone.Core.Test.DecisionEngineTests } [Test] - public void should_prefer_single_album_over_multi_album() + public void should_prefer_single_book_over_multi_book() { - var remoteBook1 = GivenRemoteAlbum(new List { GivenAlbum(1), GivenAlbum(2) }, new QualityModel(Quality.MP3_320)); - var remoteBook2 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.MP3_320)); + var remoteBook1 = GivenRemoteBook(new List { GivenBook(1), GivenBook(2) }, new QualityModel(Quality.MP3_320)); + var remoteBook2 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.MP3_320)); var decisions = new List(); decisions.Add(new DownloadDecision(remoteBook1)); @@ -240,8 +240,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests [Test] public void should_prefer_releases_with_more_seeders() { - var remoteBook1 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.MP3_320)); - var remoteBook2 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.MP3_320)); + var remoteBook1 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.MP3_320)); + var remoteBook2 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.MP3_320)); var torrentInfo1 = new TorrentInfo(); torrentInfo1.PublishDate = DateTime.Now; @@ -266,8 +266,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests [Test] public void should_prefer_releases_with_more_peers_given_equal_number_of_seeds() { - var remoteBook1 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.MP3_320)); - var remoteBook2 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.MP3_320)); + var remoteBook1 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.MP3_320)); + var remoteBook2 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.MP3_320)); var torrentInfo1 = new TorrentInfo(); torrentInfo1.PublishDate = DateTime.Now; @@ -293,8 +293,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests [Test] public void should_prefer_releases_with_more_peers_no_seeds() { - var remoteBook1 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.MP3_320)); - var remoteBook2 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.MP3_320)); + var remoteBook1 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.MP3_320)); + var remoteBook2 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.MP3_320)); var torrentInfo1 = new TorrentInfo(); torrentInfo1.PublishDate = DateTime.Now; @@ -321,8 +321,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests [Test] public void should_prefer_first_release_if_peers_and_size_are_too_similar() { - var remoteBook1 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.MP3_320)); - var remoteBook2 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.MP3_320)); + var remoteBook1 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.MP3_320)); + var remoteBook2 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.MP3_320)); var torrentInfo1 = new TorrentInfo(); torrentInfo1.PublishDate = DateTime.Now; @@ -350,8 +350,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests [Test] public void should_prefer_first_release_if_age_and_size_are_too_similar() { - var remoteBook1 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.MP3_320)); - var remoteBook2 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.MP3_320)); + var remoteBook1 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.MP3_320)); + var remoteBook2 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.MP3_320)); remoteBook1.Release.PublishDate = DateTime.UtcNow.AddDays(-100); remoteBook1.Release.Size = 200.Megabytes(); @@ -370,8 +370,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests [Test] public void should_prefer_quality_over_the_number_of_peers() { - var remoteBook1 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.MP3_320)); - var remoteBook2 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.AZW3)); + var remoteBook1 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.MP3_320)); + var remoteBook2 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.AZW3)); var torrentInfo1 = new TorrentInfo(); torrentInfo1.PublishDate = DateTime.Now; @@ -399,8 +399,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests [Test] public void should_put_higher_quality_before_lower_always() { - var remoteBook1 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.MP3_320)); - var remoteBook2 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.MP3_320)); + var remoteBook1 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.MP3_320)); + var remoteBook2 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.MP3_320)); var decisions = new List(); decisions.Add(new DownloadDecision(remoteBook1)); @@ -413,8 +413,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests [Test] public void should_prefer_higher_score_over_lower_score() { - var remoteBook1 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.FLAC)); - var remoteBook2 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.FLAC)); + var remoteBook1 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.FLAC)); + var remoteBook2 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.FLAC)); remoteBook1.PreferredWordScore = 10; remoteBook2.PreferredWordScore = 0; @@ -434,8 +434,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests .Setup(s => s.DownloadPropersAndRepacks) .Returns(ProperDownloadTypes.PreferAndUpgrade); - var remoteBook1 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.FLAC, new Revision(1))); - var remoteBook2 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.FLAC, new Revision(2))); + var remoteBook1 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.FLAC, new Revision(1))); + var remoteBook2 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.FLAC, new Revision(2))); remoteBook1.PreferredWordScore = 10; remoteBook2.PreferredWordScore = 0; @@ -455,8 +455,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests .Setup(s => s.DownloadPropersAndRepacks) .Returns(ProperDownloadTypes.DoNotUpgrade); - var remoteBook1 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.FLAC, new Revision(1))); - var remoteBook2 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.FLAC, new Revision(2))); + var remoteBook1 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.FLAC, new Revision(1))); + var remoteBook2 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.FLAC, new Revision(2))); remoteBook1.PreferredWordScore = 10; remoteBook2.PreferredWordScore = 0; @@ -476,8 +476,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests .Setup(s => s.DownloadPropersAndRepacks) .Returns(ProperDownloadTypes.DoNotPrefer); - var remoteBook1 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.FLAC, new Revision(1))); - var remoteBook2 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.FLAC, new Revision(2))); + var remoteBook1 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.FLAC, new Revision(1))); + var remoteBook2 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.FLAC, new Revision(2))); remoteBook1.PreferredWordScore = 10; remoteBook2.PreferredWordScore = 0; @@ -495,35 +495,35 @@ namespace NzbDrone.Core.Test.DecisionEngineTests [Test] public void sort_download_decisions_based_on_indexer_priority() { - var remoteAlbum1 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.AZW3, new Revision(1)), indexerPriority: 25); - var remoteAlbum2 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.AZW3, new Revision(1)), indexerPriority: 50); - var remoteAlbum3 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.AZW3, new Revision(1)), indexerPriority: 1); + var remoteBook1 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.AZW3, new Revision(1)), indexerPriority: 25); + var remoteBook2 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.AZW3, new Revision(1)), indexerPriority: 50); + var remoteBook3 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.AZW3, new Revision(1)), indexerPriority: 1); var decisions = new List(); - decisions.AddRange(new[] { new DownloadDecision(remoteAlbum1), new DownloadDecision(remoteAlbum2), new DownloadDecision(remoteAlbum3) }); + decisions.AddRange(new[] { new DownloadDecision(remoteBook1), new DownloadDecision(remoteBook2), new DownloadDecision(remoteBook3) }); var qualifiedReports = Subject.PrioritizeDecisions(decisions); - qualifiedReports.First().RemoteBook.Should().Be(remoteAlbum3); - qualifiedReports.Skip(1).First().RemoteBook.Should().Be(remoteAlbum1); - qualifiedReports.Last().RemoteBook.Should().Be(remoteAlbum2); + qualifiedReports.First().RemoteBook.Should().Be(remoteBook3); + qualifiedReports.Skip(1).First().RemoteBook.Should().Be(remoteBook1); + qualifiedReports.Last().RemoteBook.Should().Be(remoteBook2); } [Test] public void ensure_download_decisions_indexer_priority_is_not_perfered_over_quality() { - var remoteAlbum1 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.EPUB, new Revision(1)), indexerPriority: 25); - var remoteAlbum2 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.AZW3, new Revision(1)), indexerPriority: 50); - var remoteAlbum3 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.PDF, new Revision(1)), indexerPriority: 1); - var remoteAlbum4 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.AZW3, new Revision(1)), indexerPriority: 25); + var remoteBook1 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.EPUB, new Revision(1)), indexerPriority: 25); + var remoteBook2 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.AZW3, new Revision(1)), indexerPriority: 50); + var remoteBook3 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.PDF, new Revision(1)), indexerPriority: 1); + var remoteBook4 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.AZW3, new Revision(1)), indexerPriority: 25); var decisions = new List(); - decisions.AddRange(new[] { new DownloadDecision(remoteAlbum1), new DownloadDecision(remoteAlbum2), new DownloadDecision(remoteAlbum3), new DownloadDecision(remoteAlbum4) }); + decisions.AddRange(new[] { new DownloadDecision(remoteBook1), new DownloadDecision(remoteBook2), new DownloadDecision(remoteBook3), new DownloadDecision(remoteBook4) }); var qualifiedReports = Subject.PrioritizeDecisions(decisions); - qualifiedReports.First().RemoteBook.Should().Be(remoteAlbum4); - qualifiedReports.Skip(1).First().RemoteBook.Should().Be(remoteAlbum2); - qualifiedReports.Skip(2).First().RemoteBook.Should().Be(remoteAlbum1); - qualifiedReports.Last().RemoteBook.Should().Be(remoteAlbum3); + qualifiedReports.First().RemoteBook.Should().Be(remoteBook4); + qualifiedReports.Skip(1).First().RemoteBook.Should().Be(remoteBook2); + qualifiedReports.Skip(2).First().RemoteBook.Should().Be(remoteBook1); + qualifiedReports.Last().RemoteBook.Should().Be(remoteBook3); } [Test] @@ -533,21 +533,22 @@ namespace NzbDrone.Core.Test.DecisionEngineTests .Setup(s => s.DownloadPropersAndRepacks) .Returns(ProperDownloadTypes.DoNotPrefer); - var remoteAlbum1 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.FLAC, new Revision(1, 0))); - var remoteAlbum2 = GivenRemoteAlbum(new List { GivenAlbum(1) }, new QualityModel(Quality.FLAC, new Revision(1, 1))); + var remoteBook1 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.FLAC, new Revision(1, 0))); + var remoteBook2 = GivenRemoteBook(new List { GivenBook(1) }, new QualityModel(Quality.FLAC, new Revision(1, 1))); - remoteAlbum1.PreferredWordScore = 10; - remoteAlbum2.PreferredWordScore = 0; + remoteBook1.PreferredWordScore = 10; + remoteBook2.PreferredWordScore = 0; var decisions = new List(); - decisions.Add(new DownloadDecision(remoteAlbum1)); - decisions.Add(new DownloadDecision(remoteAlbum2)); + decisions.Add(new DownloadDecision(remoteBook1)); + decisions.Add(new DownloadDecision(remoteBook2)); var qualifiedReports = Subject.PrioritizeDecisions(decisions); - qualifiedReports.First().RemoteAlbum.ParsedAlbumInfo.Quality.Quality.Should().Be(Quality.FLAC); - qualifiedReports.First().RemoteAlbum.ParsedAlbumInfo.Quality.Revision.Version.Should().Be(1); - qualifiedReports.First().RemoteAlbum.ParsedAlbumInfo.Quality.Revision.Real.Should().Be(0); - qualifiedReports.First().RemoteAlbum.PreferredWordScore.Should().Be(10); + + qualifiedReports.First().RemoteBook.ParsedBookInfo.Quality.Quality.Should().Be(Quality.FLAC); + qualifiedReports.First().RemoteBook.ParsedBookInfo.Quality.Revision.Version.Should().Be(1); + qualifiedReports.First().RemoteBook.ParsedBookInfo.Quality.Revision.Real.Should().Be(0); + qualifiedReports.First().RemoteBook.PreferredWordScore.Should().Be(10); } } } diff --git a/src/NzbDrone.Core.Test/DecisionEngineTests/QualityAllowedByProfileSpecificationFixture.cs b/src/NzbDrone.Core.Test/DecisionEngineTests/QualityAllowedByProfileSpecificationFixture.cs index 685afd196..7d0093243 100644 --- a/src/NzbDrone.Core.Test/DecisionEngineTests/QualityAllowedByProfileSpecificationFixture.cs +++ b/src/NzbDrone.Core.Test/DecisionEngineTests/QualityAllowedByProfileSpecificationFixture.cs @@ -32,13 +32,13 @@ namespace NzbDrone.Core.Test.DecisionEngineTests [SetUp] public void Setup() { - var fakeArtist = Builder.CreateNew() + var fakeAuthor = Builder.CreateNew() .With(c => c.QualityProfile = new QualityProfile { Cutoff = Quality.MP3_320.Id }) .Build(); _remoteBook = new RemoteBook { - Author = fakeArtist, + Author = fakeAuthor, ParsedBookInfo = new ParsedBookInfo { Quality = new QualityModel(Quality.MP3_320, new Revision(version: 2)) }, }; } diff --git a/src/NzbDrone.Core.Test/DecisionEngineTests/QueueSpecificationFixture.cs b/src/NzbDrone.Core.Test/DecisionEngineTests/QueueSpecificationFixture.cs index 214b90778..eb65e35f7 100644 --- a/src/NzbDrone.Core.Test/DecisionEngineTests/QueueSpecificationFixture.cs +++ b/src/NzbDrone.Core.Test/DecisionEngineTests/QueueSpecificationFixture.cs @@ -17,12 +17,12 @@ namespace NzbDrone.Core.Test.DecisionEngineTests [TestFixture] public class QueueSpecificationFixture : CoreTest { - private Author _artist; - private Book _album; + private Author _author; + private Book _book; private RemoteBook _remoteBook; - private Author _otherArtist; - private Book _otherAlbum; + private Author _otherAuthor; + private Book _otherBook; private ReleaseInfo _releaseInfo; @@ -31,7 +31,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests { Mocker.Resolve(); - _artist = Builder.CreateNew() + _author = Builder.CreateNew() .With(e => e.QualityProfile = new QualityProfile { UpgradeAllowed = true, @@ -39,16 +39,16 @@ namespace NzbDrone.Core.Test.DecisionEngineTests }) .Build(); - _album = Builder.CreateNew() - .With(e => e.AuthorId = _artist.Id) + _book = Builder.CreateNew() + .With(e => e.AuthorId = _author.Id) .Build(); - _otherArtist = Builder.CreateNew() + _otherAuthor = Builder.CreateNew() .With(s => s.Id = 2) .Build(); - _otherAlbum = Builder.CreateNew() - .With(e => e.AuthorId = _otherArtist.Id) + _otherBook = Builder.CreateNew() + .With(e => e.AuthorId = _otherAuthor.Id) .With(e => e.Id = 2) .Build(); @@ -56,8 +56,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests .Build(); _remoteBook = Builder.CreateNew() - .With(r => r.Author = _artist) - .With(r => r.Books = new List { _album }) + .With(r => r.Author = _author) + .With(r => r.Books = new List { _book }) .With(r => r.ParsedBookInfo = new ParsedBookInfo { Quality = new QualityModel(Quality.MP3_320) }) .With(r => r.PreferredWordScore = 0) .Build(); @@ -91,11 +91,11 @@ namespace NzbDrone.Core.Test.DecisionEngineTests } [Test] - public void should_return_true_when_artist_doesnt_match() + public void should_return_true_when_author_doesnt_match() { var remoteBook = Builder.CreateNew() - .With(r => r.Author = _otherArtist) - .With(r => r.Books = new List { _album }) + .With(r => r.Author = _otherAuthor) + .With(r => r.Books = new List { _book }) .With(r => r.Release = _releaseInfo) .Build(); @@ -106,11 +106,11 @@ namespace NzbDrone.Core.Test.DecisionEngineTests [Test] public void should_return_false_if_everything_is_the_same() { - _artist.QualityProfile.Value.Cutoff = Quality.FLAC.Id; + _author.QualityProfile.Value.Cutoff = Quality.FLAC.Id; var remoteBook = Builder.CreateNew() - .With(r => r.Author = _artist) - .With(r => r.Books = new List { _album }) + .With(r => r.Author = _author) + .With(r => r.Books = new List { _book }) .With(r => r.ParsedBookInfo = new ParsedBookInfo { Quality = new QualityModel(Quality.MP3_320) @@ -126,11 +126,11 @@ namespace NzbDrone.Core.Test.DecisionEngineTests [Test] public void should_return_true_when_quality_in_queue_is_lower() { - _artist.QualityProfile.Value.Cutoff = Quality.MP3_320.Id; + _author.QualityProfile.Value.Cutoff = Quality.MP3_320.Id; var remoteBook = Builder.CreateNew() - .With(r => r.Author = _artist) - .With(r => r.Books = new List { _album }) + .With(r => r.Author = _author) + .With(r => r.Books = new List { _book }) .With(r => r.ParsedBookInfo = new ParsedBookInfo { Quality = new QualityModel(Quality.AZW3) @@ -143,11 +143,11 @@ namespace NzbDrone.Core.Test.DecisionEngineTests } [Test] - public void should_return_true_when_album_doesnt_match() + public void should_return_true_when_book_doesnt_match() { var remoteBook = Builder.CreateNew() - .With(r => r.Author = _artist) - .With(r => r.Books = new List { _otherAlbum }) + .With(r => r.Author = _author) + .With(r => r.Books = new List { _otherBook }) .With(r => r.ParsedBookInfo = new ParsedBookInfo { Quality = new QualityModel(Quality.MP3_320) @@ -165,8 +165,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests _remoteBook.PreferredWordScore = 1; var remoteBook = Builder.CreateNew() - .With(r => r.Author = _artist) - .With(r => r.Books = new List { _album }) + .With(r => r.Author = _author) + .With(r => r.Books = new List { _book }) .With(r => r.ParsedBookInfo = new ParsedBookInfo { Quality = new QualityModel(Quality.MP3_320) @@ -182,8 +182,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests public void should_return_false_when_qualities_are_the_same() { var remoteBook = Builder.CreateNew() - .With(r => r.Author = _artist) - .With(r => r.Books = new List { _album }) + .With(r => r.Author = _author) + .With(r => r.Books = new List { _book }) .With(r => r.ParsedBookInfo = new ParsedBookInfo { Quality = new QualityModel(Quality.MP3_320) @@ -198,11 +198,11 @@ namespace NzbDrone.Core.Test.DecisionEngineTests [Test] public void should_return_false_when_quality_in_queue_is_better() { - _artist.QualityProfile.Value.Cutoff = Quality.FLAC.Id; + _author.QualityProfile.Value.Cutoff = Quality.FLAC.Id; var remoteBook = Builder.CreateNew() - .With(r => r.Author = _artist) - .With(r => r.Books = new List { _album }) + .With(r => r.Author = _author) + .With(r => r.Books = new List { _book }) .With(r => r.ParsedBookInfo = new ParsedBookInfo { Quality = new QualityModel(Quality.MP3_320) @@ -215,11 +215,11 @@ namespace NzbDrone.Core.Test.DecisionEngineTests } [Test] - public void should_return_false_if_matching_multi_album_is_in_queue() + public void should_return_false_if_matching_multi_book_is_in_queue() { var remoteBook = Builder.CreateNew() - .With(r => r.Author = _artist) - .With(r => r.Books = new List { _album, _otherAlbum }) + .With(r => r.Author = _author) + .With(r => r.Books = new List { _book, _otherBook }) .With(r => r.ParsedBookInfo = new ParsedBookInfo { Quality = new QualityModel(Quality.MP3_320) @@ -232,11 +232,11 @@ namespace NzbDrone.Core.Test.DecisionEngineTests } [Test] - public void should_return_false_if_multi_album_has_one_album_in_queue() + public void should_return_false_if_multi_book_has_one_book_in_queue() { var remoteBook = Builder.CreateNew() - .With(r => r.Author = _artist) - .With(r => r.Books = new List { _album }) + .With(r => r.Author = _author) + .With(r => r.Books = new List { _book }) .With(r => r.ParsedBookInfo = new ParsedBookInfo { Quality = new QualityModel(Quality.MP3_320) @@ -244,18 +244,18 @@ namespace NzbDrone.Core.Test.DecisionEngineTests .With(r => r.Release = _releaseInfo) .Build(); - _remoteBook.Books.Add(_otherAlbum); + _remoteBook.Books.Add(_otherBook); GivenQueue(new List { remoteBook }); Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeFalse(); } [Test] - public void should_return_false_if_multi_part_album_is_already_in_queue() + public void should_return_false_if_multi_part_book_is_already_in_queue() { var remoteBook = Builder.CreateNew() - .With(r => r.Author = _artist) - .With(r => r.Books = new List { _album, _otherAlbum }) + .With(r => r.Author = _author) + .With(r => r.Books = new List { _book, _otherBook }) .With(r => r.ParsedBookInfo = new ParsedBookInfo { Quality = new QualityModel(Quality.MP3_320) @@ -263,30 +263,30 @@ namespace NzbDrone.Core.Test.DecisionEngineTests .With(r => r.Release = _releaseInfo) .Build(); - _remoteBook.Books.Add(_otherAlbum); + _remoteBook.Books.Add(_otherBook); GivenQueue(new List { remoteBook }); Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeFalse(); } [Test] - public void should_return_false_if_multi_part_album_has_two_albums_in_queue() + public void should_return_false_if_multi_part_book_has_two_books_in_queue() { var remoteBooks = Builder.CreateListOfSize(2) .All() - .With(r => r.Author = _artist) + .With(r => r.Author = _author) .With(r => r.ParsedBookInfo = new ParsedBookInfo { Quality = new QualityModel(Quality.MP3_320) }) .With(r => r.Release = _releaseInfo) .TheFirst(1) - .With(r => r.Books = new List { _album }) + .With(r => r.Books = new List { _book }) .TheNext(1) - .With(r => r.Books = new List { _otherAlbum }) + .With(r => r.Books = new List { _otherBook }) .Build(); - _remoteBook.Books.Add(_otherAlbum); + _remoteBook.Books.Add(_otherBook); GivenQueue(remoteBooks); Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeFalse(); } @@ -294,12 +294,12 @@ namespace NzbDrone.Core.Test.DecisionEngineTests [Test] public void should_return_false_when_quality_is_better_and_upgrade_allowed_is_false_for_quality_profile() { - _artist.QualityProfile.Value.Cutoff = Quality.FLAC.Id; - _artist.QualityProfile.Value.UpgradeAllowed = false; + _author.QualityProfile.Value.Cutoff = Quality.FLAC.Id; + _author.QualityProfile.Value.UpgradeAllowed = false; var remoteBook = Builder.CreateNew() - .With(r => r.Author = _artist) - .With(r => r.Books = new List { _album }) + .With(r => r.Author = _author) + .With(r => r.Books = new List { _book }) .With(r => r.ParsedBookInfo = new ParsedBookInfo { Quality = new QualityModel(Quality.FLAC) @@ -314,11 +314,11 @@ namespace NzbDrone.Core.Test.DecisionEngineTests [Test] public void should_return_true_if_everything_is_the_same_for_failed_pending() { - _artist.QualityProfile.Value.Cutoff = Quality.FLAC.Id; + _author.QualityProfile.Value.Cutoff = Quality.FLAC.Id; var remoteBook = Builder.CreateNew() - .With(r => r.Author = _artist) - .With(r => r.Books = new List { _album }) + .With(r => r.Author = _author) + .With(r => r.Books = new List { _book }) .With(r => r.ParsedBookInfo = new ParsedBookInfo { Quality = new QualityModel(Quality.MP3_320) diff --git a/src/NzbDrone.Core.Test/DecisionEngineTests/RepackSpecificationFixture.cs b/src/NzbDrone.Core.Test/DecisionEngineTests/RepackSpecificationFixture.cs index d660ab54d..6463d8403 100644 --- a/src/NzbDrone.Core.Test/DecisionEngineTests/RepackSpecificationFixture.cs +++ b/src/NzbDrone.Core.Test/DecisionEngineTests/RepackSpecificationFixture.cs @@ -17,7 +17,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests public class RepackSpecificationFixture : CoreTest { private ParsedBookInfo _parsedBookInfo; - private List _albums; + private List _books; private List _trackFiles; [SetUp] @@ -31,13 +31,13 @@ namespace NzbDrone.Core.Test.DecisionEngineTests .With(p => p.ReleaseGroup = "Readarr") .Build(); - _albums = Builder.CreateListOfSize(1) + _books = Builder.CreateListOfSize(1) .All() .BuildList(); _trackFiles = Builder.CreateListOfSize(3) .All() - .With(t => t.EditionId = _albums.First().Id) + .With(t => t.EditionId = _books.First().Id) .BuildList(); Mocker.GetMock() @@ -50,7 +50,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests { var remoteBook = Builder.CreateNew() .With(e => e.ParsedBookInfo = _parsedBookInfo) - .With(e => e.Books = _albums) + .With(e => e.Books = _books) .Build(); Subject.IsSatisfiedBy(remoteBook, null) @@ -70,7 +70,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests var remoteBook = Builder.CreateNew() .With(e => e.ParsedBookInfo = _parsedBookInfo) - .With(e => e.Books = _albums) + .With(e => e.Books = _books) .Build(); Subject.IsSatisfiedBy(remoteBook, null) @@ -97,7 +97,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests var remoteBook = Builder.CreateNew() .With(e => e.ParsedBookInfo = _parsedBookInfo) - .With(e => e.Books = _albums) + .With(e => e.Books = _books) .Build(); Subject.IsSatisfiedBy(remoteBook, null) @@ -124,7 +124,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests var remoteBook = Builder.CreateNew() .With(e => e.ParsedBookInfo = _parsedBookInfo) - .With(e => e.Books = _albums) + .With(e => e.Books = _books) .Build(); Subject.IsSatisfiedBy(remoteBook, null) @@ -153,7 +153,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests var remoteBook = Builder.CreateNew() .With(e => e.ParsedBookInfo = _parsedBookInfo) - .With(e => e.Books = _albums) + .With(e => e.Books = _books) .Build(); Subject.IsSatisfiedBy(remoteBook, null) @@ -180,7 +180,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests var remoteBook = Builder.CreateNew() .With(e => e.ParsedBookInfo = _parsedBookInfo) - .With(e => e.Books = _albums) + .With(e => e.Books = _books) .Build(); Subject.IsSatisfiedBy(remoteBook, null) @@ -207,7 +207,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests var remoteBook = Builder.CreateNew() .With(e => e.ParsedBookInfo = _parsedBookInfo) - .With(e => e.Books = _albums) + .With(e => e.Books = _books) .Build(); Subject.IsSatisfiedBy(remoteBook, null) @@ -236,7 +236,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests var remoteBook = Builder.CreateNew() .With(e => e.ParsedBookInfo = _parsedBookInfo) - .With(e => e.Books = _albums) + .With(e => e.Books = _books) .Build(); Subject.IsSatisfiedBy(remoteBook, null) diff --git a/src/NzbDrone.Core.Test/DecisionEngineTests/RssSync/DelaySpecificationFixture.cs b/src/NzbDrone.Core.Test/DecisionEngineTests/RssSync/DelaySpecificationFixture.cs index c768906d2..0223e1d6c 100644 --- a/src/NzbDrone.Core.Test/DecisionEngineTests/RssSync/DelaySpecificationFixture.cs +++ b/src/NzbDrone.Core.Test/DecisionEngineTests/RssSync/DelaySpecificationFixture.cs @@ -37,12 +37,12 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync .With(d => d.PreferredProtocol = DownloadProtocol.Usenet) .Build(); - var artist = Builder.CreateNew() + var author = Builder.CreateNew() .With(s => s.QualityProfile = _profile) .Build(); _remoteBook = Builder.CreateNew() - .With(r => r.Author = artist) + .With(r => r.Author = author) .Build(); _profile.Items = new List(); @@ -87,7 +87,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync private void GivenUpgradeForExistingFile() { Mocker.GetMock() - .Setup(s => s.IsUpgradable(It.IsAny(), It.IsAny>(), It.IsAny(), It.IsAny(), It.IsAny())) + .Setup(s => s.IsUpgradable(It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny())) .Returns(true); } @@ -147,7 +147,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync } [Test] - public void should_be_true_when_release_is_a_proper_for_existing_album() + public void should_be_true_when_release_is_a_proper_for_existing_book() { _remoteBook.ParsedBookInfo.Quality = new QualityModel(Quality.MP3_320, new Revision(version: 2)); _remoteBook.Release.PublishDate = DateTime.UtcNow; @@ -165,7 +165,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync } [Test] - public void should_be_true_when_release_is_a_real_for_existing_album() + public void should_be_true_when_release_is_a_real_for_existing_book() { _remoteBook.ParsedBookInfo.Quality = new QualityModel(Quality.MP3_320, new Revision(real: 1)); _remoteBook.Release.PublishDate = DateTime.UtcNow; @@ -183,19 +183,12 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync } [Test] - public void should_be_false_when_release_is_proper_for_existing_album_of_different_quality() + public void should_be_false_when_release_is_proper_for_existing_book_of_different_quality() { -<<<<<<< HEAD _remoteBook.ParsedBookInfo.Quality = new QualityModel(Quality.AZW3, new Revision(version: 2)); _remoteBook.Release.PublishDate = DateTime.UtcNow; GivenExistingFile(new QualityModel(Quality.PDF)); -======= - _remoteAlbum.ParsedAlbumInfo.Quality = new QualityModel(Quality.MP3_320, new Revision(version: 2)); - _remoteAlbum.Release.PublishDate = DateTime.UtcNow; - - GivenExistingFile(new QualityModel(Quality.MP3_256)); ->>>>>>> Fixed: Delay profile being ignored for non-revision upgrades _delayProfile.UsenetDelay = 720; diff --git a/src/NzbDrone.Core.Test/DecisionEngineTests/RssSync/DeletedTrackFileSpecificationFixture.cs b/src/NzbDrone.Core.Test/DecisionEngineTests/RssSync/DeletedTrackFileSpecificationFixture.cs index 4914b4b6a..52c3c37a7 100644 --- a/src/NzbDrone.Core.Test/DecisionEngineTests/RssSync/DeletedTrackFileSpecificationFixture.cs +++ b/src/NzbDrone.Core.Test/DecisionEngineTests/RssSync/DeletedTrackFileSpecificationFixture.cs @@ -33,7 +33,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync new BookFile { Id = 1, - Path = "/My.Artist.S01E01.mp3", + Path = "/My.Author.S01E01.mp3", Quality = new QualityModel(Quality.FLAC, new Revision(version: 1)), DateAdded = DateTime.Now, EditionId = 1 @@ -42,36 +42,36 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync new BookFile { Id = 2, - Path = "/My.Artist.S01E02.mp3", + Path = "/My.Author.S01E02.mp3", Quality = new QualityModel(Quality.FLAC, new Revision(version: 1)), DateAdded = DateTime.Now, EditionId = 2 }; - var singleAlbumList = new List { new Book { Id = 1 } }; - var doubleAlbumList = new List + var singleBookList = new List { new Book { Id = 1 } }; + var doubleBookList = new List { new Book { Id = 1 }, new Book { Id = 2 } }; - var fakeArtist = Builder.CreateNew() + var fakeAuthor = Builder.CreateNew() .With(c => c.QualityProfile = new QualityProfile { Cutoff = Quality.FLAC.Id }) - .With(c => c.Path = @"C:\Music\My.Artist".AsOsAgnostic()) + .With(c => c.Path = @"C:\Music\My.Author".AsOsAgnostic()) .Build(); _parseResultMulti = new RemoteBook { - Author = fakeArtist, + Author = fakeAuthor, ParsedBookInfo = new ParsedBookInfo { Quality = new QualityModel(Quality.MP3_320, new Revision(version: 2)) }, - Books = doubleAlbumList + Books = doubleBookList }; _parseResultSingle = new RemoteBook { - Author = fakeArtist, + Author = fakeAuthor, ParsedBookInfo = new ParsedBookInfo { Quality = new QualityModel(Quality.MP3_320, new Revision(version: 2)) }, - Books = singleAlbumList + Books = singleBookList }; GivenUnmonitorDeletedTracks(true); diff --git a/src/NzbDrone.Core.Test/DecisionEngineTests/RssSync/ProperSpecificationFixture.cs b/src/NzbDrone.Core.Test/DecisionEngineTests/RssSync/ProperSpecificationFixture.cs index a49c8b754..64855a3b9 100644 --- a/src/NzbDrone.Core.Test/DecisionEngineTests/RssSync/ProperSpecificationFixture.cs +++ b/src/NzbDrone.Core.Test/DecisionEngineTests/RssSync/ProperSpecificationFixture.cs @@ -34,10 +34,10 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync _firstFile = new BookFile { Quality = new QualityModel(Quality.FLAC, new Revision(version: 1)), DateAdded = DateTime.Now }; _secondFile = new BookFile { Quality = new QualityModel(Quality.FLAC, new Revision(version: 1)), DateAdded = DateTime.Now }; - var singleAlbumList = new List { new Book { }, new Book { } }; - var doubleAlbumList = new List { new Book { }, new Book { }, new Book { } }; + var singleBookList = new List { new Book { }, new Book { } }; + var doubleBookList = new List { new Book { }, new Book { }, new Book { } }; - var fakeArtist = Builder.CreateNew() + var fakeAuthor = Builder.CreateNew() .With(c => c.QualityProfile = new QualityProfile { Cutoff = Quality.FLAC.Id }) .Build(); @@ -47,16 +47,16 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync _parseResultMulti = new RemoteBook { - Author = fakeArtist, + Author = fakeAuthor, ParsedBookInfo = new ParsedBookInfo { Quality = new QualityModel(Quality.MOBI, new Revision(version: 2)) }, - Books = doubleAlbumList + Books = doubleBookList }; _parseResultSingle = new RemoteBook { - Author = fakeArtist, + Author = fakeAuthor, ParsedBookInfo = new ParsedBookInfo { Quality = new QualityModel(Quality.MOBI, new Revision(version: 2)) }, - Books = singleAlbumList + Books = singleBookList }; } diff --git a/src/NzbDrone.Core.Test/DecisionEngineTests/Search/ArtistSpecificationFixture.cs b/src/NzbDrone.Core.Test/DecisionEngineTests/Search/ArtistSpecificationFixture.cs index 78fa1b687..4b9bb7786 100644 --- a/src/NzbDrone.Core.Test/DecisionEngineTests/Search/ArtistSpecificationFixture.cs +++ b/src/NzbDrone.Core.Test/DecisionEngineTests/Search/ArtistSpecificationFixture.cs @@ -10,34 +10,34 @@ using NzbDrone.Test.Common; namespace NzbDrone.Core.Test.DecisionEngineTests.Search { [TestFixture] - public class ArtistSpecificationFixture : TestBase + public class AuthorSpecificationFixture : TestBase { - private Author _artist1; - private Author _artist2; + private Author _author1; + private Author _author2; private RemoteBook _remoteBook = new RemoteBook(); private SearchCriteriaBase _searchCriteria = new BookSearchCriteria(); [SetUp] public void Setup() { - _artist1 = Builder.CreateNew().With(s => s.Id = 1).Build(); - _artist2 = Builder.CreateNew().With(s => s.Id = 2).Build(); + _author1 = Builder.CreateNew().With(s => s.Id = 1).Build(); + _author2 = Builder.CreateNew().With(s => s.Id = 2).Build(); - _remoteBook.Author = _artist1; + _remoteBook.Author = _author1; } [Test] - public void should_return_false_if_artist_doesnt_match() + public void should_return_false_if_author_doesnt_match() { - _searchCriteria.Author = _artist2; + _searchCriteria.Author = _author2; Subject.IsSatisfiedBy(_remoteBook, _searchCriteria).Accepted.Should().BeFalse(); } [Test] - public void should_return_true_when_artist_ids_match() + public void should_return_true_when_author_ids_match() { - _searchCriteria.Author = _artist1; + _searchCriteria.Author = _author1; Subject.IsSatisfiedBy(_remoteBook, _searchCriteria).Accepted.Should().BeTrue(); } diff --git a/src/NzbDrone.Core.Test/DecisionEngineTests/Search/TorrentSeedingSpecificationFixture.cs b/src/NzbDrone.Core.Test/DecisionEngineTests/Search/TorrentSeedingSpecificationFixture.cs index c40287572..ef2c30d8c 100644 --- a/src/NzbDrone.Core.Test/DecisionEngineTests/Search/TorrentSeedingSpecificationFixture.cs +++ b/src/NzbDrone.Core.Test/DecisionEngineTests/Search/TorrentSeedingSpecificationFixture.cs @@ -15,22 +15,22 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.Search [TestFixture] public class TorrentSeedingSpecificationFixture : TestBase { - private Author _artist; + private Author _author; private RemoteBook _remoteBook; private IndexerDefinition _indexerDefinition; [SetUp] public void Setup() { - _artist = Builder.CreateNew().With(s => s.Id = 1).Build(); + _author = Builder.CreateNew().With(s => s.Id = 1).Build(); _remoteBook = new RemoteBook { - Author = _artist, + Author = _author, Release = new TorrentInfo { IndexerId = 1, - Title = "Artist - Album [FLAC-RlsGrp]", + Title = "Author - Book [FLAC-RlsGrp]", Seeders = 0 } }; @@ -56,7 +56,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.Search _remoteBook.Release = new ReleaseInfo { IndexerId = 1, - Title = "Artist - Album [FLAC-RlsGrp]" + Title = "Author - Book [FLAC-RlsGrp]" }; Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue(); diff --git a/src/NzbDrone.Core.Test/DecisionEngineTests/UpgradeAllowedSpecificationFixture.cs b/src/NzbDrone.Core.Test/DecisionEngineTests/UpgradeAllowedSpecificationFixture.cs index 79cd3aac7..d8382074c 100644 --- a/src/NzbDrone.Core.Test/DecisionEngineTests/UpgradeAllowedSpecificationFixture.cs +++ b/src/NzbDrone.Core.Test/DecisionEngineTests/UpgradeAllowedSpecificationFixture.cs @@ -21,7 +21,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests Items = Qualities.QualityFixture.GetDefaultQualities(), UpgradeAllowed = false }, - new List { new QualityModel(Quality.MP3_320) }, + new QualityModel(Quality.MP3_320), new QualityModel(Quality.FLAC)) .Should().BeFalse(); } @@ -36,7 +36,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests Items = Qualities.QualityFixture.GetDefaultQualities(), UpgradeAllowed = true }, - new List { new QualityModel(Quality.MP3_320) }, + new QualityModel(Quality.MP3_320), new QualityModel(Quality.FLAC)) .Should().BeTrue(); } @@ -51,7 +51,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests Items = Qualities.QualityFixture.GetDefaultQualities(), UpgradeAllowed = true }, - new List { new QualityModel(Quality.MP3_320) }, + new QualityModel(Quality.MP3_320), new QualityModel(Quality.MP3_320)) .Should().BeTrue(); } @@ -66,7 +66,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests Items = Qualities.QualityFixture.GetDefaultQualities(), UpgradeAllowed = false }, - new List { new QualityModel(Quality.MP3_320) }, + new QualityModel(Quality.MP3_320), new QualityModel(Quality.MP3_320)) .Should().BeTrue(); } @@ -81,7 +81,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests Items = Qualities.QualityFixture.GetDefaultQualities(), UpgradeAllowed = true }, - new List { new QualityModel(Quality.MP3_320) }, + new QualityModel(Quality.MP3_320), new QualityModel(Quality.MP3_320)) .Should().BeTrue(); } @@ -96,7 +96,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests Items = Qualities.QualityFixture.GetDefaultQualities(), UpgradeAllowed = false }, - new List { new QualityModel(Quality.MP3_320) }, + new QualityModel(Quality.MP3_320), new QualityModel(Quality.MP3_320)) .Should().BeTrue(); } diff --git a/src/NzbDrone.Core.Test/DecisionEngineTests/UpgradeDiskSpecificationFixture.cs b/src/NzbDrone.Core.Test/DecisionEngineTests/UpgradeDiskSpecificationFixture.cs index fee5d855f..ecbbd0e6a 100644 --- a/src/NzbDrone.Core.Test/DecisionEngineTests/UpgradeDiskSpecificationFixture.cs +++ b/src/NzbDrone.Core.Test/DecisionEngineTests/UpgradeDiskSpecificationFixture.cs @@ -32,10 +32,10 @@ namespace NzbDrone.Core.Test.DecisionEngineTests _firstFile = new BookFile { Quality = new QualityModel(Quality.FLAC, new Revision(version: 2)), DateAdded = DateTime.Now }; _secondFile = new BookFile { Quality = new QualityModel(Quality.FLAC, new Revision(version: 2)), DateAdded = DateTime.Now }; - var singleAlbumList = new List { new Book { BookFiles = new List() } }; - var doubleAlbumList = new List { new Book { BookFiles = new List() }, new Book { BookFiles = new List() }, new Book { BookFiles = new List() } }; + var singleBookList = new List { new Book { BookFiles = new List() } }; + var doubleBookList = new List { new Book { BookFiles = new List() }, new Book { BookFiles = new List() }, new Book { BookFiles = new List() } }; - var fakeArtist = Builder.CreateNew() + var fakeAuthor = Builder.CreateNew() .With(c => c.QualityProfile = new QualityProfile { UpgradeAllowed = true, @@ -50,16 +50,16 @@ namespace NzbDrone.Core.Test.DecisionEngineTests _parseResultMulti = new RemoteBook { - Author = fakeArtist, + Author = fakeAuthor, ParsedBookInfo = new ParsedBookInfo { Quality = new QualityModel(Quality.MP3_320, new Revision(version: 2)) }, - Books = doubleAlbumList + Books = doubleBookList }; _parseResultSingle = new RemoteBook { - Author = fakeArtist, + Author = fakeAuthor, ParsedBookInfo = new ParsedBookInfo { Quality = new QualityModel(Quality.MP3_320, new Revision(version: 2)) }, - Books = singleAlbumList + Books = singleBookList }; } @@ -74,7 +74,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests } [Test] - public void should_return_true_if_album_has_no_existing_file() + public void should_return_true_if_book_has_no_existing_file() { _parseResultSingle.Books.First().BookFiles = new List(); @@ -95,7 +95,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests } [Test] - public void should_return_true_if_single_album_doesnt_exist_on_disk() + public void should_return_true_if_single_book_doesnt_exist_on_disk() { _parseResultSingle.Books = new List(); diff --git a/src/NzbDrone.Core.Test/DecisionEngineTests/UpgradeSpecificationFixture.cs b/src/NzbDrone.Core.Test/DecisionEngineTests/UpgradeSpecificationFixture.cs index 25f236167..1f7dd6fde 100644 --- a/src/NzbDrone.Core.Test/DecisionEngineTests/UpgradeSpecificationFixture.cs +++ b/src/NzbDrone.Core.Test/DecisionEngineTests/UpgradeSpecificationFixture.cs @@ -46,7 +46,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests Subject.IsUpgradable( profile, - new List { new QualityModel(current, new Revision(version: currentVersion)) }, + new QualityModel(current, new Revision(version: currentVersion)), NoPreferredWordScore, new QualityModel(newQuality, new Revision(version: newVersion)), NoPreferredWordScore) @@ -65,7 +65,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests Subject.IsUpgradable( profile, - new List { new QualityModel(Quality.MP3_320, new Revision(version: 1)) }, + new QualityModel(Quality.MP3_320, new Revision(version: 1)), NoPreferredWordScore, new QualityModel(Quality.MP3_320, new Revision(version: 2)), NoPreferredWordScore) @@ -84,7 +84,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests Subject.IsUpgradable( profile, - new List { new QualityModel(Quality.MP3_320, new Revision(version: 1)) }, + new QualityModel(Quality.MP3_320, new Revision(version: 1)), NoPreferredWordScore, new QualityModel(Quality.MP3_320, new Revision(version: 2)), NoPreferredWordScore) diff --git a/src/NzbDrone.Core.Test/DiskSpace/DiskSpaceServiceFixture.cs b/src/NzbDrone.Core.Test/DiskSpace/DiskSpaceServiceFixture.cs index de0a3dcea..dc0c00154 100644 --- a/src/NzbDrone.Core.Test/DiskSpace/DiskSpaceServiceFixture.cs +++ b/src/NzbDrone.Core.Test/DiskSpace/DiskSpaceServiceFixture.cs @@ -17,15 +17,15 @@ namespace NzbDrone.Core.Test.DiskSpace public class DiskSpaceServiceFixture : CoreTest { private RootFolder _rootDir; - private string _artistFolder1; - private string _artistFolder2; + private string _authorFolder1; + private string _authorFolder2; [SetUp] public void SetUp() { _rootDir = new RootFolder { Path = @"G:\fasdlfsdf".AsOsAgnostic() }; - _artistFolder1 = Path.Combine(_rootDir.Path, "artist1"); - _artistFolder2 = Path.Combine(_rootDir.Path, "artist2"); + _authorFolder1 = Path.Combine(_rootDir.Path, "author1"); + _authorFolder2 = Path.Combine(_rootDir.Path, "author2"); Mocker.GetMock() .Setup(x => x.All()) @@ -47,14 +47,14 @@ namespace NzbDrone.Core.Test.DiskSpace .Setup(v => v.GetTotalSize(It.IsAny())) .Returns(0); - GivenArtist(); + GivenAuthor(); } - private void GivenArtist(params Author[] artist) + private void GivenAuthor(params Author[] author) { Mocker.GetMock() .Setup(v => v.GetAllAuthors()) - .Returns(artist.ToList()); + .Returns(author.ToList()); } private void GivenExistingFolder(string folder) @@ -65,11 +65,11 @@ namespace NzbDrone.Core.Test.DiskSpace } [Test] - public void should_check_diskspace_for_artist_folders() + public void should_check_diskspace_for_author_folders() { - GivenArtist(new Author { Path = _artistFolder1 }); + GivenAuthor(new Author { Path = _authorFolder1 }); - GivenExistingFolder(_artistFolder1); + GivenExistingFolder(_authorFolder1); var freeSpace = Subject.GetFreeSpace(); @@ -79,10 +79,10 @@ namespace NzbDrone.Core.Test.DiskSpace [Test] public void should_check_diskspace_for_same_root_folder_only_once() { - GivenArtist(new Author { Path = _artistFolder1 }, new Author { Path = _artistFolder2 }); + GivenAuthor(new Author { Path = _authorFolder1 }, new Author { Path = _authorFolder2 }); - GivenExistingFolder(_artistFolder1); - GivenExistingFolder(_artistFolder2); + GivenExistingFolder(_authorFolder1); + GivenExistingFolder(_authorFolder2); var freeSpace = Subject.GetFreeSpace(); diff --git a/src/NzbDrone.Core.Test/Download/CompletedDownloadServiceTests/ImportFixture.cs b/src/NzbDrone.Core.Test/Download/CompletedDownloadServiceTests/ImportFixture.cs index f50057617..e6b03c089 100644 --- a/src/NzbDrone.Core.Test/Download/CompletedDownloadServiceTests/ImportFixture.cs +++ b/src/NzbDrone.Core.Test/Download/CompletedDownloadServiceTests/ImportFixture.cs @@ -33,7 +33,7 @@ namespace NzbDrone.Core.Test.Download.CompletedDownloadServiceTests .With(h => h.Title = "Drone.S01E01.HDTV") .Build(); - var remoteBook = BuildRemoteAlbum(); + var remoteBook = BuildRemoteBook(); _trackedDownload = Builder.CreateNew() .With(c => c.State = TrackedDownloadState.Downloading) @@ -55,11 +55,11 @@ namespace NzbDrone.Core.Test.Download.CompletedDownloadServiceTests .Returns(new History.History()); Mocker.GetMock() - .Setup(s => s.GetArtist("Drone.S01E01.HDTV")) + .Setup(s => s.GetAuthor("Drone.S01E01.HDTV")) .Returns(remoteBook.Author); } - private Book CreateAlbum(int id) + private Book CreateBook(int id) { return new Book { @@ -67,12 +67,12 @@ namespace NzbDrone.Core.Test.Download.CompletedDownloadServiceTests }; } - private RemoteBook BuildRemoteAlbum() + private RemoteBook BuildRemoteBook() { return new RemoteBook { Author = new Author(), - Books = new List { CreateAlbum(1) } + Books = new List { CreateBook(1) } }; } @@ -86,18 +86,18 @@ namespace NzbDrone.Core.Test.Download.CompletedDownloadServiceTests .Returns(new History.History() { SourceTitle = "Droned S01E01" }); Mocker.GetMock() - .Setup(s => s.GetArtist(It.IsAny())) + .Setup(s => s.GetAuthor(It.IsAny())) .Returns((Author)null); Mocker.GetMock() - .Setup(s => s.GetArtist("Droned S01E01")) - .Returns(BuildRemoteAlbum().Author); + .Setup(s => s.GetAuthor("Droned S01E01")) + .Returns(BuildRemoteBook().Author); } - private void GivenArtistMatch() + private void GivenAuthorMatch() { Mocker.GetMock() - .Setup(s => s.GetArtist(It.IsAny())) + .Setup(s => s.GetAuthor(It.IsAny())) .Returns(_trackedDownload.RemoteBook.Author); } @@ -167,11 +167,11 @@ namespace NzbDrone.Core.Test.Download.CompletedDownloadServiceTests [Test] public void should_mark_as_imported_if_all_tracks_were_imported_but_extra_files_were_not() { - GivenArtistMatch(); + GivenAuthorMatch(); _trackedDownload.RemoteBook.Books = new List { - CreateAlbum(1) + CreateBook(1) }; Mocker.GetMock() @@ -192,9 +192,9 @@ namespace NzbDrone.Core.Test.Download.CompletedDownloadServiceTests { _trackedDownload.RemoteBook.Books = new List { - CreateAlbum(1), - CreateAlbum(1), - CreateAlbum(1) + CreateBook(1), + CreateBook(1), + CreateBook(1) }; Mocker.GetMock() @@ -227,9 +227,9 @@ namespace NzbDrone.Core.Test.Download.CompletedDownloadServiceTests [Test] public void should_not_mark_as_imported_if_some_of_episodes_were_not_imported_including_history() { - var albums = Builder.CreateListOfSize(3).BuildList(); + var books = Builder.CreateListOfSize(3).BuildList(); - _trackedDownload.RemoteBook.Books = albums; + _trackedDownload.RemoteBook.Books = books; Mocker.GetMock() .Setup(v => v.ProcessPath(It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny())) @@ -261,7 +261,7 @@ namespace NzbDrone.Core.Test.Download.CompletedDownloadServiceTests { _trackedDownload.RemoteBook.Books = new List { - CreateAlbum(1) + CreateBook(1) }; Mocker.GetMock() @@ -285,9 +285,9 @@ namespace NzbDrone.Core.Test.Download.CompletedDownloadServiceTests [Test] public void should_mark_as_imported_if_all_episodes_were_imported_including_history() { - var albums = Builder.CreateListOfSize(2).BuildList(); + var books = Builder.CreateListOfSize(2).BuildList(); - _trackedDownload.RemoteBook.Books = albums; + _trackedDownload.RemoteBook.Books = books; Mocker.GetMock() .Setup(v => v.ProcessPath(It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny())) @@ -295,11 +295,11 @@ namespace NzbDrone.Core.Test.Download.CompletedDownloadServiceTests { new ImportResult( new ImportDecision( - new LocalBook { Path = @"C:\TestPath\Droned.S01E01.mkv", Book = albums[0] })), + new LocalBook { Path = @"C:\TestPath\Droned.S01E01.mkv", Book = books[0] })), new ImportResult( new ImportDecision( - new LocalBook { Path = @"C:\TestPath\Droned.S01E02.mkv", Book = albums[1] }), "Test Failure") + new LocalBook { Path = @"C:\TestPath\Droned.S01E02.mkv", Book = books[1] }), "Test Failure") }); var history = Builder.CreateListOfSize(2) diff --git a/src/NzbDrone.Core.Test/Download/CompletedDownloadServiceTests/ProcessFixture.cs b/src/NzbDrone.Core.Test/Download/CompletedDownloadServiceTests/ProcessFixture.cs index a46ae74eb..4cc50c440 100644 --- a/src/NzbDrone.Core.Test/Download/CompletedDownloadServiceTests/ProcessFixture.cs +++ b/src/NzbDrone.Core.Test/Download/CompletedDownloadServiceTests/ProcessFixture.cs @@ -29,7 +29,7 @@ namespace NzbDrone.Core.Test.Download.CompletedDownloadServiceTests .With(h => h.Title = "Drone.S01E01.HDTV") .Build(); - var remoteBook = BuildRemoteAlbum(); + var remoteBook = BuildRemoteBook(); _trackedDownload = Builder.CreateNew() .With(c => c.State = TrackedDownloadState.Downloading) @@ -54,11 +54,11 @@ namespace NzbDrone.Core.Test.Download.CompletedDownloadServiceTests .Returns(new History.History()); Mocker.GetMock() - .Setup(s => s.GetArtist("Drone.S01E01.HDTV")) + .Setup(s => s.GetAuthor("Drone.S01E01.HDTV")) .Returns(remoteBook.Author); } - private RemoteBook BuildRemoteAlbum() + private RemoteBook BuildRemoteBook() { return new RemoteBook { @@ -74,10 +74,10 @@ namespace NzbDrone.Core.Test.Download.CompletedDownloadServiceTests .Returns((History.History)null); } - private void GivenArtistMatch() + private void GivenAuthorMatch() { Mocker.GetMock() - .Setup(s => s.GetArtist(It.IsAny())) + .Setup(s => s.GetAuthor(It.IsAny())) .Returns(_trackedDownload.RemoteBook.Author); } @@ -90,12 +90,12 @@ namespace NzbDrone.Core.Test.Download.CompletedDownloadServiceTests .Returns(new History.History() { SourceTitle = "Droned S01E01" }); Mocker.GetMock() - .Setup(s => s.GetArtist(It.IsAny())) + .Setup(s => s.GetAuthor(It.IsAny())) .Returns((Author)null); Mocker.GetMock() - .Setup(s => s.GetArtist("Droned S01E01")) - .Returns(BuildRemoteAlbum().Author); + .Setup(s => s.GetAuthor("Droned S01E01")) + .Returns(BuildRemoteBook().Author); } [TestCase(DownloadItemStatus.Downloading)] @@ -128,7 +128,7 @@ namespace NzbDrone.Core.Test.Download.CompletedDownloadServiceTests { _trackedDownload.DownloadItem.Category = "tv"; GivenNoGrabbedHistory(); - GivenArtistMatch(); + GivenAuthorMatch(); Subject.Check(_trackedDownload); @@ -164,7 +164,7 @@ namespace NzbDrone.Core.Test.Download.CompletedDownloadServiceTests { _trackedDownload.RemoteBook.Author = null; Mocker.GetMock() - .Setup(s => s.GetArtist("Drone.S01E01.HDTV")) + .Setup(s => s.GetAuthor("Drone.S01E01.HDTV")) .Returns((Author)null); Subject.Check(_trackedDownload); diff --git a/src/NzbDrone.Core.Test/Download/DownloadApprovedReportsTests/DownloadApprovedFixture.cs b/src/NzbDrone.Core.Test/Download/DownloadApprovedReportsTests/DownloadApprovedFixture.cs index 8f48682c9..3729e12f9 100644 --- a/src/NzbDrone.Core.Test/Download/DownloadApprovedReportsTests/DownloadApprovedFixture.cs +++ b/src/NzbDrone.Core.Test/Download/DownloadApprovedReportsTests/DownloadApprovedFixture.cs @@ -30,21 +30,21 @@ namespace NzbDrone.Core.Test.Download.DownloadApprovedReportsTests .Returns>(v => v); } - private Book GetAlbum(int id) + private Book GetBook(int id) { return Builder.CreateNew() .With(e => e.Id = id) .Build(); } - private RemoteBook GetRemoteAlbum(List albums, QualityModel quality, DownloadProtocol downloadProtocol = DownloadProtocol.Usenet) + private RemoteBook GetRemoteBook(List books, QualityModel quality, DownloadProtocol downloadProtocol = DownloadProtocol.Usenet) { var remoteBook = new RemoteBook(); remoteBook.ParsedBookInfo = new ParsedBookInfo(); remoteBook.ParsedBookInfo.Quality = quality; remoteBook.Books = new List(); - remoteBook.Books.AddRange(albums); + remoteBook.Books.AddRange(books); remoteBook.Release = new ReleaseInfo(); remoteBook.Release.DownloadProtocol = downloadProtocol; @@ -58,10 +58,10 @@ namespace NzbDrone.Core.Test.Download.DownloadApprovedReportsTests } [Test] - public void should_download_report_if_album_was_not_already_downloaded() + public void should_download_report_if_book_was_not_already_downloaded() { - var albums = new List { GetAlbum(1) }; - var remoteBook = GetRemoteAlbum(albums, new QualityModel(Quality.MP3_320)); + var books = new List { GetBook(1) }; + var remoteBook = GetRemoteBook(books, new QualityModel(Quality.MP3_320)); var decisions = new List(); decisions.Add(new DownloadDecision(remoteBook)); @@ -71,10 +71,10 @@ namespace NzbDrone.Core.Test.Download.DownloadApprovedReportsTests } [Test] - public void should_only_download_album_once() + public void should_only_download_book_once() { - var albums = new List { GetAlbum(1) }; - var remoteBook = GetRemoteAlbum(albums, new QualityModel(Quality.MP3_320)); + var books = new List { GetBook(1) }; + var remoteBook = GetRemoteBook(books, new QualityModel(Quality.MP3_320)); var decisions = new List(); decisions.Add(new DownloadDecision(remoteBook)); @@ -85,14 +85,14 @@ namespace NzbDrone.Core.Test.Download.DownloadApprovedReportsTests } [Test] - public void should_not_download_if_any_album_was_already_downloaded() + public void should_not_download_if_any_book_was_already_downloaded() { - var remoteBook1 = GetRemoteAlbum( - new List { GetAlbum(1) }, + var remoteBook1 = GetRemoteBook( + new List { GetBook(1) }, new QualityModel(Quality.MP3_320)); - var remoteBook2 = GetRemoteAlbum( - new List { GetAlbum(1), GetAlbum(2) }, + var remoteBook2 = GetRemoteBook( + new List { GetBook(1), GetBook(2) }, new QualityModel(Quality.MP3_320)); var decisions = new List(); @@ -106,8 +106,8 @@ namespace NzbDrone.Core.Test.Download.DownloadApprovedReportsTests [Test] public void should_return_downloaded_reports() { - var albums = new List { GetAlbum(1) }; - var remoteBook = GetRemoteAlbum(albums, new QualityModel(Quality.MP3_320)); + var books = new List { GetBook(1) }; + var remoteBook = GetRemoteBook(books, new QualityModel(Quality.MP3_320)); var decisions = new List(); decisions.Add(new DownloadDecision(remoteBook)); @@ -118,12 +118,12 @@ namespace NzbDrone.Core.Test.Download.DownloadApprovedReportsTests [Test] public void should_return_all_downloaded_reports() { - var remoteBook1 = GetRemoteAlbum( - new List { GetAlbum(1) }, + var remoteBook1 = GetRemoteBook( + new List { GetBook(1) }, new QualityModel(Quality.MP3_320)); - var remoteBook2 = GetRemoteAlbum( - new List { GetAlbum(2) }, + var remoteBook2 = GetRemoteBook( + new List { GetBook(2) }, new QualityModel(Quality.MP3_320)); var decisions = new List(); @@ -136,16 +136,16 @@ namespace NzbDrone.Core.Test.Download.DownloadApprovedReportsTests [Test] public void should_only_return_downloaded_reports() { - var remoteBook1 = GetRemoteAlbum( - new List { GetAlbum(1) }, + var remoteBook1 = GetRemoteBook( + new List { GetBook(1) }, new QualityModel(Quality.MP3_320)); - var remoteBook2 = GetRemoteAlbum( - new List { GetAlbum(2) }, + var remoteBook2 = GetRemoteBook( + new List { GetBook(2) }, new QualityModel(Quality.MP3_320)); - var remoteBook3 = GetRemoteAlbum( - new List { GetAlbum(2) }, + var remoteBook3 = GetRemoteBook( + new List { GetBook(2) }, new QualityModel(Quality.MP3_320)); var decisions = new List(); @@ -159,8 +159,8 @@ namespace NzbDrone.Core.Test.Download.DownloadApprovedReportsTests [Test] public void should_not_add_to_downloaded_list_when_download_fails() { - var albums = new List { GetAlbum(1) }; - var remoteBook = GetRemoteAlbum(albums, new QualityModel(Quality.MP3_320)); + var books = new List { GetBook(1) }; + var remoteBook = GetRemoteBook(books, new QualityModel(Quality.MP3_320)); var decisions = new List(); decisions.Add(new DownloadDecision(remoteBook)); @@ -183,8 +183,8 @@ namespace NzbDrone.Core.Test.Download.DownloadApprovedReportsTests [Test] public void should_not_grab_if_pending() { - var albums = new List { GetAlbum(1) }; - var remoteBook = GetRemoteAlbum(albums, new QualityModel(Quality.MP3_320)); + var books = new List { GetBook(1) }; + var remoteBook = GetRemoteBook(books, new QualityModel(Quality.MP3_320)); var decisions = new List(); decisions.Add(new DownloadDecision(remoteBook, new Rejection("Failure!", RejectionType.Temporary))); @@ -194,10 +194,10 @@ namespace NzbDrone.Core.Test.Download.DownloadApprovedReportsTests } [Test] - public void should_not_add_to_pending_if_album_was_grabbed() + public void should_not_add_to_pending_if_book_was_grabbed() { - var albums = new List { GetAlbum(1) }; - var remoteBook = GetRemoteAlbum(albums, new QualityModel(Quality.MP3_320)); + var books = new List { GetBook(1) }; + var remoteBook = GetRemoteBook(books, new QualityModel(Quality.MP3_320)); var decisions = new List(); decisions.Add(new DownloadDecision(remoteBook)); @@ -210,8 +210,8 @@ namespace NzbDrone.Core.Test.Download.DownloadApprovedReportsTests [Test] public void should_add_to_pending_even_if_already_added_to_pending() { - var albums = new List { GetAlbum(1) }; - var remoteBook = GetRemoteAlbum(albums, new QualityModel(Quality.MP3_320)); + var books = new List { GetBook(1) }; + var remoteBook = GetRemoteBook(books, new QualityModel(Quality.MP3_320)); var decisions = new List(); decisions.Add(new DownloadDecision(remoteBook, new Rejection("Failure!", RejectionType.Temporary))); @@ -224,8 +224,8 @@ namespace NzbDrone.Core.Test.Download.DownloadApprovedReportsTests [Test] public void should_add_to_failed_if_already_failed_for_that_protocol() { - var albums = new List { GetAlbum(1) }; - var remoteBook = GetRemoteAlbum(albums, new QualityModel(Quality.MP3_320)); + var books = new List { GetBook(1) }; + var remoteBook = GetRemoteBook(books, new QualityModel(Quality.MP3_320)); var decisions = new List(); decisions.Add(new DownloadDecision(remoteBook)); @@ -241,9 +241,9 @@ namespace NzbDrone.Core.Test.Download.DownloadApprovedReportsTests [Test] public void should_not_add_to_failed_if_failed_for_a_different_protocol() { - var albums = new List { GetAlbum(1) }; - var remoteBook = GetRemoteAlbum(albums, new QualityModel(Quality.MP3_320), DownloadProtocol.Usenet); - var remoteBook2 = GetRemoteAlbum(albums, new QualityModel(Quality.MP3_320), DownloadProtocol.Torrent); + var books = new List { GetBook(1) }; + var remoteBook = GetRemoteBook(books, new QualityModel(Quality.MP3_320), DownloadProtocol.Usenet); + var remoteBook2 = GetRemoteBook(books, new QualityModel(Quality.MP3_320), DownloadProtocol.Torrent); var decisions = new List(); decisions.Add(new DownloadDecision(remoteBook)); @@ -260,8 +260,8 @@ namespace NzbDrone.Core.Test.Download.DownloadApprovedReportsTests [Test] public void should_add_to_rejected_if_release_unavailable_on_indexer() { - var albums = new List { GetAlbum(1) }; - var remoteBook = GetRemoteAlbum(albums, new QualityModel(Quality.MP3_320)); + var books = new List { GetBook(1) }; + var remoteBook = GetRemoteBook(books, new QualityModel(Quality.MP3_320)); var decisions = new List(); decisions.Add(new DownloadDecision(remoteBook)); diff --git a/src/NzbDrone.Core.Test/Download/DownloadClientTests/Blackhole/TorrentBlackholeFixture.cs b/src/NzbDrone.Core.Test/Download/DownloadClientTests/Blackhole/TorrentBlackholeFixture.cs index e6feccb78..dd41f671d 100644 --- a/src/NzbDrone.Core.Test/Download/DownloadClientTests/Blackhole/TorrentBlackholeFixture.cs +++ b/src/NzbDrone.Core.Test/Download/DownloadClientTests/Blackhole/TorrentBlackholeFixture.cs @@ -87,15 +87,15 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.Blackhole _magnetFilePath = Path.ChangeExtension(_filePath, extension); } - protected override RemoteBook CreateRemoteAlbum() + protected override RemoteBook CreateRemoteBook() { - var remoteBook = base.CreateRemoteAlbum(); + var remoteBook = base.CreateRemoteBook(); var torrentInfo = new TorrentInfo(); torrentInfo.Title = remoteBook.Release.Title; torrentInfo.DownloadUrl = remoteBook.Release.DownloadUrl; torrentInfo.DownloadProtocol = remoteBook.Release.DownloadProtocol; - torrentInfo.MagnetUrl = "magnet:?xt=urn:btih:755248817d32b00cc853e633ecdc48e4c21bff15&dn=Artist.Album.FLAC.loseless-DEFiNE%5Brartv%5D&tr=http%3A%2F%2Ftracker.trackerfix.com%3A80%2Fannounce&tr=udp%3A%2F%2F9.rarbg.me%3A2710&tr=udp%3A%2F%2F9.rarbg.to%3A2710"; + torrentInfo.MagnetUrl = "magnet:?xt=urn:btih:755248817d32b00cc853e633ecdc48e4c21bff15&dn=Author.Book.FLAC.loseless-DEFiNE%5Brartv%5D&tr=http%3A%2F%2Ftracker.trackerfix.com%3A80%2Fannounce&tr=udp%3A%2F%2F9.rarbg.me%3A2710&tr=udp%3A%2F%2F9.rarbg.to%3A2710"; remoteBook.Release = torrentInfo; @@ -141,7 +141,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.Blackhole [Test] public void Download_should_download_file_if_it_doesnt_exist() { - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); Subject.Download(remoteBook); @@ -155,7 +155,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.Blackhole { GivenMagnetFilePath(); Subject.Definition.Settings.As().SaveMagnetFiles = true; - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); remoteBook.Release.DownloadUrl = null; Subject.Download(remoteBook); Mocker.GetMock().Verify(c => c.Get(It.Is(v => v.Url.FullUri == _downloadUrl)), Times.Never()); @@ -173,7 +173,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.Blackhole Subject.Definition.Settings.As().SaveMagnetFiles = true; Subject.Definition.Settings.As().MagnetFileExtension = magnetFileExtension; - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); remoteBook.Release.DownloadUrl = null; Subject.Download(remoteBook); @@ -188,7 +188,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.Blackhole public void Download_should_not_save_magnet_if_disabled() { GivenMagnetFilePath(); - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); remoteBook.Release.DownloadUrl = null; Assert.Throws(() => Subject.Download(remoteBook)); @@ -204,7 +204,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.Blackhole { Subject.Definition.Settings.As().SaveMagnetFiles = true; - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); Subject.Download(remoteBook); @@ -220,7 +220,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.Blackhole var illegalTitle = "Radiohead - Scotch Mist [2008/FLAC/Lossless]"; var expectedFilename = Path.Combine(_blackholeFolder, "Radiohead - Scotch Mist [2008+FLAC+Lossless]" + Path.GetExtension(_filePath)); - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); remoteBook.Release.Title = illegalTitle; Subject.Download(remoteBook); @@ -233,7 +233,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.Blackhole [Test] public void Download_should_throw_if_magnet_and_torrent_url_does_not_exist() { - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); remoteBook.Release.DownloadUrl = null; Assert.Throws(() => Subject.Download(remoteBook)); @@ -308,7 +308,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.Blackhole [Test] public void should_return_null_hash() { - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); Subject.Download(remoteBook).Should().BeNull(); } diff --git a/src/NzbDrone.Core.Test/Download/DownloadClientTests/Blackhole/UsenetBlackholeFixture.cs b/src/NzbDrone.Core.Test/Download/DownloadClientTests/Blackhole/UsenetBlackholeFixture.cs index 165f906a1..cdfda0358 100644 --- a/src/NzbDrone.Core.Test/Download/DownloadClientTests/Blackhole/UsenetBlackholeFixture.cs +++ b/src/NzbDrone.Core.Test/Download/DownloadClientTests/Blackhole/UsenetBlackholeFixture.cs @@ -113,7 +113,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.Blackhole [Test] public void Download_should_download_file_if_it_doesnt_exist() { - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); Subject.Download(remoteBook); @@ -128,7 +128,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.Blackhole var illegalTitle = "Radiohead - Scotch Mist [2008/FLAC/Lossless]"; var expectedFilename = Path.Combine(_blackholeFolder, "Radiohead - Scotch Mist [2008+FLAC+Lossless]" + Path.GetExtension(_filePath)); - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); remoteBook.Release.Title = illegalTitle; Subject.Download(remoteBook); diff --git a/src/NzbDrone.Core.Test/Download/DownloadClientTests/DelugeTests/DelugeFixture.cs b/src/NzbDrone.Core.Test/Download/DownloadClientTests/DelugeTests/DelugeFixture.cs index b0fe24e3b..a92bb2139 100644 --- a/src/NzbDrone.Core.Test/Download/DownloadClientTests/DelugeTests/DelugeFixture.cs +++ b/src/NzbDrone.Core.Test/Download/DownloadClientTests/DelugeTests/DelugeFixture.cs @@ -204,7 +204,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.DelugeTests { GivenSuccessfulDownload(); - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); var id = Subject.Download(remoteBook); @@ -216,7 +216,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.DelugeTests { GivenSuccessfulDownload(); - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); remoteBook.Release.DownloadUrl = magnetUrl; var id = Subject.Download(remoteBook); diff --git a/src/NzbDrone.Core.Test/Download/DownloadClientTests/DownloadClientFixtureBase.cs b/src/NzbDrone.Core.Test/Download/DownloadClientTests/DownloadClientFixtureBase.cs index ce8488287..6014243d9 100644 --- a/src/NzbDrone.Core.Test/Download/DownloadClientTests/DownloadClientFixtureBase.cs +++ b/src/NzbDrone.Core.Test/Download/DownloadClientTests/DownloadClientFixtureBase.cs @@ -30,7 +30,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests Mocker.GetMock() .Setup(s => s.Map(It.IsAny(), null)) - .Returns(() => CreateRemoteAlbum()); + .Returns(() => CreateRemoteBook()); Mocker.GetMock() .Setup(s => s.Get(It.IsAny())) @@ -41,7 +41,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests .Returns((h, r) => r); } - protected virtual RemoteBook CreateRemoteAlbum() + protected virtual RemoteBook CreateRemoteBook() { var remoteBook = new RemoteBook(); remoteBook.Release = new ReleaseInfo(); diff --git a/src/NzbDrone.Core.Test/Download/DownloadClientTests/DownloadStationTests/TorrentDownloadStationFixture.cs b/src/NzbDrone.Core.Test/Download/DownloadClientTests/DownloadStationTests/TorrentDownloadStationFixture.cs index fab7e9123..bef6f8c90 100644 --- a/src/NzbDrone.Core.Test/Download/DownloadClientTests/DownloadStationTests/TorrentDownloadStationFixture.cs +++ b/src/NzbDrone.Core.Test/Download/DownloadClientTests/DownloadStationTests/TorrentDownloadStationFixture.cs @@ -34,7 +34,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.DownloadStationTests protected string _serialNumber = "SERIALNUMBER"; protected string _category = "readarr"; - protected string _musicDirectory = @"music/Artist"; + protected string _musicDirectory = @"music/Author"; protected string _defaultDestination = "somepath"; protected OsPath _physicalPath = new OsPath("/mnt/sdb1/mydata"); @@ -360,13 +360,13 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.DownloadStationTests .Callback(PrepareClientToReturnQueuedItem); } - protected override RemoteBook CreateRemoteAlbum() + protected override RemoteBook CreateRemoteBook() { - var album = base.CreateRemoteAlbum(); + var book = base.CreateRemoteBook(); - album.Release.DownloadUrl = DownloadURL; + book.Release.DownloadUrl = DownloadURL; - return album; + return book; } protected int GivenAllKindOfTasks() @@ -387,7 +387,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.DownloadStationTests GivenTvDirectory(); GivenSuccessfulDownload(); - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); var id = Subject.Download(remoteBook); @@ -404,7 +404,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.DownloadStationTests GivenMusicCategory(); GivenSuccessfulDownload(); - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); var id = Subject.Download(remoteBook); @@ -420,7 +420,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.DownloadStationTests GivenSerialNumber(); GivenSuccessfulDownload(); - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); var id = Subject.Download(remoteBook); @@ -495,7 +495,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.DownloadStationTests [Test] public void Download_should_throw_and_not_add_task_if_cannot_get_serial_number() { - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); Mocker.GetMock() .Setup(s => s.GetSerialNumber(_settings)) diff --git a/src/NzbDrone.Core.Test/Download/DownloadClientTests/DownloadStationTests/UsenetDownloadStationFixture.cs b/src/NzbDrone.Core.Test/Download/DownloadClientTests/DownloadStationTests/UsenetDownloadStationFixture.cs index 8eb1076a0..4073dacdd 100644 --- a/src/NzbDrone.Core.Test/Download/DownloadClientTests/DownloadStationTests/UsenetDownloadStationFixture.cs +++ b/src/NzbDrone.Core.Test/Download/DownloadClientTests/DownloadStationTests/UsenetDownloadStationFixture.cs @@ -29,7 +29,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.DownloadStationTests protected string _serialNumber = "SERIALNUMBER"; protected string _category = "readarr"; - protected string _musicDirectory = @"music/Artist"; + protected string _musicDirectory = @"music/Author"; protected string _defaultDestination = "somepath"; protected OsPath _physicalPath = new OsPath("/mnt/sdb1/mydata"); @@ -40,7 +40,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.DownloadStationTests [SetUp] public void Setup() { - _remoteBook = CreateRemoteAlbum(); + _remoteBook = CreateRemoteBook(); _settings = new DownloadStationSettings() { @@ -264,7 +264,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.DownloadStationTests GivenTvDirectory(); GivenSuccessfulDownload(); - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); var id = Subject.Download(remoteBook); @@ -281,7 +281,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.DownloadStationTests GivenMusicCategory(); GivenSuccessfulDownload(); - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); var id = Subject.Download(remoteBook); @@ -297,7 +297,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.DownloadStationTests GivenSerialNumber(); GivenSuccessfulDownload(); - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); var id = Subject.Download(remoteBook); @@ -372,7 +372,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.DownloadStationTests [Test] public void Download_should_throw_and_not_add_task_if_cannot_get_serial_number() { - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); Mocker.GetMock() .Setup(s => s.GetSerialNumber(_settings)) diff --git a/src/NzbDrone.Core.Test/Download/DownloadClientTests/HadoukenTests/HadoukenFixture.cs b/src/NzbDrone.Core.Test/Download/DownloadClientTests/HadoukenTests/HadoukenFixture.cs index 1699d3698..efff9075a 100644 --- a/src/NzbDrone.Core.Test/Download/DownloadClientTests/HadoukenTests/HadoukenFixture.cs +++ b/src/NzbDrone.Core.Test/Download/DownloadClientTests/HadoukenTests/HadoukenFixture.cs @@ -200,7 +200,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.HadoukenTests { GivenSuccessfulDownload(); - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); var id = Subject.Download(remoteBook); @@ -279,7 +279,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.HadoukenTests [Test] public void Download_from_magnet_link_should_return_hash_uppercase() { - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); remoteBook.Release.DownloadUrl = "magnet:?xt=urn:btih:a45129e59d8750f9da982f53552b1e4f0457ee9f"; @@ -294,7 +294,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.HadoukenTests [Test] public void Download_from_torrent_file_should_return_hash_uppercase() { - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); Mocker.GetMock() .Setup(v => v.AddTorrentFile(It.IsAny(), It.IsAny())) diff --git a/src/NzbDrone.Core.Test/Download/DownloadClientTests/NzbVortexTests/NzbVortexFixture.cs b/src/NzbDrone.Core.Test/Download/DownloadClientTests/NzbVortexTests/NzbVortexFixture.cs index e74409ee6..17d4659cc 100644 --- a/src/NzbDrone.Core.Test/Download/DownloadClientTests/NzbVortexTests/NzbVortexFixture.cs +++ b/src/NzbDrone.Core.Test/Download/DownloadClientTests/NzbVortexTests/NzbVortexFixture.cs @@ -204,7 +204,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.NzbVortexTests { GivenSuccessfulDownload(); - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); var id = Subject.Download(remoteBook); @@ -216,7 +216,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.NzbVortexTests { GivenFailedDownload(); - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); Assert.Throws(() => Subject.Download(remoteBook)); } diff --git a/src/NzbDrone.Core.Test/Download/DownloadClientTests/NzbgetTests/NzbgetFixture.cs b/src/NzbDrone.Core.Test/Download/DownloadClientTests/NzbgetTests/NzbgetFixture.cs index 5cc1c8e2f..c7aeee715 100644 --- a/src/NzbDrone.Core.Test/Download/DownloadClientTests/NzbgetTests/NzbgetFixture.cs +++ b/src/NzbDrone.Core.Test/Download/DownloadClientTests/NzbgetTests/NzbgetFixture.cs @@ -335,7 +335,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.NzbgetTests { GivenSuccessfulDownload(); - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); var id = Subject.Download(remoteBook); @@ -347,7 +347,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.NzbgetTests { GivenFailedDownload(); - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); Assert.Throws(() => Subject.Download(remoteBook)); } @@ -452,7 +452,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.NzbgetTests [Test] public void should_use_final_dir_when_set_instead_of_dest_dir() { - _completed.FinalDir = "/remote/mount/music2/Some.Artist-Some.Album.FLAC.2018-DRONE"; + _completed.FinalDir = "/remote/mount/music2/Some.Author-Some.Book.FLAC.2018-DRONE"; GivenQueue(null); GivenHistory(_completed); diff --git a/src/NzbDrone.Core.Test/Download/DownloadClientTests/QBittorrentTests/QBittorrentFixture.cs b/src/NzbDrone.Core.Test/Download/DownloadClientTests/QBittorrentTests/QBittorrentFixture.cs index a443dfed8..8c5a288be 100644 --- a/src/NzbDrone.Core.Test/Download/DownloadClientTests/QBittorrentTests/QBittorrentFixture.cs +++ b/src/NzbDrone.Core.Test/Download/DownloadClientTests/QBittorrentTests/QBittorrentFixture.cs @@ -422,7 +422,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.QBittorrentTests { GivenSuccessfulDownload(); - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); var id = Subject.Download(remoteBook); @@ -434,7 +434,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.QBittorrentTests { GivenSuccessfulDownload(); - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); remoteBook.Release.DownloadUrl = magnetUrl; var id = Subject.Download(remoteBook); @@ -449,7 +449,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.QBittorrentTests .Setup(s => s.GetConfig(It.IsAny())) .Returns(new QBittorrentPreferences() { DhtEnabled = false }); - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); remoteBook.Release.DownloadUrl = "magnet:?xt=urn:btih:ZPBPA2P6ROZPKRHK44D5OW6NHXU5Z6KR"; Assert.Throws(() => Subject.Download(remoteBook)); @@ -462,7 +462,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.QBittorrentTests .Setup(s => s.GetConfig(It.IsAny())) .Returns(new QBittorrentPreferences { DhtEnabled = false }); - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); remoteBook.Release.DownloadUrl = "magnet:?xt=urn:btih:ZPBPA2P6ROZPKRHK44D5OW6NHXU5Z6KR&tr=udp://abc"; Assert.DoesNotThrow(() => Subject.Download(remoteBook)); @@ -477,7 +477,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.QBittorrentTests GivenHighPriority(); GivenSuccessfulDownload(); - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); var id = Subject.Download(remoteBook); @@ -495,7 +495,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.QBittorrentTests .Setup(v => v.MoveTorrentToTopInQueue(It.IsAny(), It.IsAny())) .Throws(new HttpException(new HttpResponse(new HttpRequest("http://me.local/"), new HttpHeader(), new byte[0], System.Net.HttpStatusCode.Forbidden))); - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); var id = Subject.Download(remoteBook); @@ -529,7 +529,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.QBittorrentTests GivenRedirectToMagnet(); GivenSuccessfulDownload(); - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); var id = Subject.Download(remoteBook); @@ -542,7 +542,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.QBittorrentTests GivenRedirectToTorrent(); GivenSuccessfulDownload(); - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); var id = Subject.Download(remoteBook); diff --git a/src/NzbDrone.Core.Test/Download/DownloadClientTests/RTorrentTests/RTorrentFixture.cs b/src/NzbDrone.Core.Test/Download/DownloadClientTests/RTorrentTests/RTorrentFixture.cs index a736e8d4f..dec5296ce 100644 --- a/src/NzbDrone.Core.Test/Download/DownloadClientTests/RTorrentTests/RTorrentFixture.cs +++ b/src/NzbDrone.Core.Test/Download/DownloadClientTests/RTorrentTests/RTorrentFixture.cs @@ -115,7 +115,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.RTorrentTests { GivenSuccessfulDownload(); - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); var id = Subject.Download(remoteBook); diff --git a/src/NzbDrone.Core.Test/Download/DownloadClientTests/SabnzbdTests/SabnzbdFixture.cs b/src/NzbDrone.Core.Test/Download/DownloadClientTests/SabnzbdTests/SabnzbdFixture.cs index 4bd407623..cf0f28b4f 100644 --- a/src/NzbDrone.Core.Test/Download/DownloadClientTests/SabnzbdTests/SabnzbdFixture.cs +++ b/src/NzbDrone.Core.Test/Download/DownloadClientTests/SabnzbdTests/SabnzbdFixture.cs @@ -298,7 +298,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.SabnzbdTests { GivenSuccessfulDownload(); - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); remoteBook.Release.Title = title; var id = Subject.Download(remoteBook); @@ -312,7 +312,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.SabnzbdTests { GivenSuccessfulDownload(); - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); var id = Subject.Download(remoteBook); @@ -353,7 +353,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.SabnzbdTests .Setup(s => s.DownloadNzb(It.IsAny(), It.IsAny(), It.IsAny(), (int)SabnzbdPriority.High, It.IsAny())) .Returns(new SabnzbdAddResponse { Ids = new List { "readarrtest" } }); - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); remoteBook.Books = Builder.CreateListOfSize(1) .All() .With(e => e.ReleaseDate = DateTime.Today) diff --git a/src/NzbDrone.Core.Test/Download/DownloadClientTests/TransmissionTests/TransmissionFixture.cs b/src/NzbDrone.Core.Test/Download/DownloadClientTests/TransmissionTests/TransmissionFixture.cs index f392b9d3e..0dbb66b1c 100644 --- a/src/NzbDrone.Core.Test/Download/DownloadClientTests/TransmissionTests/TransmissionFixture.cs +++ b/src/NzbDrone.Core.Test/Download/DownloadClientTests/TransmissionTests/TransmissionFixture.cs @@ -58,7 +58,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.TransmissionTests { GivenSuccessfulDownload(); - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); var id = Subject.Download(remoteBook); @@ -71,7 +71,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.TransmissionTests GivenTvDirectory(); GivenSuccessfulDownload(); - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); var id = Subject.Download(remoteBook); @@ -87,7 +87,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.TransmissionTests GivenMusicCategory(); GivenSuccessfulDownload(); - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); var id = Subject.Download(remoteBook); @@ -105,7 +105,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.TransmissionTests _transmissionConfigItems["download-dir"] += "/"; - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); var id = Subject.Download(remoteBook); @@ -120,7 +120,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.TransmissionTests { GivenSuccessfulDownload(); - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); var id = Subject.Download(remoteBook); @@ -135,7 +135,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.TransmissionTests { GivenSuccessfulDownload(); - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); remoteBook.Release.DownloadUrl = magnetUrl; var id = Subject.Download(remoteBook); diff --git a/src/NzbDrone.Core.Test/Download/DownloadClientTests/UTorrentTests/UTorrentFixture.cs b/src/NzbDrone.Core.Test/Download/DownloadClientTests/UTorrentTests/UTorrentFixture.cs index 8a147723d..f35f4dc6c 100644 --- a/src/NzbDrone.Core.Test/Download/DownloadClientTests/UTorrentTests/UTorrentFixture.cs +++ b/src/NzbDrone.Core.Test/Download/DownloadClientTests/UTorrentTests/UTorrentFixture.cs @@ -232,7 +232,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.UTorrentTests { GivenSuccessfulDownload(); - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); var id = Subject.Download(remoteBook); @@ -256,7 +256,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.UTorrentTests { GivenSuccessfulDownload(); - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); remoteBook.Release.DownloadUrl = magnetUrl; var id = Subject.Download(remoteBook); @@ -355,7 +355,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.UTorrentTests GivenRedirectToMagnet(); GivenSuccessfulDownload(); - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); var id = Subject.Download(remoteBook); @@ -368,7 +368,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.UTorrentTests GivenRedirectToTorrent(); GivenSuccessfulDownload(); - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); var id = Subject.Download(remoteBook); diff --git a/src/NzbDrone.Core.Test/Download/DownloadClientTests/VuzeTests/VuzeFixture.cs b/src/NzbDrone.Core.Test/Download/DownloadClientTests/VuzeTests/VuzeFixture.cs index 7bbc79755..984ba5778 100644 --- a/src/NzbDrone.Core.Test/Download/DownloadClientTests/VuzeTests/VuzeFixture.cs +++ b/src/NzbDrone.Core.Test/Download/DownloadClientTests/VuzeTests/VuzeFixture.cs @@ -67,7 +67,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.VuzeTests { GivenSuccessfulDownload(); - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); var id = Subject.Download(remoteBook); @@ -80,7 +80,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.VuzeTests GivenTvDirectory(); GivenSuccessfulDownload(); - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); var id = Subject.Download(remoteBook); @@ -96,7 +96,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.VuzeTests GivenMusicCategory(); GivenSuccessfulDownload(); - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); var id = Subject.Download(remoteBook); @@ -114,7 +114,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.VuzeTests _transmissionConfigItems["download-dir"] += "/"; - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); var id = Subject.Download(remoteBook); @@ -129,7 +129,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.VuzeTests { GivenSuccessfulDownload(); - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); var id = Subject.Download(remoteBook); @@ -144,7 +144,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.VuzeTests { GivenSuccessfulDownload(); - var remoteBook = CreateRemoteAlbum(); + var remoteBook = CreateRemoteBook(); remoteBook.Release.DownloadUrl = magnetUrl; var id = Subject.Download(remoteBook); diff --git a/src/NzbDrone.Core.Test/Download/FailedDownloadServiceTests/ProcessFixture.cs b/src/NzbDrone.Core.Test/Download/FailedDownloadServiceTests/ProcessFixture.cs index f49742ab8..e84ea00e0 100644 --- a/src/NzbDrone.Core.Test/Download/FailedDownloadServiceTests/ProcessFixture.cs +++ b/src/NzbDrone.Core.Test/Download/FailedDownloadServiceTests/ProcessFixture.cs @@ -27,7 +27,7 @@ namespace NzbDrone.Core.Test.Download.FailedDownloadServiceTests var completed = Builder.CreateNew() .With(h => h.Status = DownloadItemStatus.Completed) .With(h => h.OutputPath = new OsPath(@"C:\DropFolder\MyDownload".AsOsAgnostic())) - .With(h => h.Title = "Drone.DroneTheAlbum.FLAC") + .With(h => h.Title = "Drone.DroneTheBook.FLAC") .Build(); _grabHistory = Builder.CreateListOfSize(2).BuildList(); diff --git a/src/NzbDrone.Core.Test/Download/Pending/PendingReleaseServiceTests/AddFixture.cs b/src/NzbDrone.Core.Test/Download/Pending/PendingReleaseServiceTests/AddFixture.cs index e9f697a22..5155aeb7a 100644 --- a/src/NzbDrone.Core.Test/Download/Pending/PendingReleaseServiceTests/AddFixture.cs +++ b/src/NzbDrone.Core.Test/Download/Pending/PendingReleaseServiceTests/AddFixture.cs @@ -21,8 +21,8 @@ namespace NzbDrone.Core.Test.Download.Pending.PendingReleaseServiceTests public class AddFixture : CoreTest { private DownloadDecision _temporarilyRejected; - private Author _artist; - private Book _album; + private Author _author; + private Book _book; private QualityProfile _profile; private ReleaseInfo _release; private ParsedBookInfo _parsedBookInfo; @@ -32,10 +32,10 @@ namespace NzbDrone.Core.Test.Download.Pending.PendingReleaseServiceTests [SetUp] public void Setup() { - _artist = Builder.CreateNew() + _author = Builder.CreateNew() .Build(); - _album = Builder.CreateNew() + _book = Builder.CreateNew() .Build(); _profile = new QualityProfile @@ -50,7 +50,7 @@ namespace NzbDrone.Core.Test.Download.Pending.PendingReleaseServiceTests }, }; - _artist.QualityProfile = new LazyLoaded(_profile); + _author.QualityProfile = new LazyLoaded(_profile); _release = Builder.CreateNew().Build(); @@ -58,8 +58,8 @@ namespace NzbDrone.Core.Test.Download.Pending.PendingReleaseServiceTests _parsedBookInfo.Quality = new QualityModel(Quality.MP3_320); _remoteBook = new RemoteBook(); - _remoteBook.Books = new List { _album }; - _remoteBook.Author = _artist; + _remoteBook.Books = new List { _book }; + _remoteBook.Author = _author; _remoteBook.ParsedBookInfo = _parsedBookInfo; _remoteBook.Release = _release; @@ -77,15 +77,15 @@ namespace NzbDrone.Core.Test.Download.Pending.PendingReleaseServiceTests Mocker.GetMock() .Setup(s => s.GetAuthor(It.IsAny())) - .Returns(_artist); + .Returns(_author); Mocker.GetMock() .Setup(s => s.GetAuthors(It.IsAny>())) - .Returns(new List { _artist }); + .Returns(new List { _author }); Mocker.GetMock() - .Setup(s => s.GetAlbums(It.IsAny(), _artist, null)) - .Returns(new List { _album }); + .Setup(s => s.GetBooks(It.IsAny(), _author, null)) + .Returns(new List { _book }); Mocker.GetMock() .Setup(s => s.PrioritizeDecisions(It.IsAny>())) @@ -100,7 +100,7 @@ namespace NzbDrone.Core.Test.Download.Pending.PendingReleaseServiceTests var heldReleases = Builder.CreateListOfSize(1) .All() - .With(h => h.AuthorId = _artist.Id) + .With(h => h.AuthorId = _author.Id) .With(h => h.Title = title) .With(h => h.Release = release) .With(h => h.Reason = reason) diff --git a/src/NzbDrone.Core.Test/Download/Pending/PendingReleaseServiceTests/RemoveGrabbedFixture.cs b/src/NzbDrone.Core.Test/Download/Pending/PendingReleaseServiceTests/RemoveGrabbedFixture.cs index 1de729116..bc1435611 100644 --- a/src/NzbDrone.Core.Test/Download/Pending/PendingReleaseServiceTests/RemoveGrabbedFixture.cs +++ b/src/NzbDrone.Core.Test/Download/Pending/PendingReleaseServiceTests/RemoveGrabbedFixture.cs @@ -21,8 +21,8 @@ namespace NzbDrone.Core.Test.Download.Pending.PendingReleaseServiceTests public class RemoveGrabbedFixture : CoreTest { private DownloadDecision _temporarilyRejected; - private Author _artist; - private Book _album; + private Author _author; + private Book _book; private QualityProfile _profile; private ReleaseInfo _release; private ParsedBookInfo _parsedBookInfo; @@ -32,10 +32,10 @@ namespace NzbDrone.Core.Test.Download.Pending.PendingReleaseServiceTests [SetUp] public void Setup() { - _artist = Builder.CreateNew() + _author = Builder.CreateNew() .Build(); - _album = Builder.CreateNew() + _book = Builder.CreateNew() .Build(); _profile = new QualityProfile @@ -50,7 +50,7 @@ namespace NzbDrone.Core.Test.Download.Pending.PendingReleaseServiceTests }, }; - _artist.QualityProfile = new LazyLoaded(_profile); + _author.QualityProfile = new LazyLoaded(_profile); _release = Builder.CreateNew().Build(); @@ -58,8 +58,8 @@ namespace NzbDrone.Core.Test.Download.Pending.PendingReleaseServiceTests _parsedBookInfo.Quality = new QualityModel(Quality.MP3_320); _remoteBook = new RemoteBook(); - _remoteBook.Books = new List { _album }; - _remoteBook.Author = _artist; + _remoteBook.Books = new List { _book }; + _remoteBook.Author = _author; _remoteBook.ParsedBookInfo = _parsedBookInfo; _remoteBook.Release = _release; @@ -77,15 +77,15 @@ namespace NzbDrone.Core.Test.Download.Pending.PendingReleaseServiceTests Mocker.GetMock() .Setup(s => s.GetAuthor(It.IsAny())) - .Returns(_artist); + .Returns(_author); Mocker.GetMock() .Setup(s => s.GetAuthors(It.IsAny>())) - .Returns(new List { _artist }); + .Returns(new List { _author }); Mocker.GetMock() - .Setup(s => s.GetAlbums(It.IsAny(), _artist, null)) - .Returns(new List { _album }); + .Setup(s => s.GetBooks(It.IsAny(), _author, null)) + .Returns(new List { _book }); Mocker.GetMock() .Setup(s => s.PrioritizeDecisions(It.IsAny>())) @@ -99,7 +99,7 @@ namespace NzbDrone.Core.Test.Download.Pending.PendingReleaseServiceTests var heldReleases = Builder.CreateListOfSize(1) .All() - .With(h => h.AuthorId = _artist.Id) + .With(h => h.AuthorId = _author.Id) .With(h => h.Release = _release.JsonClone()) .With(h => h.ParsedBookInfo = parsedEpisodeInfo) .Build(); diff --git a/src/NzbDrone.Core.Test/Download/Pending/PendingReleaseServiceTests/RemovePendingFixture.cs b/src/NzbDrone.Core.Test/Download/Pending/PendingReleaseServiceTests/RemovePendingFixture.cs index f6383ac8e..01fca8bf3 100644 --- a/src/NzbDrone.Core.Test/Download/Pending/PendingReleaseServiceTests/RemovePendingFixture.cs +++ b/src/NzbDrone.Core.Test/Download/Pending/PendingReleaseServiceTests/RemovePendingFixture.cs @@ -16,14 +16,14 @@ namespace NzbDrone.Core.Test.Download.Pending.PendingReleaseServiceTests public class RemovePendingFixture : CoreTest { private List _pending; - private Book _album; + private Book _book; [SetUp] public void Setup() { _pending = new List(); - _album = Builder.CreateNew() + _book = Builder.CreateNew() .Build(); Mocker.GetMock() @@ -43,25 +43,25 @@ namespace NzbDrone.Core.Test.Download.Pending.PendingReleaseServiceTests .Returns(new List { new Author() }); Mocker.GetMock() - .Setup(s => s.GetAlbums(It.IsAny(), It.IsAny(), null)) - .Returns(new List { _album }); + .Setup(s => s.GetBooks(It.IsAny(), It.IsAny(), null)) + .Returns(new List { _book }); } - private void AddPending(int id, string album) + private void AddPending(int id, string book) { _pending.Add(new PendingRelease { Id = id, - ParsedBookInfo = new ParsedBookInfo { BookTitle = album } + ParsedBookInfo = new ParsedBookInfo { BookTitle = book } }); } [Test] public void should_remove_same_release() { - AddPending(id: 1, album: "Album"); + AddPending(id: 1, book: "Book"); - var queueId = HashConverter.GetHashInt31(string.Format("pending-{0}-book{1}", 1, _album.Id)); + var queueId = HashConverter.GetHashInt31(string.Format("pending-{0}-book{1}", 1, _book.Id)); Subject.RemovePendingQueueItems(queueId); @@ -71,12 +71,12 @@ namespace NzbDrone.Core.Test.Download.Pending.PendingReleaseServiceTests [Test] public void should_remove_multiple_releases_release() { - AddPending(id: 1, album: "Album 1"); - AddPending(id: 2, album: "Album 2"); - AddPending(id: 3, album: "Album 3"); - AddPending(id: 4, album: "Album 3"); + AddPending(id: 1, book: "Book 1"); + AddPending(id: 2, book: "Book 2"); + AddPending(id: 3, book: "Book 3"); + AddPending(id: 4, book: "Book 3"); - var queueId = HashConverter.GetHashInt31(string.Format("pending-{0}-book{1}", 3, _album.Id)); + var queueId = HashConverter.GetHashInt31(string.Format("pending-{0}-book{1}", 3, _book.Id)); Subject.RemovePendingQueueItems(queueId); @@ -84,14 +84,14 @@ namespace NzbDrone.Core.Test.Download.Pending.PendingReleaseServiceTests } [Test] - public void should_not_remove_diffrent_albums() + public void should_not_remove_diffrent_books() { - AddPending(id: 1, album: "Album 1"); - AddPending(id: 2, album: "Album 1"); - AddPending(id: 3, album: "Album 2"); - AddPending(id: 4, album: "Album 3"); + AddPending(id: 1, book: "Book 1"); + AddPending(id: 2, book: "Book 1"); + AddPending(id: 3, book: "Book 2"); + AddPending(id: 4, book: "Book 3"); - var queueId = HashConverter.GetHashInt31(string.Format("pending-{0}-book{1}", 1, _album.Id)); + var queueId = HashConverter.GetHashInt31(string.Format("pending-{0}-book{1}", 1, _book.Id)); Subject.RemovePendingQueueItems(queueId); diff --git a/src/NzbDrone.Core.Test/Download/Pending/PendingReleaseServiceTests/RemoveRejectedFixture.cs b/src/NzbDrone.Core.Test/Download/Pending/PendingReleaseServiceTests/RemoveRejectedFixture.cs index 3562b6344..6bfd62522 100644 --- a/src/NzbDrone.Core.Test/Download/Pending/PendingReleaseServiceTests/RemoveRejectedFixture.cs +++ b/src/NzbDrone.Core.Test/Download/Pending/PendingReleaseServiceTests/RemoveRejectedFixture.cs @@ -22,8 +22,8 @@ namespace NzbDrone.Core.Test.Download.Pending.PendingReleaseServiceTests public class RemoveRejectedFixture : CoreTest { private DownloadDecision _temporarilyRejected; - private Author _artist; - private Book _album; + private Author _author; + private Book _book; private QualityProfile _profile; private ReleaseInfo _release; private ParsedBookInfo _parsedBookInfo; @@ -32,10 +32,10 @@ namespace NzbDrone.Core.Test.Download.Pending.PendingReleaseServiceTests [SetUp] public void Setup() { - _artist = Builder.CreateNew() + _author = Builder.CreateNew() .Build(); - _album = Builder.CreateNew() + _book = Builder.CreateNew() .Build(); _profile = new QualityProfile @@ -50,7 +50,7 @@ namespace NzbDrone.Core.Test.Download.Pending.PendingReleaseServiceTests }, }; - _artist.QualityProfile = new LazyLoaded(_profile); + _author.QualityProfile = new LazyLoaded(_profile); _release = Builder.CreateNew().Build(); @@ -58,8 +58,8 @@ namespace NzbDrone.Core.Test.Download.Pending.PendingReleaseServiceTests _parsedBookInfo.Quality = new QualityModel(Quality.MP3_320); _remoteBook = new RemoteBook(); - _remoteBook.Books = new List { _album }; - _remoteBook.Author = _artist; + _remoteBook.Books = new List { _book }; + _remoteBook.Author = _author; _remoteBook.ParsedBookInfo = _parsedBookInfo; _remoteBook.Release = _release; @@ -71,15 +71,15 @@ namespace NzbDrone.Core.Test.Download.Pending.PendingReleaseServiceTests Mocker.GetMock() .Setup(s => s.GetAuthor(It.IsAny())) - .Returns(_artist); + .Returns(_author); Mocker.GetMock() .Setup(s => s.GetAuthors(It.IsAny>())) - .Returns(new List { _artist }); + .Returns(new List { _author }); Mocker.GetMock() - .Setup(s => s.GetAlbums(It.IsAny(), _artist, null)) - .Returns(new List { _album }); + .Setup(s => s.GetBooks(It.IsAny(), _author, null)) + .Returns(new List { _book }); Mocker.GetMock() .Setup(s => s.PrioritizeDecisions(It.IsAny>())) @@ -94,7 +94,7 @@ namespace NzbDrone.Core.Test.Download.Pending.PendingReleaseServiceTests var heldReleases = Builder.CreateListOfSize(1) .All() - .With(h => h.AuthorId = _artist.Id) + .With(h => h.AuthorId = _author.Id) .With(h => h.Title = title) .With(h => h.Release = release) .Build(); diff --git a/src/NzbDrone.Core.Test/Download/RedownloadFailedDownloadServiceFixture.cs b/src/NzbDrone.Core.Test/Download/RedownloadFailedDownloadServiceFixture.cs index 77ddeac88..d560002ec 100644 --- a/src/NzbDrone.Core.Test/Download/RedownloadFailedDownloadServiceFixture.cs +++ b/src/NzbDrone.Core.Test/Download/RedownloadFailedDownloadServiceFixture.cs @@ -64,7 +64,7 @@ namespace NzbDrone.Core.Test.Download } [Test] - public void should_redownload_album_on_failure() + public void should_redownload_book_on_failure() { var failedEvent = new DownloadFailedEvent { @@ -87,7 +87,7 @@ namespace NzbDrone.Core.Test.Download } [Test] - public void should_redownload_multiple_albums_on_failure() + public void should_redownload_multiple_books_on_failure() { var failedEvent = new DownloadFailedEvent { @@ -111,9 +111,9 @@ namespace NzbDrone.Core.Test.Download } [Test] - public void should_redownload_artist_on_failure() + public void should_redownload_author_on_failure() { - // note that artist is set to have 3 albums in setup + // note that author is set to have 3 books in setup var failedEvent = new DownloadFailedEvent { AuthorId = 2, diff --git a/src/NzbDrone.Core.Test/Download/TrackedDownloads/TrackedDownloadAlreadyImportedFixture.cs b/src/NzbDrone.Core.Test/Download/TrackedDownloads/TrackedDownloadAlreadyImportedFixture.cs index 15a3df3c0..b8117cc96 100644 --- a/src/NzbDrone.Core.Test/Download/TrackedDownloads/TrackedDownloadAlreadyImportedFixture.cs +++ b/src/NzbDrone.Core.Test/Download/TrackedDownloads/TrackedDownloadAlreadyImportedFixture.cs @@ -13,17 +13,17 @@ namespace NzbDrone.Core.Test.Download.TrackedDownloads [TestFixture] public class TrackedDownloadAlreadyImportedFixture : CoreTest { - private List _albums; + private List _books; private TrackedDownload _trackedDownload; private List _historyItems; [SetUp] public void Setup() { - _albums = new List(); + _books = new List(); var remoteBook = Builder.CreateNew() - .With(r => r.Books = _albums) + .With(r => r.Books = _books) .Build(); _trackedDownload = Builder.CreateNew() @@ -35,7 +35,7 @@ namespace NzbDrone.Core.Test.Download.TrackedDownloads public void GivenEpisodes(int count) { - _albums.AddRange(Builder.CreateListOfSize(count) + _books.AddRange(Builder.CreateListOfSize(count) .BuildList()); } @@ -66,7 +66,7 @@ namespace NzbDrone.Core.Test.Download.TrackedDownloads { GivenEpisodes(1); - GivenHistoryForEpisode(_albums[0], HistoryEventType.Grabbed); + GivenHistoryForEpisode(_books[0], HistoryEventType.Grabbed); Subject.IsImported(_trackedDownload, _historyItems) .Should() @@ -78,8 +78,8 @@ namespace NzbDrone.Core.Test.Download.TrackedDownloads { GivenEpisodes(2); - GivenHistoryForEpisode(_albums[0], HistoryEventType.Grabbed); - GivenHistoryForEpisode(_albums[1], HistoryEventType.Grabbed); + GivenHistoryForEpisode(_books[0], HistoryEventType.Grabbed); + GivenHistoryForEpisode(_books[1], HistoryEventType.Grabbed); Subject.IsImported(_trackedDownload, _historyItems) .Should() @@ -91,8 +91,8 @@ namespace NzbDrone.Core.Test.Download.TrackedDownloads { GivenEpisodes(2); - GivenHistoryForEpisode(_albums[0], HistoryEventType.DownloadImported, HistoryEventType.Grabbed); - GivenHistoryForEpisode(_albums[1], HistoryEventType.Grabbed); + GivenHistoryForEpisode(_books[0], HistoryEventType.DownloadImported, HistoryEventType.Grabbed); + GivenHistoryForEpisode(_books[1], HistoryEventType.Grabbed); Subject.IsImported(_trackedDownload, _historyItems) .Should() @@ -104,7 +104,7 @@ namespace NzbDrone.Core.Test.Download.TrackedDownloads { GivenEpisodes(1); - GivenHistoryForEpisode(_albums[0], HistoryEventType.DownloadImported, HistoryEventType.Grabbed); + GivenHistoryForEpisode(_books[0], HistoryEventType.DownloadImported, HistoryEventType.Grabbed); Subject.IsImported(_trackedDownload, _historyItems) .Should() @@ -116,8 +116,8 @@ namespace NzbDrone.Core.Test.Download.TrackedDownloads { GivenEpisodes(2); - GivenHistoryForEpisode(_albums[0], HistoryEventType.DownloadImported, HistoryEventType.Grabbed); - GivenHistoryForEpisode(_albums[1], HistoryEventType.DownloadImported, HistoryEventType.Grabbed); + GivenHistoryForEpisode(_books[0], HistoryEventType.DownloadImported, HistoryEventType.Grabbed); + GivenHistoryForEpisode(_books[1], HistoryEventType.DownloadImported, HistoryEventType.Grabbed); Subject.IsImported(_trackedDownload, _historyItems) .Should() diff --git a/src/NzbDrone.Core.Test/Download/TrackedDownloads/TrackedDownloadServiceFixture.cs b/src/NzbDrone.Core.Test/Download/TrackedDownloads/TrackedDownloadServiceFixture.cs index f5f00c6de..ca61e9e29 100644 --- a/src/NzbDrone.Core.Test/Download/TrackedDownloads/TrackedDownloadServiceFixture.cs +++ b/src/NzbDrone.Core.Test/Download/TrackedDownloads/TrackedDownloadServiceFixture.cs @@ -27,7 +27,7 @@ namespace NzbDrone.Core.Test.Download.TrackedDownloads new History.History() { DownloadId = "35238", - SourceTitle = "Audio Artist - Audio Album [2018 - FLAC]", + SourceTitle = "Audio Author - Audio Book [2018 - FLAC]", AuthorId = 5, BookId = 4, } @@ -45,13 +45,13 @@ namespace NzbDrone.Core.Test.Download.TrackedDownloads Books = new List { new Book { Id = 4 } }, ParsedBookInfo = new ParsedBookInfo() { - BookTitle = "Audio Album", - AuthorName = "Audio Artist" + BookTitle = "Audio Book", + AuthorName = "Audio Author" } }; Mocker.GetMock() - .Setup(s => s.Map(It.Is(i => i.BookTitle == "Audio Album" && i.AuthorName == "Audio Artist"), It.IsAny(), It.IsAny>())) + .Setup(s => s.Map(It.Is(i => i.BookTitle == "Audio Book" && i.AuthorName == "Audio Author"), It.IsAny(), It.IsAny>())) .Returns(remoteBook); var client = new DownloadClientDefinition() @@ -82,7 +82,7 @@ namespace NzbDrone.Core.Test.Download.TrackedDownloads } [Test] - public void should_unmap_tracked_download_if_album_deleted() + public void should_unmap_tracked_download_if_book_deleted() { GivenDownloadHistory(); @@ -92,13 +92,13 @@ namespace NzbDrone.Core.Test.Download.TrackedDownloads Books = new List { new Book { Id = 4 } }, ParsedBookInfo = new ParsedBookInfo() { - BookTitle = "Audio Album", - AuthorName = "Audio Artist" + BookTitle = "Audio Book", + AuthorName = "Audio Author" } }; Mocker.GetMock() - .Setup(s => s.Map(It.Is(i => i.BookTitle == "Audio Album" && i.AuthorName == "Audio Artist"), It.IsAny(), It.IsAny>())) + .Setup(s => s.Map(It.Is(i => i.BookTitle == "Audio Book" && i.AuthorName == "Audio Author"), It.IsAny(), It.IsAny>())) .Returns(remoteBook); var client = new DownloadClientDefinition() @@ -109,7 +109,7 @@ namespace NzbDrone.Core.Test.Download.TrackedDownloads var item = new DownloadClientItem() { - Title = "Audio Artist - Audio Album [2018 - FLAC]", + Title = "Audio Author - Audio Book [2018 - FLAC]", DownloadId = "35238", DownloadClientInfo = new DownloadClientItemClientInfo { @@ -123,15 +123,15 @@ namespace NzbDrone.Core.Test.Download.TrackedDownloads var trackedDownload = Subject.TrackDownload(client, item); Subject.GetTrackedDownloads().Should().HaveCount(1); - // simulate deletion - album no longer maps + // simulate deletion - book no longer maps Mocker.GetMock() - .Setup(s => s.Map(It.Is(i => i.BookTitle == "Audio Album" && i.AuthorName == "Audio Artist"), It.IsAny(), It.IsAny>())) + .Setup(s => s.Map(It.Is(i => i.BookTitle == "Audio Book" && i.AuthorName == "Audio Author"), It.IsAny(), It.IsAny>())) .Returns(default(RemoteBook)); // handle deletion event Subject.Handle(new BookDeletedEvent(remoteBook.Books.First(), false, false)); - // verify download has null remote album + // verify download has null remote book var trackedDownloads = Subject.GetTrackedDownloads(); trackedDownloads.Should().HaveCount(1); trackedDownloads.First().RemoteBook.Should().BeNull(); diff --git a/src/NzbDrone.Core.Test/Files/Identification/CorruptFile.json b/src/NzbDrone.Core.Test/Files/Identification/CorruptFile.json index 540e661c1..1f374ac6a 100644 --- a/src/NzbDrone.Core.Test/Files/Identification/CorruptFile.json +++ b/src/NzbDrone.Core.Test/Files/Identification/CorruptFile.json @@ -2,114 +2,114 @@ "expectedMusicBrainzReleaseIds": [ "e34999c7-36bd-4d77-a10b-627b1b4f3904" ], - "libraryArtists": [ + "libraryAuthors": [ { - "artist": "401c3991-b76b-499d-8082-9f2df958ef78", + "author": "401c3991-b76b-499d-8082-9f2df958ef78", "metadataProfile": { "name": "Standard", - "primaryAlbumTypes": [ + "primaryBookTypes": [ { - "primaryAlbumType": { + "primaryBookType": { "id": 2, "name": "Single" }, "allowed": false }, { - "primaryAlbumType": { + "primaryBookType": { "id": 4, "name": "Other" }, "allowed": false }, { - "primaryAlbumType": { + "primaryBookType": { "id": 1, "name": "EP" }, "allowed": false }, { - "primaryAlbumType": { + "primaryBookType": { "id": 3, "name": "Broadcast" }, "allowed": false }, { - "primaryAlbumType": { + "primaryBookType": { "id": 0, - "name": "Album" + "name": "Book" }, "allowed": true } ], - "secondaryAlbumTypes": [ + "secondaryBookTypes": [ { - "secondaryAlbumType": { + "secondaryBookType": { "id": 0, "name": "Studio" }, "allowed": true }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 3, "name": "Spokenword" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 2, "name": "Soundtrack" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 7, "name": "Remix" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 9, "name": "Mixtape/Street" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 6, "name": "Live" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 4, "name": "Interview" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 8, "name": "DJ-mix" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 10, "name": "Demo" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 1, "name": "Compilation" }, @@ -156,8 +156,8 @@ { "path": "/media/nas/video/unpacked/music/Phil_Collins_The_Essential_Going_Back_(081227946470)_REMASTERED_DELUXE_EDITION_2CD_FLAC_2016_WRE/101-phil_collins-going_back.flac", "fileTrackInfo": { - "artistTitle": "Phil Collins The Essential Going Back (081227946470) REMASTERED DELUXE EDITION 2CD FLAC 2016 WRE 101", - "artistTitleInfo": { + "authorTitle": "Phil Collins The Essential Going Back (081227946470) REMASTERED DELUXE EDITION 2CD FLAC 2016 WRE 101", + "authorTitleInfo": { "title": "Phil Collins The Essential Going Back (081227946470) REMASTERED DELUXE EDITION 2CD FLAC 2016 WRE 101", "year": 0 }, @@ -183,9 +183,9 @@ "fileTrackInfo": { "title": "Girl (Why You Wanna Make Me Blue)", "cleanTitle": "Girl (Why You Wanna Make Me Blue)", - "artistTitle": "Phil Collins", - "albumTitle": "The Essential Going Back", - "artistTitleInfo": { + "authorTitle": "Phil Collins", + "bookTitle": "The Essential Going Back", + "authorTitleInfo": { "title": "Phil Collins", "year": 2016 }, @@ -221,9 +221,9 @@ "fileTrackInfo": { "title": "(Love Is Like A) Heatwave", "cleanTitle": "(Love Is Like A) Heatwave", - "artistTitle": "Phil Collins", - "albumTitle": "The Essential Going Back", - "artistTitleInfo": { + "authorTitle": "Phil Collins", + "bookTitle": "The Essential Going Back", + "authorTitleInfo": { "title": "Phil Collins", "year": 2016 }, @@ -259,9 +259,9 @@ "fileTrackInfo": { "title": "Some Of Your Lovin'", "cleanTitle": "Some Of Your Lovin'", - "artistTitle": "Phil Collins", - "albumTitle": "The Essential Going Back", - "artistTitleInfo": { + "authorTitle": "Phil Collins", + "bookTitle": "The Essential Going Back", + "authorTitleInfo": { "title": "Phil Collins", "year": 2016 }, @@ -297,9 +297,9 @@ "fileTrackInfo": { "title": "Going To A Go-Go", "cleanTitle": "Going To A Go-Go", - "artistTitle": "Phil Collins", - "albumTitle": "The Essential Going Back", - "artistTitleInfo": { + "authorTitle": "Phil Collins", + "bookTitle": "The Essential Going Back", + "authorTitleInfo": { "title": "Phil Collins", "year": 2016 }, @@ -335,9 +335,9 @@ "fileTrackInfo": { "title": "Papa Was A Rolling Stone", "cleanTitle": "Papa Was A Rolling Stone", - "artistTitle": "Phil Collins", - "albumTitle": "The Essential Going Back", - "artistTitleInfo": { + "authorTitle": "Phil Collins", + "bookTitle": "The Essential Going Back", + "authorTitleInfo": { "title": "Phil Collins", "year": 2016 }, @@ -373,9 +373,9 @@ "fileTrackInfo": { "title": "Loving You Is Sweeter Than Ever", "cleanTitle": "Loving You Is Sweeter Than Ever", - "artistTitle": "Phil Collins", - "albumTitle": "The Essential Going Back", - "artistTitleInfo": { + "authorTitle": "Phil Collins", + "bookTitle": "The Essential Going Back", + "authorTitleInfo": { "title": "Phil Collins", "year": 2016 }, @@ -411,9 +411,9 @@ "fileTrackInfo": { "title": "Something About You", "cleanTitle": "Something About You", - "artistTitle": "Phil Collins", - "albumTitle": "The Essential Going Back", - "artistTitleInfo": { + "authorTitle": "Phil Collins", + "bookTitle": "The Essential Going Back", + "authorTitleInfo": { "title": "Phil Collins", "year": 2016 }, @@ -449,9 +449,9 @@ "fileTrackInfo": { "title": "Talkin' About My Baby", "cleanTitle": "Talkin' About My Baby", - "artistTitle": "Phil Collins", - "albumTitle": "The Essential Going Back", - "artistTitleInfo": { + "authorTitle": "Phil Collins", + "bookTitle": "The Essential Going Back", + "authorTitleInfo": { "title": "Phil Collins", "year": 2016 }, @@ -487,9 +487,9 @@ "fileTrackInfo": { "title": "Do I Love You", "cleanTitle": "Do I Love You", - "artistTitle": "Phil Collins", - "albumTitle": "The Essential Going Back", - "artistTitleInfo": { + "authorTitle": "Phil Collins", + "bookTitle": "The Essential Going Back", + "authorTitleInfo": { "title": "Phil Collins", "year": 2016 }, @@ -525,9 +525,9 @@ "fileTrackInfo": { "title": "Never Dreamed You'd Leave In Summer", "cleanTitle": "Never Dreamed You'd Leave In Summer", - "artistTitle": "Phil Collins", - "albumTitle": "The Essential Going Back", - "artistTitleInfo": { + "authorTitle": "Phil Collins", + "bookTitle": "The Essential Going Back", + "authorTitleInfo": { "title": "Phil Collins", "year": 2016 }, @@ -563,9 +563,9 @@ "fileTrackInfo": { "title": "Take Me In Your Arms (Rock Me For A Little While)", "cleanTitle": "Take Me In Your Arms (Rock Me For A Little While)", - "artistTitle": "Phil Collins", - "albumTitle": "The Essential Going Back", - "artistTitleInfo": { + "authorTitle": "Phil Collins", + "bookTitle": "The Essential Going Back", + "authorTitleInfo": { "title": "Phil Collins", "year": 2016 }, @@ -601,9 +601,9 @@ "fileTrackInfo": { "title": "Too Many Fish In The Sea", "cleanTitle": "Too Many Fish In The Sea", - "artistTitle": "Phil Collins", - "albumTitle": "The Essential Going Back", - "artistTitleInfo": { + "authorTitle": "Phil Collins", + "bookTitle": "The Essential Going Back", + "authorTitleInfo": { "title": "Phil Collins", "year": 2016 }, @@ -639,9 +639,9 @@ "fileTrackInfo": { "title": "Uptight (Everything's Alright)", "cleanTitle": "Uptight (Everything's Alright)", - "artistTitle": "Phil Collins", - "albumTitle": "The Essential Going Back", - "artistTitleInfo": { + "authorTitle": "Phil Collins", + "bookTitle": "The Essential Going Back", + "authorTitleInfo": { "title": "Phil Collins", "year": 2016 }, @@ -677,9 +677,9 @@ "fileTrackInfo": { "title": "Signed, Sealed, Delivered (I'm Yours) Intro (Live)", "cleanTitle": "Signed, Sealed, Delivered (I'm Yours) Intro (Live)", - "artistTitle": "Phil Collins", - "albumTitle": "The Essential Going Back", - "artistTitleInfo": { + "authorTitle": "Phil Collins", + "bookTitle": "The Essential Going Back", + "authorTitleInfo": { "title": "Phil Collins", "year": 2016 }, @@ -715,9 +715,9 @@ "fileTrackInfo": { "title": "Ain't Too Proud To Beg (Live)", "cleanTitle": "Ain't Too Proud To Beg (Live)", - "artistTitle": "Phil Collins", - "albumTitle": "The Essential Going Back", - "artistTitleInfo": { + "authorTitle": "Phil Collins", + "bookTitle": "The Essential Going Back", + "authorTitleInfo": { "title": "Phil Collins", "year": 2016 }, @@ -753,9 +753,9 @@ "fileTrackInfo": { "title": "Girl (Why You Wanna Make Me Blue) (Live)", "cleanTitle": "Girl (Why You Wanna Make Me Blue) (Live)", - "artistTitle": "Phil Collins", - "albumTitle": "The Essential Going Back", - "artistTitleInfo": { + "authorTitle": "Phil Collins", + "bookTitle": "The Essential Going Back", + "authorTitleInfo": { "title": "Phil Collins", "year": 2016 }, @@ -791,9 +791,9 @@ "fileTrackInfo": { "title": "Dancing In The Street (Live)", "cleanTitle": "Dancing In The Street (Live)", - "artistTitle": "Phil Collins", - "albumTitle": "The Essential Going Back", - "artistTitleInfo": { + "authorTitle": "Phil Collins", + "bookTitle": "The Essential Going Back", + "authorTitleInfo": { "title": "Phil Collins", "year": 2016 }, @@ -829,9 +829,9 @@ "fileTrackInfo": { "title": "(Love Is Like A) Heatwave (Live)", "cleanTitle": "(Love Is Like A) Heatwave (Live)", - "artistTitle": "Phil Collins", - "albumTitle": "The Essential Going Back", - "artistTitleInfo": { + "authorTitle": "Phil Collins", + "bookTitle": "The Essential Going Back", + "authorTitleInfo": { "title": "Phil Collins", "year": 2016 }, @@ -867,9 +867,9 @@ "fileTrackInfo": { "title": "Papa Was A Rolling Stone (Live)", "cleanTitle": "Papa Was A Rolling Stone (Live)", - "artistTitle": "Phil Collins", - "albumTitle": "The Essential Going Back", - "artistTitleInfo": { + "authorTitle": "Phil Collins", + "bookTitle": "The Essential Going Back", + "authorTitleInfo": { "title": "Phil Collins", "year": 2016 }, @@ -905,9 +905,9 @@ "fileTrackInfo": { "title": "Never Dreamed You'd Leave In Summer (Live)", "cleanTitle": "Never Dreamed You'd Leave In Summer (Live)", - "artistTitle": "Phil Collins", - "albumTitle": "The Essential Going Back", - "artistTitleInfo": { + "authorTitle": "Phil Collins", + "bookTitle": "The Essential Going Back", + "authorTitleInfo": { "title": "Phil Collins", "year": 2016 }, @@ -943,9 +943,9 @@ "fileTrackInfo": { "title": "Talkin' About My Baby (Live)", "cleanTitle": "Talkin' About My Baby (Live)", - "artistTitle": "Phil Collins", - "albumTitle": "The Essential Going Back", - "artistTitleInfo": { + "authorTitle": "Phil Collins", + "bookTitle": "The Essential Going Back", + "authorTitleInfo": { "title": "Phil Collins", "year": 2016 }, @@ -981,9 +981,9 @@ "fileTrackInfo": { "title": "Do I Love You (Live)", "cleanTitle": "Do I Love You (Live)", - "artistTitle": "Phil Collins", - "albumTitle": "The Essential Going Back", - "artistTitleInfo": { + "authorTitle": "Phil Collins", + "bookTitle": "The Essential Going Back", + "authorTitleInfo": { "title": "Phil Collins", "year": 2016 }, @@ -1019,9 +1019,9 @@ "fileTrackInfo": { "title": "Ain't That Peculiar (Live)", "cleanTitle": "Ain't That Peculiar (Live)", - "artistTitle": "Phil Collins", - "albumTitle": "The Essential Going Back", - "artistTitleInfo": { + "authorTitle": "Phil Collins", + "bookTitle": "The Essential Going Back", + "authorTitleInfo": { "title": "Phil Collins", "year": 2016 }, @@ -1057,9 +1057,9 @@ "fileTrackInfo": { "title": "Too Many Fish In The Sea (Live)", "cleanTitle": "Too Many Fish In The Sea (Live)", - "artistTitle": "Phil Collins", - "albumTitle": "The Essential Going Back", - "artistTitleInfo": { + "authorTitle": "Phil Collins", + "bookTitle": "The Essential Going Back", + "authorTitleInfo": { "title": "Phil Collins", "year": 2016 }, @@ -1095,9 +1095,9 @@ "fileTrackInfo": { "title": "You Really Got A Hold On Me (Live)", "cleanTitle": "You Really Got A Hold On Me (Live)", - "artistTitle": "Phil Collins", - "albumTitle": "The Essential Going Back", - "artistTitleInfo": { + "authorTitle": "Phil Collins", + "bookTitle": "The Essential Going Back", + "authorTitleInfo": { "title": "Phil Collins", "year": 2016 }, @@ -1133,9 +1133,9 @@ "fileTrackInfo": { "title": "Something About You (Live)", "cleanTitle": "Something About You (Live)", - "artistTitle": "Phil Collins", - "albumTitle": "The Essential Going Back", - "artistTitleInfo": { + "authorTitle": "Phil Collins", + "bookTitle": "The Essential Going Back", + "authorTitleInfo": { "title": "Phil Collins", "year": 2016 }, @@ -1171,9 +1171,9 @@ "fileTrackInfo": { "title": "Uptight (Everything's Alright) (Live)", "cleanTitle": "Uptight (Everything's Alright) (Live)", - "artistTitle": "Phil Collins", - "albumTitle": "The Essential Going Back", - "artistTitleInfo": { + "authorTitle": "Phil Collins", + "bookTitle": "The Essential Going Back", + "authorTitleInfo": { "title": "Phil Collins", "year": 2016 }, @@ -1209,9 +1209,9 @@ "fileTrackInfo": { "title": "My Girl (Live)", "cleanTitle": "My Girl (Live)", - "artistTitle": "Phil Collins", - "albumTitle": "The Essential Going Back", - "artistTitleInfo": { + "authorTitle": "Phil Collins", + "bookTitle": "The Essential Going Back", + "authorTitleInfo": { "title": "Phil Collins", "year": 2016 }, @@ -1247,9 +1247,9 @@ "fileTrackInfo": { "title": "Going Back (Live)", "cleanTitle": "Going Back (Live)", - "artistTitle": "Phil Collins", - "albumTitle": "The Essential Going Back", - "artistTitleInfo": { + "authorTitle": "Phil Collins", + "bookTitle": "The Essential Going Back", + "authorTitleInfo": { "title": "Phil Collins", "year": 2016 }, diff --git a/src/NzbDrone.Core.Test/Files/Identification/FilesWithMBIds.json b/src/NzbDrone.Core.Test/Files/Identification/FilesWithMBIds.json index f82120970..a6398b07e 100644 --- a/src/NzbDrone.Core.Test/Files/Identification/FilesWithMBIds.json +++ b/src/NzbDrone.Core.Test/Files/Identification/FilesWithMBIds.json @@ -4,114 +4,114 @@ "97189482-89ee-4d31-90c7-ba07b412d7f9", "9105a5b3-eb68-3a03-9aa8-f3495e602a4f" ], - "libraryArtists": [ + "libraryAuthors": [ { - "artist": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", + "author": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", "metadataProfile": { "name": "Standard", - "primaryAlbumTypes": [ + "primaryBookTypes": [ { - "primaryAlbumType": { + "primaryBookType": { "id": 2, "name": "Single" }, "allowed": false }, { - "primaryAlbumType": { + "primaryBookType": { "id": 4, "name": "Other" }, "allowed": false }, { - "primaryAlbumType": { + "primaryBookType": { "id": 1, "name": "EP" }, "allowed": false }, { - "primaryAlbumType": { + "primaryBookType": { "id": 3, "name": "Broadcast" }, "allowed": false }, { - "primaryAlbumType": { + "primaryBookType": { "id": 0, - "name": "Album" + "name": "Book" }, "allowed": true } ], - "secondaryAlbumTypes": [ + "secondaryBookTypes": [ { - "secondaryAlbumType": { + "secondaryBookType": { "id": 0, "name": "Studio" }, "allowed": true }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 3, "name": "Spokenword" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 2, "name": "Soundtrack" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 7, "name": "Remix" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 9, "name": "Mixtape/Street" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 6, "name": "Live" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 4, "name": "Interview" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 8, "name": "DJ-mix" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 10, "name": "Demo" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 1, "name": "Compilation" }, @@ -160,14 +160,14 @@ "fileTrackInfo": { "title": "Rolling in the Deep", "cleanTitle": "Rolling in the Deep", - "artistTitle": "Adele", - "albumTitle": "21", - "artistTitleInfo": { + "authorTitle": "Adele", + "bookTitle": "21", + "authorTitleInfo": { "title": "Adele", "year": 2011 }, - "artistMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", - "albumMBId": "e4174758-d333-4a8e-a31f-dd0edd51518e", + "authorMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", + "bookMBId": "e4174758-d333-4a8e-a31f-dd0edd51518e", "releaseMBId": "768bc7f7-6b91-4b57-8a7b-1508636719e6", "recordingMBId": "1a13c710-4b7e-4701-8968-cd61f2e58110", "discNumber": 1, @@ -207,14 +207,14 @@ "fileTrackInfo": { "title": "Rumour Has It", "cleanTitle": "Rumour Has It", - "artistTitle": "Adele", - "albumTitle": "21", - "artistTitleInfo": { + "authorTitle": "Adele", + "bookTitle": "21", + "authorTitleInfo": { "title": "Adele", "year": 2011 }, - "artistMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", - "albumMBId": "e4174758-d333-4a8e-a31f-dd0edd51518e", + "authorMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", + "bookMBId": "e4174758-d333-4a8e-a31f-dd0edd51518e", "releaseMBId": "768bc7f7-6b91-4b57-8a7b-1508636719e6", "recordingMBId": "797ae656-81d4-4d89-bddb-eca56f77ba72", "discNumber": 1, @@ -254,14 +254,14 @@ "fileTrackInfo": { "title": "Turning Tables", "cleanTitle": "Turning Tables", - "artistTitle": "Adele", - "albumTitle": "21", - "artistTitleInfo": { + "authorTitle": "Adele", + "bookTitle": "21", + "authorTitleInfo": { "title": "Adele", "year": 2011 }, - "artistMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", - "albumMBId": "e4174758-d333-4a8e-a31f-dd0edd51518e", + "authorMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", + "bookMBId": "e4174758-d333-4a8e-a31f-dd0edd51518e", "releaseMBId": "768bc7f7-6b91-4b57-8a7b-1508636719e6", "recordingMBId": "5ac6c47f-bce8-4718-8bc6-f1de40693d14", "discNumber": 1, @@ -301,14 +301,14 @@ "fileTrackInfo": { "title": "Don’t You Remember", "cleanTitle": "Don’t You Remember", - "artistTitle": "Adele", - "albumTitle": "21", - "artistTitleInfo": { + "authorTitle": "Adele", + "bookTitle": "21", + "authorTitleInfo": { "title": "Adele", "year": 2011 }, - "artistMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", - "albumMBId": "e4174758-d333-4a8e-a31f-dd0edd51518e", + "authorMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", + "bookMBId": "e4174758-d333-4a8e-a31f-dd0edd51518e", "releaseMBId": "768bc7f7-6b91-4b57-8a7b-1508636719e6", "recordingMBId": "f5057d26-1aac-47fe-b766-18c5a28927b1", "discNumber": 1, @@ -348,14 +348,14 @@ "fileTrackInfo": { "title": "Set Fire to the Rain", "cleanTitle": "Set Fire to the Rain", - "artistTitle": "Adele", - "albumTitle": "21", - "artistTitleInfo": { + "authorTitle": "Adele", + "bookTitle": "21", + "authorTitleInfo": { "title": "Adele", "year": 2011 }, - "artistMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", - "albumMBId": "e4174758-d333-4a8e-a31f-dd0edd51518e", + "authorMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", + "bookMBId": "e4174758-d333-4a8e-a31f-dd0edd51518e", "releaseMBId": "768bc7f7-6b91-4b57-8a7b-1508636719e6", "recordingMBId": "d1e0a99e-1894-457b-ba6a-985eeef4d0c4", "discNumber": 1, @@ -395,14 +395,14 @@ "fileTrackInfo": { "title": "He Won’t Go", "cleanTitle": "He Won’t Go", - "artistTitle": "Adele", - "albumTitle": "21", - "artistTitleInfo": { + "authorTitle": "Adele", + "bookTitle": "21", + "authorTitleInfo": { "title": "Adele", "year": 2011 }, - "artistMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", - "albumMBId": "e4174758-d333-4a8e-a31f-dd0edd51518e", + "authorMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", + "bookMBId": "e4174758-d333-4a8e-a31f-dd0edd51518e", "releaseMBId": "768bc7f7-6b91-4b57-8a7b-1508636719e6", "recordingMBId": "4dd209b9-80fd-4e11-8093-3bab2db810fc", "discNumber": 1, @@ -442,14 +442,14 @@ "fileTrackInfo": { "title": "Take It All", "cleanTitle": "Take It All", - "artistTitle": "Adele", - "albumTitle": "21", - "artistTitleInfo": { + "authorTitle": "Adele", + "bookTitle": "21", + "authorTitleInfo": { "title": "Adele", "year": 2011 }, - "artistMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", - "albumMBId": "e4174758-d333-4a8e-a31f-dd0edd51518e", + "authorMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", + "bookMBId": "e4174758-d333-4a8e-a31f-dd0edd51518e", "releaseMBId": "768bc7f7-6b91-4b57-8a7b-1508636719e6", "recordingMBId": "4f515654-052b-4631-8a78-57ea362cd18a", "discNumber": 1, @@ -489,14 +489,14 @@ "fileTrackInfo": { "title": "I’ll Be Waiting", "cleanTitle": "I’ll Be Waiting", - "artistTitle": "Adele", - "albumTitle": "21", - "artistTitleInfo": { + "authorTitle": "Adele", + "bookTitle": "21", + "authorTitleInfo": { "title": "Adele", "year": 2011 }, - "artistMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", - "albumMBId": "e4174758-d333-4a8e-a31f-dd0edd51518e", + "authorMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", + "bookMBId": "e4174758-d333-4a8e-a31f-dd0edd51518e", "releaseMBId": "768bc7f7-6b91-4b57-8a7b-1508636719e6", "recordingMBId": "dd2d2073-50c4-438a-91cc-a1fea1c81b12", "discNumber": 1, @@ -536,14 +536,14 @@ "fileTrackInfo": { "title": "One and Only", "cleanTitle": "One and Only", - "artistTitle": "Adele", - "albumTitle": "21", - "artistTitleInfo": { + "authorTitle": "Adele", + "bookTitle": "21", + "authorTitleInfo": { "title": "Adele", "year": 2011 }, - "artistMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", - "albumMBId": "e4174758-d333-4a8e-a31f-dd0edd51518e", + "authorMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", + "bookMBId": "e4174758-d333-4a8e-a31f-dd0edd51518e", "releaseMBId": "768bc7f7-6b91-4b57-8a7b-1508636719e6", "recordingMBId": "04f96056-91ac-4b64-af89-24c596013f05", "discNumber": 1, @@ -583,14 +583,14 @@ "fileTrackInfo": { "title": "Lovesong", "cleanTitle": "Lovesong", - "artistTitle": "Adele", - "albumTitle": "21", - "artistTitleInfo": { + "authorTitle": "Adele", + "bookTitle": "21", + "authorTitleInfo": { "title": "Adele", "year": 2011 }, - "artistMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", - "albumMBId": "e4174758-d333-4a8e-a31f-dd0edd51518e", + "authorMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", + "bookMBId": "e4174758-d333-4a8e-a31f-dd0edd51518e", "releaseMBId": "768bc7f7-6b91-4b57-8a7b-1508636719e6", "recordingMBId": "7932ba40-a0d3-4a7e-8d85-b351fd33317e", "discNumber": 1, @@ -630,14 +630,14 @@ "fileTrackInfo": { "title": "Someone Like You", "cleanTitle": "Someone Like You", - "artistTitle": "Adele", - "albumTitle": "21", - "artistTitleInfo": { + "authorTitle": "Adele", + "bookTitle": "21", + "authorTitleInfo": { "title": "Adele", "year": 2011 }, - "artistMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", - "albumMBId": "e4174758-d333-4a8e-a31f-dd0edd51518e", + "authorMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", + "bookMBId": "e4174758-d333-4a8e-a31f-dd0edd51518e", "releaseMBId": "768bc7f7-6b91-4b57-8a7b-1508636719e6", "recordingMBId": "028efe7f-cdfb-4135-846f-848f2fff15b1", "discNumber": 1, @@ -677,14 +677,14 @@ "fileTrackInfo": { "title": "I Found a Boy", "cleanTitle": "I Found a Boy", - "artistTitle": "Adele", - "albumTitle": "21", - "artistTitleInfo": { + "authorTitle": "Adele", + "bookTitle": "21", + "authorTitleInfo": { "title": "Adele", "year": 2011 }, - "artistMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", - "albumMBId": "e4174758-d333-4a8e-a31f-dd0edd51518e", + "authorMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", + "bookMBId": "e4174758-d333-4a8e-a31f-dd0edd51518e", "releaseMBId": "768bc7f7-6b91-4b57-8a7b-1508636719e6", "recordingMBId": "a027bfd5-c002-4a85-906e-f2c613c45022", "discNumber": 1, @@ -724,14 +724,14 @@ "fileTrackInfo": { "title": "Turning Tables (live acoustic)", "cleanTitle": "Turning Tables (live acoustic)", - "artistTitle": "Adele", - "albumTitle": "21", - "artistTitleInfo": { + "authorTitle": "Adele", + "bookTitle": "21", + "authorTitleInfo": { "title": "Adele", "year": 2011 }, - "artistMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", - "albumMBId": "e4174758-d333-4a8e-a31f-dd0edd51518e", + "authorMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", + "bookMBId": "e4174758-d333-4a8e-a31f-dd0edd51518e", "releaseMBId": "768bc7f7-6b91-4b57-8a7b-1508636719e6", "recordingMBId": "b2e47e6d-b69a-420a-aa52-31d3f38978ed", "discNumber": 1, @@ -771,14 +771,14 @@ "fileTrackInfo": { "title": "Don’t You Remember (live acoustic)", "cleanTitle": "Don’t You Remember (live acoustic)", - "artistTitle": "Adele", - "albumTitle": "21", - "artistTitleInfo": { + "authorTitle": "Adele", + "bookTitle": "21", + "authorTitleInfo": { "title": "Adele", "year": 2011 }, - "artistMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", - "albumMBId": "e4174758-d333-4a8e-a31f-dd0edd51518e", + "authorMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", + "bookMBId": "e4174758-d333-4a8e-a31f-dd0edd51518e", "releaseMBId": "768bc7f7-6b91-4b57-8a7b-1508636719e6", "recordingMBId": "b19a4995-7fbf-406a-8ff1-db5b8896bd28", "discNumber": 1, @@ -818,14 +818,14 @@ "fileTrackInfo": { "title": "Someone Like You (live acoustic)", "cleanTitle": "Someone Like You (live acoustic)", - "artistTitle": "Adele", - "albumTitle": "21", - "artistTitleInfo": { + "authorTitle": "Adele", + "bookTitle": "21", + "authorTitleInfo": { "title": "Adele", "year": 2011 }, - "artistMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", - "albumMBId": "e4174758-d333-4a8e-a31f-dd0edd51518e", + "authorMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", + "bookMBId": "e4174758-d333-4a8e-a31f-dd0edd51518e", "releaseMBId": "768bc7f7-6b91-4b57-8a7b-1508636719e6", "recordingMBId": "c365d988-0f2d-4313-9c5f-a557c30f027b", "discNumber": 1, @@ -865,14 +865,14 @@ "fileTrackInfo": { "title": "Hello", "cleanTitle": "Hello", - "artistTitle": "Adele", - "albumTitle": "25", - "artistTitleInfo": { + "authorTitle": "Adele", + "bookTitle": "25", + "authorTitleInfo": { "title": "Adele", "year": 2015 }, - "artistMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", - "albumMBId": "5537624c-3d2f-4f5c-8099-df916082c85c", + "authorMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", + "bookMBId": "5537624c-3d2f-4f5c-8099-df916082c85c", "releaseMBId": "97189482-89ee-4d31-90c7-ba07b412d7f9", "recordingMBId": "0a8e8d55-4b83-4f8a-9732-fbb5ded9f344", "discNumber": 1, @@ -912,14 +912,14 @@ "fileTrackInfo": { "title": "Send My Love (to Your New Lover)", "cleanTitle": "Send My Love (to Your New Lover)", - "artistTitle": "Adele", - "albumTitle": "25", - "artistTitleInfo": { + "authorTitle": "Adele", + "bookTitle": "25", + "authorTitleInfo": { "title": "Adele", "year": 2015 }, - "artistMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", - "albumMBId": "5537624c-3d2f-4f5c-8099-df916082c85c", + "authorMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", + "bookMBId": "5537624c-3d2f-4f5c-8099-df916082c85c", "releaseMBId": "97189482-89ee-4d31-90c7-ba07b412d7f9", "recordingMBId": "1e74cd4c-cfa7-4bdb-99da-41869f5f1171", "discNumber": 1, @@ -959,14 +959,14 @@ "fileTrackInfo": { "title": "I Miss You", "cleanTitle": "I Miss You", - "artistTitle": "Adele", - "albumTitle": "25", - "artistTitleInfo": { + "authorTitle": "Adele", + "bookTitle": "25", + "authorTitleInfo": { "title": "Adele", "year": 2015 }, - "artistMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", - "albumMBId": "5537624c-3d2f-4f5c-8099-df916082c85c", + "authorMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", + "bookMBId": "5537624c-3d2f-4f5c-8099-df916082c85c", "releaseMBId": "97189482-89ee-4d31-90c7-ba07b412d7f9", "recordingMBId": "20594682-fa10-43e8-80fa-b116c68f1b7f", "discNumber": 1, @@ -1006,14 +1006,14 @@ "fileTrackInfo": { "title": "When We Were Young", "cleanTitle": "When We Were Young", - "artistTitle": "Adele", - "albumTitle": "25", - "artistTitleInfo": { + "authorTitle": "Adele", + "bookTitle": "25", + "authorTitleInfo": { "title": "Adele", "year": 2015 }, - "artistMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", - "albumMBId": "5537624c-3d2f-4f5c-8099-df916082c85c", + "authorMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", + "bookMBId": "5537624c-3d2f-4f5c-8099-df916082c85c", "releaseMBId": "97189482-89ee-4d31-90c7-ba07b412d7f9", "recordingMBId": "c5ad2611-071b-4003-bb22-eee8b4f48fe9", "discNumber": 1, @@ -1053,14 +1053,14 @@ "fileTrackInfo": { "title": "Remedy", "cleanTitle": "Remedy", - "artistTitle": "Adele", - "albumTitle": "25", - "artistTitleInfo": { + "authorTitle": "Adele", + "bookTitle": "25", + "authorTitleInfo": { "title": "Adele", "year": 2015 }, - "artistMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", - "albumMBId": "5537624c-3d2f-4f5c-8099-df916082c85c", + "authorMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", + "bookMBId": "5537624c-3d2f-4f5c-8099-df916082c85c", "releaseMBId": "97189482-89ee-4d31-90c7-ba07b412d7f9", "recordingMBId": "cdc9f701-60b4-4e37-a94f-87d0e396f2bc", "discNumber": 1, @@ -1100,14 +1100,14 @@ "fileTrackInfo": { "title": "Water Under the Bridge", "cleanTitle": "Water Under the Bridge", - "artistTitle": "Adele", - "albumTitle": "25", - "artistTitleInfo": { + "authorTitle": "Adele", + "bookTitle": "25", + "authorTitleInfo": { "title": "Adele", "year": 2015 }, - "artistMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", - "albumMBId": "5537624c-3d2f-4f5c-8099-df916082c85c", + "authorMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", + "bookMBId": "5537624c-3d2f-4f5c-8099-df916082c85c", "releaseMBId": "97189482-89ee-4d31-90c7-ba07b412d7f9", "recordingMBId": "ade2f0f3-39bf-46ad-a44d-7fc4a8069db7", "discNumber": 1, @@ -1147,14 +1147,14 @@ "fileTrackInfo": { "title": "River Lea", "cleanTitle": "River Lea", - "artistTitle": "Adele", - "albumTitle": "25", - "artistTitleInfo": { + "authorTitle": "Adele", + "bookTitle": "25", + "authorTitleInfo": { "title": "Adele", "year": 2015 }, - "artistMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", - "albumMBId": "5537624c-3d2f-4f5c-8099-df916082c85c", + "authorMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", + "bookMBId": "5537624c-3d2f-4f5c-8099-df916082c85c", "releaseMBId": "97189482-89ee-4d31-90c7-ba07b412d7f9", "recordingMBId": "b7c37d3d-feea-4a73-8346-9e2392a292e6", "discNumber": 1, @@ -1194,14 +1194,14 @@ "fileTrackInfo": { "title": "Love in the Dark", "cleanTitle": "Love in the Dark", - "artistTitle": "Adele", - "albumTitle": "25", - "artistTitleInfo": { + "authorTitle": "Adele", + "bookTitle": "25", + "authorTitleInfo": { "title": "Adele", "year": 2015 }, - "artistMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", - "albumMBId": "5537624c-3d2f-4f5c-8099-df916082c85c", + "authorMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", + "bookMBId": "5537624c-3d2f-4f5c-8099-df916082c85c", "releaseMBId": "97189482-89ee-4d31-90c7-ba07b412d7f9", "recordingMBId": "dedf519d-8eca-4756-9f93-c390308e0c1b", "discNumber": 1, @@ -1241,14 +1241,14 @@ "fileTrackInfo": { "title": "Million Years Ago", "cleanTitle": "Million Years Ago", - "artistTitle": "Adele", - "albumTitle": "25", - "artistTitleInfo": { + "authorTitle": "Adele", + "bookTitle": "25", + "authorTitleInfo": { "title": "Adele", "year": 2015 }, - "artistMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", - "albumMBId": "5537624c-3d2f-4f5c-8099-df916082c85c", + "authorMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", + "bookMBId": "5537624c-3d2f-4f5c-8099-df916082c85c", "releaseMBId": "97189482-89ee-4d31-90c7-ba07b412d7f9", "recordingMBId": "870c62b6-ba2c-4873-b962-6289128e4a90", "discNumber": 1, @@ -1288,14 +1288,14 @@ "fileTrackInfo": { "title": "All I Ask", "cleanTitle": "All I Ask", - "artistTitle": "Adele", - "albumTitle": "25", - "artistTitleInfo": { + "authorTitle": "Adele", + "bookTitle": "25", + "authorTitleInfo": { "title": "Adele", "year": 2015 }, - "artistMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", - "albumMBId": "5537624c-3d2f-4f5c-8099-df916082c85c", + "authorMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", + "bookMBId": "5537624c-3d2f-4f5c-8099-df916082c85c", "releaseMBId": "97189482-89ee-4d31-90c7-ba07b412d7f9", "recordingMBId": "bfe7a94e-4161-4802-8916-efe57e611842", "discNumber": 1, @@ -1335,14 +1335,14 @@ "fileTrackInfo": { "title": "Sweetest Devotion", "cleanTitle": "Sweetest Devotion", - "artistTitle": "Adele", - "albumTitle": "25", - "artistTitleInfo": { + "authorTitle": "Adele", + "bookTitle": "25", + "authorTitleInfo": { "title": "Adele", "year": 2015 }, - "artistMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", - "albumMBId": "5537624c-3d2f-4f5c-8099-df916082c85c", + "authorMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", + "bookMBId": "5537624c-3d2f-4f5c-8099-df916082c85c", "releaseMBId": "97189482-89ee-4d31-90c7-ba07b412d7f9", "recordingMBId": "b2c8aed1-777d-409b-941e-7d4c594697a2", "discNumber": 1, @@ -1382,14 +1382,14 @@ "fileTrackInfo": { "title": "Right as Rain", "cleanTitle": "Right as Rain", - "artistTitle": "Adele", - "albumTitle": "19", - "artistTitleInfo": { + "authorTitle": "Adele", + "bookTitle": "19", + "authorTitleInfo": { "title": "Adele", "year": 2008 }, - "artistMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", - "albumMBId": "9796da06-2d59-3176-8598-2105f31ee54a", + "authorMBId": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", + "bookMBId": "9796da06-2d59-3176-8598-2105f31ee54a", "releaseMBId": "9105a5b3-eb68-3a03-9aa8-f3495e602a4f", "recordingMBId": "e5aa0386-15cc-43a8-a059-b14fc39b8301", "trackMBId": "d98b4797-f47e-3acf-b334-54c71c9cb608", diff --git a/src/NzbDrone.Core.Test/Files/Identification/FilesWithoutTags.json b/src/NzbDrone.Core.Test/Files/Identification/FilesWithoutTags.json index a28e3a162..bd3b4ee49 100644 --- a/src/NzbDrone.Core.Test/Files/Identification/FilesWithoutTags.json +++ b/src/NzbDrone.Core.Test/Files/Identification/FilesWithoutTags.json @@ -2,114 +2,114 @@ "expectedMusicBrainzReleaseIds": [ "9105a5b3-eb68-3a03-9aa8-f3495e602a4f" ], - "libraryArtists": [ + "libraryAuthors": [ { - "artist": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", + "author": "cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493", "metadataProfile": { "name": "Standard", - "primaryAlbumTypes": [ + "primaryBookTypes": [ { - "primaryAlbumType": { + "primaryBookType": { "id": 2, "name": "Single" }, "allowed": false }, { - "primaryAlbumType": { + "primaryBookType": { "id": 4, "name": "Other" }, "allowed": false }, { - "primaryAlbumType": { + "primaryBookType": { "id": 1, "name": "EP" }, "allowed": false }, { - "primaryAlbumType": { + "primaryBookType": { "id": 3, "name": "Broadcast" }, "allowed": false }, { - "primaryAlbumType": { + "primaryBookType": { "id": 0, - "name": "Album" + "name": "Book" }, "allowed": true } ], - "secondaryAlbumTypes": [ + "secondaryBookTypes": [ { - "secondaryAlbumType": { + "secondaryBookType": { "id": 0, "name": "Studio" }, "allowed": true }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 3, "name": "Spokenword" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 2, "name": "Soundtrack" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 7, "name": "Remix" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 9, "name": "Mixtape/Street" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 6, "name": "Live" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 4, "name": "Interview" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 8, "name": "DJ-mix" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 10, "name": "Demo" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 1, "name": "Compilation" }, @@ -156,7 +156,7 @@ { "path": "/mnt/data1/ImportTest/19_no_tags/CD1/Adele - 19 - 101 - Daydreamer.mp3", "fileTrackInfo": { - "artistTitleInfo": { + "authorTitleInfo": { "year": 0 }, "discNumber": 0, @@ -188,7 +188,7 @@ { "path": "/mnt/data1/ImportTest/19_no_tags/CD1/Adele - 19 - 102 - Best for Last.mp3", "fileTrackInfo": { - "artistTitleInfo": { + "authorTitleInfo": { "year": 0 }, "discNumber": 0, @@ -220,7 +220,7 @@ { "path": "/mnt/data1/ImportTest/19_no_tags/CD1/Adele - 19 - 103 - Chasing Pavements.mp3", "fileTrackInfo": { - "artistTitleInfo": { + "authorTitleInfo": { "year": 0 }, "discNumber": 0, @@ -252,7 +252,7 @@ { "path": "/mnt/data1/ImportTest/19_no_tags/CD1/Adele - 19 - 104 - Cold Shoulder.mp3", "fileTrackInfo": { - "artistTitleInfo": { + "authorTitleInfo": { "year": 0 }, "discNumber": 0, @@ -284,7 +284,7 @@ { "path": "/mnt/data1/ImportTest/19_no_tags/CD1/Adele - 19 - 105 - Crazy for You.mp3", "fileTrackInfo": { - "artistTitleInfo": { + "authorTitleInfo": { "year": 0 }, "discNumber": 0, @@ -316,7 +316,7 @@ { "path": "/mnt/data1/ImportTest/19_no_tags/CD1/Adele - 19 - 106 - Melt My Heart to Stone.mp3", "fileTrackInfo": { - "artistTitleInfo": { + "authorTitleInfo": { "year": 0 }, "discNumber": 0, @@ -348,7 +348,7 @@ { "path": "/mnt/data1/ImportTest/19_no_tags/CD1/Adele - 19 - 107 - First Love.mp3", "fileTrackInfo": { - "artistTitleInfo": { + "authorTitleInfo": { "year": 0 }, "discNumber": 0, @@ -380,7 +380,7 @@ { "path": "/mnt/data1/ImportTest/19_no_tags/CD1/Adele - 19 - 108 - Right as Rain.mp3", "fileTrackInfo": { - "artistTitleInfo": { + "authorTitleInfo": { "year": 0 }, "discNumber": 0, @@ -412,7 +412,7 @@ { "path": "/mnt/data1/ImportTest/19_no_tags/CD1/Adele - 19 - 109 - Make You Feel My Love.mp3", "fileTrackInfo": { - "artistTitleInfo": { + "authorTitleInfo": { "year": 0 }, "discNumber": 0, @@ -444,7 +444,7 @@ { "path": "/mnt/data1/ImportTest/19_no_tags/CD1/Adele - 19 - 110 - My Same.mp3", "fileTrackInfo": { - "artistTitleInfo": { + "authorTitleInfo": { "year": 0 }, "discNumber": 0, @@ -476,7 +476,7 @@ { "path": "/mnt/data1/ImportTest/19_no_tags/CD1/Adele - 19 - 111 - Tired.mp3", "fileTrackInfo": { - "artistTitleInfo": { + "authorTitleInfo": { "year": 0 }, "discNumber": 0, @@ -508,7 +508,7 @@ { "path": "/mnt/data1/ImportTest/19_no_tags/CD1/Adele - 19 - 112 - Hometown Glory.mp3", "fileTrackInfo": { - "artistTitleInfo": { + "authorTitleInfo": { "year": 0 }, "discNumber": 0, @@ -540,7 +540,7 @@ { "path": "/mnt/data1/ImportTest/19_no_tags/CD2/Adele - 19 - 201 - Chasing Pavements.mp3", "fileTrackInfo": { - "artistTitleInfo": { + "authorTitleInfo": { "year": 0 }, "discNumber": 0, @@ -572,7 +572,7 @@ { "path": "/mnt/data1/ImportTest/19_no_tags/CD2/Adele - 19 - 202 - Melt My Heart to Stone.mp3", "fileTrackInfo": { - "artistTitleInfo": { + "authorTitleInfo": { "year": 0 }, "discNumber": 0, @@ -604,7 +604,7 @@ { "path": "/mnt/data1/ImportTest/19_no_tags/CD2/Adele - 19 - 203 - That's It, I Quit, I'm Moving On.mp3", "fileTrackInfo": { - "artistTitleInfo": { + "authorTitleInfo": { "year": 0 }, "discNumber": 0, @@ -636,7 +636,7 @@ { "path": "/mnt/data1/ImportTest/19_no_tags/CD2/Adele - 19 - 204 - Crazy for You.mp3", "fileTrackInfo": { - "artistTitleInfo": { + "authorTitleInfo": { "year": 0 }, "discNumber": 0, @@ -668,7 +668,7 @@ { "path": "/mnt/data1/ImportTest/19_no_tags/CD2/Adele - 19 - 205 - Right as Rain.mp3", "fileTrackInfo": { - "artistTitleInfo": { + "authorTitleInfo": { "year": 0 }, "discNumber": 0, @@ -700,7 +700,7 @@ { "path": "/mnt/data1/ImportTest/19_no_tags/CD2/Adele - 19 - 206 - My Same.mp3", "fileTrackInfo": { - "artistTitleInfo": { + "authorTitleInfo": { "year": 0 }, "discNumber": 0, @@ -732,7 +732,7 @@ { "path": "/mnt/data1/ImportTest/19_no_tags/CD2/Adele - 19 - 207 - Make You Feel My Love.mp3", "fileTrackInfo": { - "artistTitleInfo": { + "authorTitleInfo": { "year": 0 }, "discNumber": 0, @@ -764,7 +764,7 @@ { "path": "/mnt/data1/ImportTest/19_no_tags/CD2/Adele - 19 - 208 - Daydreamer.mp3", "fileTrackInfo": { - "artistTitleInfo": { + "authorTitleInfo": { "year": 0 }, "discNumber": 0, @@ -796,7 +796,7 @@ { "path": "/mnt/data1/ImportTest/19_no_tags/CD2/Adele - 19 - 209 - Hometown Glory.mp3", "fileTrackInfo": { - "artistTitleInfo": { + "authorTitleInfo": { "year": 0 }, "discNumber": 0, @@ -828,7 +828,7 @@ { "path": "/mnt/data1/ImportTest/19_no_tags/CD2/Adele - 19 - 210 - Many Shades of Black.mp3", "fileTrackInfo": { - "artistTitleInfo": { + "authorTitleInfo": { "year": 0 }, "discNumber": 0, diff --git a/src/NzbDrone.Core.Test/Files/Identification/InconsistentTyposInAlbum.json b/src/NzbDrone.Core.Test/Files/Identification/InconsistentTyposInAlbum.json index 2d2a37699..bff3c8305 100644 --- a/src/NzbDrone.Core.Test/Files/Identification/InconsistentTyposInAlbum.json +++ b/src/NzbDrone.Core.Test/Files/Identification/InconsistentTyposInAlbum.json @@ -2,114 +2,114 @@ "expectedMusicBrainzReleaseIds": [ "134f5f3e-8b5f-46ab-809d-8c0dbc794f3e" ], - "libraryArtists": [ + "libraryAuthors": [ { - "artist": "c296e10c-110a-4103-9e77-47bfebb7fb2e", + "author": "c296e10c-110a-4103-9e77-47bfebb7fb2e", "metadataProfile": { "name": "Standard", - "primaryAlbumTypes": [ + "primaryBookTypes": [ { - "primaryAlbumType": { + "primaryBookType": { "id": 2, "name": "Single" }, "allowed": false }, { - "primaryAlbumType": { + "primaryBookType": { "id": 4, "name": "Other" }, "allowed": false }, { - "primaryAlbumType": { + "primaryBookType": { "id": 1, "name": "EP" }, "allowed": false }, { - "primaryAlbumType": { + "primaryBookType": { "id": 3, "name": "Broadcast" }, "allowed": false }, { - "primaryAlbumType": { + "primaryBookType": { "id": 0, - "name": "Album" + "name": "Book" }, "allowed": true } ], - "secondaryAlbumTypes": [ + "secondaryBookTypes": [ { - "secondaryAlbumType": { + "secondaryBookType": { "id": 0, "name": "Studio" }, "allowed": true }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 3, "name": "Spokenword" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 2, "name": "Soundtrack" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 7, "name": "Remix" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 9, "name": "Mixtape/Street" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 6, "name": "Live" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 4, "name": "Interview" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 8, "name": "DJ-mix" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 10, "name": "Demo" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 1, "name": "Compilation" }, @@ -158,9 +158,9 @@ "fileTrackInfo": { "title": "Positive Vibration", "cleanTitle": "Positive Vibration", - "artistTitle": "Bob Marley & The Wailers", - "albumTitle": "Rastaman Vibration (Remastered)", - "artistTitleInfo": { + "authorTitle": "Bob Marley & The Wailers", + "bookTitle": "Rastaman Vibration (Remastered)", + "authorTitleInfo": { "title": "Bob Marley & The Wailers", "year": 2002 }, @@ -195,9 +195,9 @@ "fileTrackInfo": { "title": "Roots Rock Reggae", "cleanTitle": "Roots Rock Reggae", - "artistTitle": "Bob Marley & The Wailers", - "albumTitle": "Rastaman Vibration (Remastered", - "artistTitleInfo": { + "authorTitle": "Bob Marley & The Wailers", + "bookTitle": "Rastaman Vibration (Remastered", + "authorTitleInfo": { "title": "Bob Marley & The Wailers", "year": 2002 }, @@ -232,9 +232,9 @@ "fileTrackInfo": { "title": "Johnny Was", "cleanTitle": "Johnny Was", - "artistTitle": "Bob Marley & The Wailers", - "albumTitle": "Rastaman Vibration (Remastered", - "artistTitleInfo": { + "authorTitle": "Bob Marley & The Wailers", + "bookTitle": "Rastaman Vibration (Remastered", + "authorTitleInfo": { "title": "Bob Marley & The Wailers", "year": 2002 }, @@ -269,9 +269,9 @@ "fileTrackInfo": { "title": "Cry To Me", "cleanTitle": "Cry To Me", - "artistTitle": "Bob Marley & The Wailers", - "albumTitle": "Rastaman Vibration (Remastered", - "artistTitleInfo": { + "authorTitle": "Bob Marley & The Wailers", + "bookTitle": "Rastaman Vibration (Remastered", + "authorTitleInfo": { "title": "Bob Marley & The Wailers", "year": 2002 }, @@ -306,9 +306,9 @@ "fileTrackInfo": { "title": "Want More", "cleanTitle": "Want More", - "artistTitle": "Bob Marley & The Wailers", - "albumTitle": "Rastaman Vibration (Remastered", - "artistTitleInfo": { + "authorTitle": "Bob Marley & The Wailers", + "bookTitle": "Rastaman Vibration (Remastered", + "authorTitleInfo": { "title": "Bob Marley & The Wailers", "year": 2002 }, @@ -343,9 +343,9 @@ "fileTrackInfo": { "title": "Crazy Baldhead", "cleanTitle": "Crazy Baldhead", - "artistTitle": "Bob Marley & The Wailers", - "albumTitle": "Rastaman Vibration (Remastered", - "artistTitleInfo": { + "authorTitle": "Bob Marley & The Wailers", + "bookTitle": "Rastaman Vibration (Remastered", + "authorTitleInfo": { "title": "Bob Marley & The Wailers", "year": 2002 }, @@ -380,9 +380,9 @@ "fileTrackInfo": { "title": "Who The Cap Fit", "cleanTitle": "Who The Cap Fit", - "artistTitle": "Bob Marley & The Wailers", - "albumTitle": "Rastaman Vibration (Remastered", - "artistTitleInfo": { + "authorTitle": "Bob Marley & The Wailers", + "bookTitle": "Rastaman Vibration (Remastered", + "authorTitleInfo": { "title": "Bob Marley & The Wailers", "year": 2002 }, @@ -417,9 +417,9 @@ "fileTrackInfo": { "title": "Night Shift", "cleanTitle": "Night Shift", - "artistTitle": "Bob Marley & The Wailers", - "albumTitle": "Rastaman Vibration (Remastered", - "artistTitleInfo": { + "authorTitle": "Bob Marley & The Wailers", + "bookTitle": "Rastaman Vibration (Remastered", + "authorTitleInfo": { "title": "Bob Marley & The Wailers", "year": 2002 }, @@ -454,9 +454,9 @@ "fileTrackInfo": { "title": "War", "cleanTitle": "War", - "artistTitle": "Bob Marley & The Wailers", - "albumTitle": "Rastaman Vibration (Remastered", - "artistTitleInfo": { + "authorTitle": "Bob Marley & The Wailers", + "bookTitle": "Rastaman Vibration (Remastered", + "authorTitleInfo": { "title": "Bob Marley & The Wailers", "year": 2002 }, @@ -491,9 +491,9 @@ "fileTrackInfo": { "title": "Rat Race", "cleanTitle": "Rat Race", - "artistTitle": "Bob Marley & The Wailers", - "albumTitle": "Rastaman Vibration (Remastered", - "artistTitleInfo": { + "authorTitle": "Bob Marley & The Wailers", + "bookTitle": "Rastaman Vibration (Remastered", + "authorTitleInfo": { "title": "Bob Marley & The Wailers", "year": 2002 }, @@ -528,9 +528,9 @@ "fileTrackInfo": { "title": "Jah Live (Original Mix)", "cleanTitle": "Jah Live (Original Mix)", - "artistTitle": "Bob Marley & The Wailers", - "albumTitle": "Rastaman Vibration (Remastered", - "artistTitleInfo": { + "authorTitle": "Bob Marley & The Wailers", + "bookTitle": "Rastaman Vibration (Remastered", + "authorTitleInfo": { "title": "Bob Marley & The Wailers", "year": 2002 }, @@ -565,9 +565,9 @@ "fileTrackInfo": { "title": "Concrete", "cleanTitle": "Concrete", - "artistTitle": "Bob Marley & The Wailers", - "albumTitle": "Rastaman Vibration (Remastered", - "artistTitleInfo": { + "authorTitle": "Bob Marley & The Wailers", + "bookTitle": "Rastaman Vibration (Remastered", + "authorTitleInfo": { "title": "Bob Marley & The Wailers", "year": 2002 }, @@ -602,9 +602,9 @@ "fileTrackInfo": { "title": "Roots Rock Reggae", "cleanTitle": "Roots Rock Reggae", - "artistTitle": "Bob Marley & The Wailers", - "albumTitle": "Rastaman Vibration (Remastered", - "artistTitleInfo": { + "authorTitle": "Bob Marley & The Wailers", + "bookTitle": "Rastaman Vibration (Remastered", + "authorTitleInfo": { "title": "Bob Marley & The Wailers", "year": 2002 }, @@ -639,9 +639,9 @@ "fileTrackInfo": { "title": "Roots Rock Dub", "cleanTitle": "Roots Rock Dub", - "artistTitle": "Bob Marley & The Wailers", - "albumTitle": "Rastaman Vibration (Remastered", - "artistTitleInfo": { + "authorTitle": "Bob Marley & The Wailers", + "bookTitle": "Rastaman Vibration (Remastered", + "authorTitleInfo": { "title": "Bob Marley & The Wailers", "year": 2002 }, @@ -676,9 +676,9 @@ "fileTrackInfo": { "title": "Want More (Alternate Mix)", "cleanTitle": "Want More (Alternate Mix)", - "artistTitle": "Bob Marley & The Wailers", - "albumTitle": "Rastaman Vibration (Remastered", - "artistTitleInfo": { + "authorTitle": "Bob Marley & The Wailers", + "bookTitle": "Rastaman Vibration (Remastered", + "authorTitleInfo": { "title": "Bob Marley & The Wailers", "year": 2002 }, @@ -713,9 +713,9 @@ "fileTrackInfo": { "title": "Crazy Baldhead (Alternate Mix)", "cleanTitle": "Crazy Baldhead (Alternate Mix)", - "artistTitle": "Bob Marley & The Wailers", - "albumTitle": "Rastaman Vibration (Remastered", - "artistTitleInfo": { + "authorTitle": "Bob Marley & The Wailers", + "bookTitle": "Rastaman Vibration (Remastered", + "authorTitleInfo": { "title": "Bob Marley & The Wailers", "year": 2002 }, @@ -750,9 +750,9 @@ "fileTrackInfo": { "title": "War (Alternate Mix)", "cleanTitle": "War (Alternate Mix)", - "artistTitle": "Bob Marley & The Wailers", - "albumTitle": "Rastaman Vibration (Remastered", - "artistTitleInfo": { + "authorTitle": "Bob Marley & The Wailers", + "bookTitle": "Rastaman Vibration (Remastered", + "authorTitleInfo": { "title": "Bob Marley & The Wailers", "year": 2002 }, @@ -787,9 +787,9 @@ "fileTrackInfo": { "title": "Johnny Was (Alternate Mix)", "cleanTitle": "Johnny Was (Alternate Mix)", - "artistTitle": "Bob Marley & The Wailers", - "albumTitle": "Rastaman Vibration (Remastered", - "artistTitleInfo": { + "authorTitle": "Bob Marley & The Wailers", + "bookTitle": "Rastaman Vibration (Remastered", + "authorTitleInfo": { "title": "Bob Marley & The Wailers", "year": 2002 }, @@ -824,9 +824,9 @@ "fileTrackInfo": { "title": "Introduction", "cleanTitle": "Introduction", - "artistTitle": "Bob Marley & The Wailers", - "albumTitle": "Rastaman Vibration (Remastered)", - "artistTitleInfo": { + "authorTitle": "Bob Marley & The Wailers", + "bookTitle": "Rastaman Vibration (Remastered)", + "authorTitleInfo": { "title": "Bob Marley & The Wailers", "year": 2002 }, @@ -861,9 +861,9 @@ "fileTrackInfo": { "title": "Trenchtown Rock (Live)", "cleanTitle": "Trenchtown Rock (Live)", - "artistTitle": "Bob Marley & The Wailers", - "albumTitle": "Rastaman Vibration (Remastered)", - "artistTitleInfo": { + "authorTitle": "Bob Marley & The Wailers", + "bookTitle": "Rastaman Vibration (Remastered)", + "authorTitleInfo": { "title": "Bob Marley & The Wailers", "year": 2002 }, @@ -898,9 +898,9 @@ "fileTrackInfo": { "title": "Burnin And Looting (Live)", "cleanTitle": "Burnin And Looting (Live)", - "artistTitle": "Bob Marley & The Wailers", - "albumTitle": "Rastaman Vibration (Remastered)", - "artistTitleInfo": { + "authorTitle": "Bob Marley & The Wailers", + "bookTitle": "Rastaman Vibration (Remastered)", + "authorTitleInfo": { "title": "Bob Marley & The Wailers", "year": 2002 }, @@ -935,9 +935,9 @@ "fileTrackInfo": { "title": "Them Belly Full (Live)", "cleanTitle": "Them Belly Full (Live)", - "artistTitle": "Bob Marley & The Wailers", - "albumTitle": "Rastaman Vibration (Remastered)", - "artistTitleInfo": { + "authorTitle": "Bob Marley & The Wailers", + "bookTitle": "Rastaman Vibration (Remastered)", + "authorTitleInfo": { "title": "Bob Marley & The Wailers", "year": 2002 }, @@ -972,9 +972,9 @@ "fileTrackInfo": { "title": "Rebel Music (Live)", "cleanTitle": "Rebel Music (Live)", - "artistTitle": "Bob Marley & The Wailers", - "albumTitle": "Rastaman Vibration (Remastered)", - "artistTitleInfo": { + "authorTitle": "Bob Marley & The Wailers", + "bookTitle": "Rastaman Vibration (Remastered)", + "authorTitleInfo": { "title": "Bob Marley & The Wailers", "year": 2002 }, @@ -1009,9 +1009,9 @@ "fileTrackInfo": { "title": "I Shot The Sheriff (Live)", "cleanTitle": "I Shot The Sheriff (Live)", - "artistTitle": "Bob Marley & The Wailers", - "albumTitle": "Rastaman Vibration (Remastered)", - "artistTitleInfo": { + "authorTitle": "Bob Marley & The Wailers", + "bookTitle": "Rastaman Vibration (Remastered)", + "authorTitleInfo": { "title": "Bob Marley & The Wailers", "year": 2002 }, @@ -1046,9 +1046,9 @@ "fileTrackInfo": { "title": "Want More (Live)", "cleanTitle": "Want More (Live)", - "artistTitle": "Bob Marley & The Wailers", - "albumTitle": "Rastaman Vibration (Remastered)", - "artistTitleInfo": { + "authorTitle": "Bob Marley & The Wailers", + "bookTitle": "Rastaman Vibration (Remastered)", + "authorTitleInfo": { "title": "Bob Marley & The Wailers", "year": 2002 }, @@ -1083,9 +1083,9 @@ "fileTrackInfo": { "title": "No Woman No Cry (Live)", "cleanTitle": "No Woman No Cry (Live)", - "artistTitle": "Bob Marley & The Wailers", - "albumTitle": "Rastaman Vibration (Remastered)", - "artistTitleInfo": { + "authorTitle": "Bob Marley & The Wailers", + "bookTitle": "Rastaman Vibration (Remastered)", + "authorTitleInfo": { "title": "Bob Marley & The Wailers", "year": 2002 }, @@ -1120,9 +1120,9 @@ "fileTrackInfo": { "title": "Lively Up Yourself (Live)", "cleanTitle": "Lively Up Yourself (Live)", - "artistTitle": "Bob Marley & The Wailers", - "albumTitle": "Rastaman Vibration (Remastered)", - "artistTitleInfo": { + "authorTitle": "Bob Marley & The Wailers", + "bookTitle": "Rastaman Vibration (Remastered)", + "authorTitleInfo": { "title": "Bob Marley & The Wailers", "year": 2002 }, @@ -1157,9 +1157,9 @@ "fileTrackInfo": { "title": "Roots Rock Reggae (Live)", "cleanTitle": "Roots Rock Reggae (Live)", - "artistTitle": "Bob Marley & The Wailers", - "albumTitle": "Rastaman Vibration (Remastered)", - "artistTitleInfo": { + "authorTitle": "Bob Marley & The Wailers", + "bookTitle": "Rastaman Vibration (Remastered)", + "authorTitleInfo": { "title": "Bob Marley & The Wailers", "year": 2002 }, @@ -1194,9 +1194,9 @@ "fileTrackInfo": { "title": "Rat Race (Live)", "cleanTitle": "Rat Race (Live)", - "artistTitle": "Bob Marley & The Wailers", - "albumTitle": "Rastaman Vibration (Remastered)", - "artistTitleInfo": { + "authorTitle": "Bob Marley & The Wailers", + "bookTitle": "Rastaman Vibration (Remastered)", + "authorTitleInfo": { "title": "Bob Marley & The Wailers", "year": 2002 }, @@ -1231,9 +1231,9 @@ "fileTrackInfo": { "title": "Smile Jamica (Part One Live)", "cleanTitle": "Smile Jamica (Part One Live)", - "artistTitle": "Bob Marley & The Wailers", - "albumTitle": "Rastaman Vibration (Remastered)", - "artistTitleInfo": { + "authorTitle": "Bob Marley & The Wailers", + "bookTitle": "Rastaman Vibration (Remastered)", + "authorTitleInfo": { "title": "Bob Marley & The Wailers", "year": 2002 }, @@ -1268,9 +1268,9 @@ "fileTrackInfo": { "title": "Smile Jamica (Part 2 Live)", "cleanTitle": "Smile Jamica (Part 2 Live)", - "artistTitle": "Bob Marley & The Wailers", - "albumTitle": "Rastaman Vibration (Remastered)", - "artistTitleInfo": { + "authorTitle": "Bob Marley & The Wailers", + "bookTitle": "Rastaman Vibration (Remastered)", + "authorTitleInfo": { "title": "Bob Marley & The Wailers", "year": 2002 }, diff --git a/src/NzbDrone.Core.Test/Files/Identification/PenalizeUnknownMedia.json b/src/NzbDrone.Core.Test/Files/Identification/PenalizeUnknownMedia.json index f9b486449..b483bace4 100644 --- a/src/NzbDrone.Core.Test/Files/Identification/PenalizeUnknownMedia.json +++ b/src/NzbDrone.Core.Test/Files/Identification/PenalizeUnknownMedia.json @@ -2,114 +2,114 @@ "expectedMusicBrainzReleaseIds": [ "0ce2d66f-e871-415a-9a85-e564f99d4021" ], - "libraryArtists": [ + "libraryAuthors": [ { - "artist": "7ac055fa-e357-4890-9098-010b8094a900", + "author": "7ac055fa-e357-4890-9098-010b8094a900", "metadataProfile": { "name": "Standard", - "primaryAlbumTypes": [ + "primaryBookTypes": [ { - "primaryAlbumType": { + "primaryBookType": { "id": 2, "name": "Single" }, "allowed": true }, { - "primaryAlbumType": { + "primaryBookType": { "id": 4, "name": "Other" }, "allowed": false }, { - "primaryAlbumType": { + "primaryBookType": { "id": 1, "name": "EP" }, "allowed": false }, { - "primaryAlbumType": { + "primaryBookType": { "id": 3, "name": "Broadcast" }, "allowed": false }, { - "primaryAlbumType": { + "primaryBookType": { "id": 0, - "name": "Album" + "name": "Book" }, "allowed": true } ], - "secondaryAlbumTypes": [ + "secondaryBookTypes": [ { - "secondaryAlbumType": { + "secondaryBookType": { "id": 0, "name": "Studio" }, "allowed": true }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 3, "name": "Spokenword" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 2, "name": "Soundtrack" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 7, "name": "Remix" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 9, "name": "Mixtape/Street" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 6, "name": "Live" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 4, "name": "Interview" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 8, "name": "DJ-mix" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 10, "name": "Demo" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 1, "name": "Compilation" }, @@ -158,9 +158,9 @@ "fileTrackInfo": { "title": "Touch Me When We're Dancing", "cleanTitle": "Touch Me When We're Dancing", - "artistTitle": "Alabama", - "albumTitle": "The Touch", - "artistTitleInfo": { + "authorTitle": "Alabama", + "bookTitle": "The Touch", + "authorTitleInfo": { "title": "Alabama", "year": 1986 }, diff --git a/src/NzbDrone.Core.Test/Files/Identification/PreferMissingToBadMatch.json b/src/NzbDrone.Core.Test/Files/Identification/PreferMissingToBadMatch.json index 3dc72d957..bcc39660d 100644 --- a/src/NzbDrone.Core.Test/Files/Identification/PreferMissingToBadMatch.json +++ b/src/NzbDrone.Core.Test/Files/Identification/PreferMissingToBadMatch.json @@ -2,114 +2,114 @@ "expectedMusicBrainzReleaseIds": [ "25f0fa1b-ae04-479a-a182-18a655ff6040" ], - "libraryArtists": [ + "libraryAuthors": [ { - "artist": "70248960-cb53-4ea4-943a-edb18f7d336f", + "author": "70248960-cb53-4ea4-943a-edb18f7d336f", "metadataProfile": { - "name": "Album+Single", - "primaryAlbumTypes": [ + "name": "Book+Single", + "primaryBookTypes": [ { - "primaryAlbumType": { + "primaryBookType": { "id": 4, "name": "Other" }, "allowed": false }, { - "primaryAlbumType": { + "primaryBookType": { "id": 3, "name": "Broadcast" }, "allowed": false }, { - "primaryAlbumType": { + "primaryBookType": { "id": 2, "name": "Single" }, "allowed": true }, { - "primaryAlbumType": { + "primaryBookType": { "id": 1, "name": "EP" }, "allowed": false }, { - "primaryAlbumType": { + "primaryBookType": { "id": 0, - "name": "Album" + "name": "Book" }, "allowed": true } ], - "secondaryAlbumTypes": [ + "secondaryBookTypes": [ { - "secondaryAlbumType": { + "secondaryBookType": { "id": 10, "name": "Demo" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 9, "name": "Mixtape/Street" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 8, "name": "DJ-mix" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 7, "name": "Remix" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 6, "name": "Live" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 4, "name": "Interview" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 3, "name": "Spokenword" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 2, "name": "Soundtrack" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 1, "name": "Compilation" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 0, "name": "Studio" }, @@ -154,13 +154,13 @@ "singleRelease": false, "tracks": [ { - "path": "/mnt/data1/ReadarrTest/Bruce Springsteen/Album/10_Glory_Days.mp3", + "path": "/mnt/data1/ReadarrTest/Bruce Springsteen/Book/10_Glory_Days.mp3", "fileTrackInfo": { "title": "Glory Days", "cleanTitle": "Glory Days", - "artistTitle": "Bruce Springsteen", - "albumTitle": "Born in the U.S.A.", - "artistTitleInfo": { + "authorTitle": "Bruce Springsteen", + "bookTitle": "Born in the U.S.A.", + "authorTitleInfo": { "title": "Bruce Springsteen", "year": 1984 }, @@ -191,13 +191,13 @@ } }, { - "path": "/mnt/data1/ReadarrTest/Bruce Springsteen/Album/11_Dancing_In_The_Dark.mp3", + "path": "/mnt/data1/ReadarrTest/Bruce Springsteen/Book/11_Dancing_In_The_Dark.mp3", "fileTrackInfo": { "title": "Dancing In The Dark", "cleanTitle": "Dancing In The Dark", - "artistTitle": "Bruce Springsteen", - "albumTitle": "Born in the U.S.A.", - "artistTitleInfo": { + "authorTitle": "Bruce Springsteen", + "bookTitle": "Born in the U.S.A.", + "authorTitleInfo": { "title": "Bruce Springsteen", "year": 1984 }, diff --git a/src/NzbDrone.Core.Test/Files/Identification/SucceedWhenManyAlbumsHaveSameTitle.json b/src/NzbDrone.Core.Test/Files/Identification/SucceedWhenManyAlbumsHaveSameTitle.json index afec3bfad..a9c4c3001 100644 --- a/src/NzbDrone.Core.Test/Files/Identification/SucceedWhenManyAlbumsHaveSameTitle.json +++ b/src/NzbDrone.Core.Test/Files/Identification/SucceedWhenManyAlbumsHaveSameTitle.json @@ -2,114 +2,114 @@ "expectedMusicBrainzReleaseIds": [ "4e2dd34f-53fe-4d54-b564-b14a2871505e" ], - "libraryArtists": [ + "libraryAuthors": [ { - "artist": "6fe07aa5-fec0-4eca-a456-f29bff451b04", + "author": "6fe07aa5-fec0-4eca-a456-f29bff451b04", "metadataProfile": { "name": "Standard", - "primaryAlbumTypes": [ + "primaryBookTypes": [ { - "primaryAlbumType": { + "primaryBookType": { "id": 2, "name": "Single" }, "allowed": false }, { - "primaryAlbumType": { + "primaryBookType": { "id": 4, "name": "Other" }, "allowed": false }, { - "primaryAlbumType": { + "primaryBookType": { "id": 1, "name": "EP" }, "allowed": false }, { - "primaryAlbumType": { + "primaryBookType": { "id": 3, "name": "Broadcast" }, "allowed": false }, { - "primaryAlbumType": { + "primaryBookType": { "id": 0, - "name": "Album" + "name": "Book" }, "allowed": true } ], - "secondaryAlbumTypes": [ + "secondaryBookTypes": [ { - "secondaryAlbumType": { + "secondaryBookType": { "id": 0, "name": "Studio" }, "allowed": true }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 3, "name": "Spokenword" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 2, "name": "Soundtrack" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 7, "name": "Remix" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 9, "name": "Mixtape/Street" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 6, "name": "Live" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 4, "name": "Interview" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 8, "name": "DJ-mix" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 10, "name": "Demo" }, "allowed": false }, { - "secondaryAlbumType": { + "secondaryBookType": { "id": 1, "name": "Compilation" }, @@ -158,9 +158,9 @@ "fileTrackInfo": { "title": "Africa", "cleanTitle": "Africa", - "artistTitle": "Weezer", - "albumTitle": "Weezer (Teal Album)", - "artistTitleInfo": { + "authorTitle": "Weezer", + "bookTitle": "Weezer (Teal Book)", + "authorTitleInfo": { "title": "Weezer", "year": 2019 }, @@ -196,9 +196,9 @@ "fileTrackInfo": { "title": "Everybody Wants To Rule The World", "cleanTitle": "Everybody Wants To Rule The World", - "artistTitle": "Weezer", - "albumTitle": "Weezer (Teal Album)", - "artistTitleInfo": { + "authorTitle": "Weezer", + "bookTitle": "Weezer (Teal Book)", + "authorTitleInfo": { "title": "Weezer", "year": 2019 }, @@ -234,9 +234,9 @@ "fileTrackInfo": { "title": "Sweet Dreams (Are Made Of This)", "cleanTitle": "Sweet Dreams (Are Made Of This)", - "artistTitle": "Weezer", - "albumTitle": "Weezer (Teal Album)", - "artistTitleInfo": { + "authorTitle": "Weezer", + "bookTitle": "Weezer (Teal Book)", + "authorTitleInfo": { "title": "Weezer", "year": 2019 }, @@ -272,9 +272,9 @@ "fileTrackInfo": { "title": "Take On Me", "cleanTitle": "Take On Me", - "artistTitle": "Weezer", - "albumTitle": "Weezer (Teal Album)", - "artistTitleInfo": { + "authorTitle": "Weezer", + "bookTitle": "Weezer (Teal Book)", + "authorTitleInfo": { "title": "Weezer", "year": 2019 }, @@ -310,9 +310,9 @@ "fileTrackInfo": { "title": "Happy Together", "cleanTitle": "Happy Together", - "artistTitle": "Weezer", - "albumTitle": "Weezer (Teal Album)", - "artistTitleInfo": { + "authorTitle": "Weezer", + "bookTitle": "Weezer (Teal Book)", + "authorTitleInfo": { "title": "Weezer", "year": 2019 }, @@ -348,9 +348,9 @@ "fileTrackInfo": { "title": "Paranoid", "cleanTitle": "Paranoid", - "artistTitle": "Weezer", - "albumTitle": "Weezer (Teal Album)", - "artistTitleInfo": { + "authorTitle": "Weezer", + "bookTitle": "Weezer (Teal Book)", + "authorTitleInfo": { "title": "Weezer", "year": 2019 }, @@ -386,9 +386,9 @@ "fileTrackInfo": { "title": "Mr. Blue Sky", "cleanTitle": "Mr. Blue Sky", - "artistTitle": "Weezer", - "albumTitle": "Weezer (Teal Album)", - "artistTitleInfo": { + "authorTitle": "Weezer", + "bookTitle": "Weezer (Teal Book)", + "authorTitleInfo": { "title": "Weezer", "year": 2019 }, @@ -424,9 +424,9 @@ "fileTrackInfo": { "title": "No Scrubs", "cleanTitle": "No Scrubs", - "artistTitle": "Weezer", - "albumTitle": "Weezer (Teal Album)", - "artistTitleInfo": { + "authorTitle": "Weezer", + "bookTitle": "Weezer (Teal Book)", + "authorTitleInfo": { "title": "Weezer", "year": 2019 }, @@ -462,9 +462,9 @@ "fileTrackInfo": { "title": "Billie Jean", "cleanTitle": "Billie Jean", - "artistTitle": "Weezer", - "albumTitle": "Weezer (Teal Album)", - "artistTitleInfo": { + "authorTitle": "Weezer", + "bookTitle": "Weezer (Teal Book)", + "authorTitleInfo": { "title": "Weezer", "year": 2019 }, @@ -500,9 +500,9 @@ "fileTrackInfo": { "title": "Stand By Me", "cleanTitle": "Stand By Me", - "artistTitle": "Weezer", - "albumTitle": "Weezer (Teal Album)", - "artistTitleInfo": { + "authorTitle": "Weezer", + "bookTitle": "Weezer (Teal Book)", + "authorTitleInfo": { "title": "Weezer", "year": 2019 }, diff --git a/src/NzbDrone.Core.Test/Files/Indexers/Gazelle/Gazelle.json b/src/NzbDrone.Core.Test/Files/Indexers/Gazelle/Gazelle.json index f357c1cbd..a900a717d 100644 --- a/src/NzbDrone.Core.Test/Files/Indexers/Gazelle/Gazelle.json +++ b/src/NzbDrone.Core.Test/Files/Indexers/Gazelle/Gazelle.json @@ -7,7 +7,7 @@ { "groupId": 106951, "groupName": "Shania Twain", - "artist": "Shania Twain", + "author": "Shania Twain", "cover": "https:\\/\\/ptpimg.me\\/460az6.jpg", "tags": [ "rock", @@ -16,7 +16,7 @@ "bookmarked": false, "vanityHouse": false, "groupYear": 1993, - "releaseType": "Album", + "releaseType": "Book", "groupTime": "1512951473", "maxSize": 653734702, "totalSnatched": 33, @@ -26,7 +26,7 @@ { "torrentId": 194008, "editionId": 1, - "artists": [ + "authors": [ { "id": 9504, "name": "Shania Twain", @@ -60,7 +60,7 @@ { "torrentId": 230096, "editionId": 1, - "artists": [ + "authors": [ { "id": 9504, "name": "Shania Twain", @@ -94,7 +94,7 @@ { "torrentId": 230086, "editionId": 1, - "artists": [ + "authors": [ { "id": 9504, "name": "Shania Twain", @@ -128,7 +128,7 @@ { "torrentId": 1541452, "editionId": 2, - "artists": [ + "authors": [ { "id": 9504, "name": "Shania Twain", diff --git a/src/NzbDrone.Core.Test/Files/Indexers/Newznab/newznab_nzb_su.xml b/src/NzbDrone.Core.Test/Files/Indexers/Newznab/newznab_nzb_su.xml index 6f9d1e4bd..53f54811b 100644 --- a/src/NzbDrone.Core.Test/Files/Indexers/Newznab/newznab_nzb_su.xml +++ b/src/NzbDrone.Core.Test/Files/Indexers/Newznab/newznab_nzb_su.xml @@ -28,8 +28,8 @@ - - + + @@ -49,8 +49,8 @@ - - + + @@ -71,8 +71,8 @@ - - + + @@ -93,8 +93,8 @@ - - + + @@ -115,8 +115,8 @@ - - + + @@ -137,8 +137,8 @@ - - + + @@ -159,8 +159,8 @@ - - + + @@ -181,8 +181,8 @@ - - + + @@ -203,8 +203,8 @@ - - + + @@ -225,8 +225,8 @@ - - + + @@ -247,8 +247,8 @@ - - + + @@ -269,8 +269,8 @@ - - + + @@ -291,8 +291,8 @@ - - + + @@ -313,8 +313,8 @@ - - + + @@ -335,8 +335,8 @@ - - + + @@ -357,8 +357,8 @@ - - + + @@ -379,8 +379,8 @@ - - + + @@ -401,8 +401,8 @@ - - + + @@ -421,8 +421,8 @@ - - + + @@ -443,8 +443,8 @@ - - + + @@ -465,8 +465,8 @@ - - + + @@ -484,8 +484,8 @@ - - + + @@ -506,8 +506,8 @@ - - + + @@ -526,8 +526,8 @@ - - + + @@ -548,8 +548,8 @@ - - + + @@ -567,8 +567,8 @@ - - + + @@ -589,8 +589,8 @@ - - + + @@ -611,8 +611,8 @@ - - + + @@ -631,8 +631,8 @@ - - + + @@ -651,8 +651,8 @@ - - + + @@ -673,8 +673,8 @@ - - + + @@ -695,8 +695,8 @@ - - + + @@ -717,8 +717,8 @@ - - + + @@ -739,8 +739,8 @@ - - + + @@ -761,8 +761,8 @@ - - + + @@ -783,8 +783,8 @@ - - + + @@ -805,8 +805,8 @@ - - + + @@ -825,8 +825,8 @@ - - + + @@ -847,8 +847,8 @@ - - + + @@ -869,8 +869,8 @@ - - + + @@ -891,8 +891,8 @@ - - + + @@ -913,8 +913,8 @@ - - + + @@ -935,8 +935,8 @@ - - + + @@ -957,8 +957,8 @@ - - + + @@ -979,8 +979,8 @@ - - + + @@ -1000,8 +1000,8 @@ - - + + @@ -1022,8 +1022,8 @@ - - + + @@ -1042,8 +1042,8 @@ - - + + @@ -1062,8 +1062,8 @@ - - + + @@ -1084,8 +1084,8 @@ - - + + @@ -1106,8 +1106,8 @@ - - + + @@ -1128,8 +1128,8 @@ - - + + @@ -1148,8 +1148,8 @@ - - + + @@ -1170,8 +1170,8 @@ - - + + @@ -1192,8 +1192,8 @@ - - + + @@ -1212,8 +1212,8 @@ - - + + @@ -1234,8 +1234,8 @@ - - + + @@ -1256,8 +1256,8 @@ - - + + @@ -1278,8 +1278,8 @@ - - + + @@ -1300,8 +1300,8 @@ - - + + @@ -1322,8 +1322,8 @@ - - + + @@ -1342,8 +1342,8 @@ - - + + @@ -1364,8 +1364,8 @@ - - + + @@ -1384,8 +1384,8 @@ - - + + @@ -1404,8 +1404,8 @@ - - + + @@ -1424,8 +1424,8 @@ - - + + @@ -1444,8 +1444,8 @@ - - + + @@ -1464,8 +1464,8 @@ - - + + @@ -1484,8 +1484,8 @@ - - + + @@ -1505,8 +1505,8 @@ - - + + @@ -1526,8 +1526,8 @@ - - + + @@ -1546,8 +1546,8 @@ - - + + @@ -1568,8 +1568,8 @@ - - + + @@ -1590,8 +1590,8 @@ - - + + @@ -1612,7 +1612,7 @@ - + @@ -1632,8 +1632,8 @@ - - + + @@ -1654,8 +1654,8 @@ - - + + @@ -1674,8 +1674,8 @@ - - + + @@ -1693,8 +1693,8 @@ - - + + @@ -1712,8 +1712,8 @@ - - + + @@ -1734,8 +1734,8 @@ - - + + @@ -1757,8 +1757,8 @@ - - + + @@ -1776,7 +1776,7 @@ - + @@ -1797,8 +1797,8 @@ - - + + @@ -1819,8 +1819,8 @@ - - + + @@ -1839,8 +1839,8 @@ - - + + @@ -1861,8 +1861,8 @@ - - + + @@ -1883,8 +1883,8 @@ - - + + @@ -1905,8 +1905,8 @@ - - + + @@ -1926,8 +1926,8 @@ - - + + @@ -1946,8 +1946,8 @@ - - + + @@ -1966,8 +1966,8 @@ - - + + @@ -1988,8 +1988,8 @@ - - + + @@ -2008,8 +2008,8 @@ - - + + @@ -2030,8 +2030,8 @@ - - + + @@ -2052,8 +2052,8 @@ - - + + @@ -2072,8 +2072,8 @@ - - + + @@ -2092,8 +2092,8 @@ - - + + @@ -2113,8 +2113,8 @@ - - + + @@ -2133,8 +2133,8 @@ - - + + diff --git a/src/NzbDrone.Core.Test/Files/Indexers/Waffles/waffles.xml b/src/NzbDrone.Core.Test/Files/Indexers/Waffles/waffles.xml index 7c5025f7b..1946fd024 100644 --- a/src/NzbDrone.Core.Test/Files/Indexers/Waffles/waffles.xml +++ b/src/NzbDrone.Core.Test/Files/Indexers/Waffles/waffles.xml @@ -8,12 +8,12 @@ Copyright 2009 Waffles waffles@waffles.ch - artist:coldplay + author:coldplay https://waffles.ch/favicon.ico - https://waffles.ch/browse.php?c0=1&q=artist%3Acoldplay&limit=50 + https://waffles.ch/browse.php?c0=1&q=author%3Acoldplay&limit=50 16 16 - artist:coldplay + author:coldplay Coldplay - Kaleidoscope EP (FLAC HD) [2017-Web-FLAC-Lossless] @@ -81,7 +81,7 @@ <br /> <b>Total length:</b> 24:56<br /> <br /> - More information: <a href="https://anon.click/https://itunes.apple.com/us/album/kaleidoscope-ep/id1248904974?uo=4" target="_blank">https://itunes.apple.com/us/album/kaleidoscope-ep/id1248904974?uo=4</a> + More information: <a href="https://anon.click/https://itunes.apple.com/us/book/kaleidoscope-ep/id1248904974?uo=4" target="_blank">https://itunes.apple.com/us/book/kaleidoscope-ep/id1248904974?uo=4</a> https://waffles.ch/download.php/xxx/1166785/Coldplay%20-%20Kaleidoscope%20EP%20%5B2017-Web-MP3-320%5D.torrent?passkey=123456789&uid=xxx&rss=1 https://waffles.ch/details.php?id=1166785&hit=1 @@ -156,7 +156,7 @@ <br /> <b>Total length:</b> 24:56<br /> <br /> - More information: <a href="https://anon.click/https://itunes.apple.com/us/album/kaleidoscope-ep/id1248904974?uo=4" target="_blank">https://itunes.apple.com/us/album/kaleidoscope-ep/id1248904974?uo=4</a> + More information: <a href="https://anon.click/https://itunes.apple.com/us/book/kaleidoscope-ep/id1248904974?uo=4" target="_blank">https://itunes.apple.com/us/book/kaleidoscope-ep/id1248904974?uo=4</a> https://waffles.ch/download.php/xxx/1166765/Coldplay%20-%20Kaleidoscope%20EP%20%5B2017-Web-MP3-V0%28VBR%29%5D.torrent?passkey=123456789&uid=xxx&rss=1 https://waffles.ch/details.php?id=1166765&hit=1 @@ -224,7 +224,7 @@ <b>Country:</b> UK<br /> <b>Year:</b> 2000<br /> <b>Genre:</b> Alternative Rock, Britpop<br /> - <b>Format:</b> WEB, Album<br /> + <b>Format:</b> WEB, Book<br /> <br /> <b>Tracklist</b><br /> <br /> @@ -546,7 +546,7 @@ Bitrate: Lossless<br/> </tr></td></table><br/> Year: 2017<br /> - Artist: The Chainsmokers &amp; Coldplay<br /> + Author: The Chainsmokers &amp; Coldplay<br /> Source: WEB <br /> Quality: FLAC<br /> <br /> diff --git a/src/NzbDrone.Core.Test/Files/Media/LICENSE b/src/NzbDrone.Core.Test/Files/Media/LICENSE index 3f10abe21..23ce53816 100644 --- a/src/NzbDrone.Core.Test/Files/Media/LICENSE +++ b/src/NzbDrone.Core.Test/Files/Media/LICENSE @@ -1,9 +1,9 @@ nin.* in this directory are re-encodes of nin.mp3 title : 999,999 -artist : Nine Inch Nails +author : Nine Inch Nails track : 1 -album : The Slip +book : The Slip copyright : Attribution-Noncommercial-Share Alike 3.0 United States: http://creativecommons.org/licenses/by-nc-sa/3.0/us/ comment : URL: http://freemusicarchive.org/music/Nine_Inch_Nails/The_Slip/999999 : Comments: http://freemusicarchive.org/ diff --git a/src/NzbDrone.Core.Test/HealthCheck/Checks/DeleteBadMediaCovers.cs b/src/NzbDrone.Core.Test/HealthCheck/Checks/DeleteBadMediaCovers.cs index fffff81f9..aa79f3a12 100644 --- a/src/NzbDrone.Core.Test/HealthCheck/Checks/DeleteBadMediaCovers.cs +++ b/src/NzbDrone.Core.Test/HealthCheck/Checks/DeleteBadMediaCovers.cs @@ -20,12 +20,12 @@ namespace NzbDrone.Core.Test.HealthCheck.Checks public class DeleteBadMediaCoversFixture : CoreTest { private List _metadata; - private List _artist; + private List _author; [SetUp] public void Setup() { - _artist = Builder.CreateListOfSize(1) + _author = Builder.CreateListOfSize(1) .All() .With(c => c.Path = "C:\\Music\\".AsOsAgnostic()) .Build().ToList(); @@ -33,12 +33,12 @@ namespace NzbDrone.Core.Test.HealthCheck.Checks _metadata = Builder.CreateListOfSize(1) .Build().ToList(); - Mocker.GetMock() - .Setup(c => c.AllArtistPaths()) - .Returns(_artist.ToDictionary(x => x.Id, x => x.Path)); + Mocker.GetMock() + .Setup(c => c.AllAuthorPaths()) + .Returns(_author.ToDictionary(x => x.Id, x => x.Path)); Mocker.GetMock() - .Setup(c => c.GetFilesByAuthor(_artist.First().Id)) + .Setup(c => c.GetFilesByAuthor(_author.First().Id)) .Returns(_metadata); Mocker.GetMock().SetupGet(c => c.CleanupMetadataImages).Returns(true); @@ -47,7 +47,7 @@ namespace NzbDrone.Core.Test.HealthCheck.Checks [Test] public void should_not_process_non_image_files() { - _metadata.First().RelativePath = "album\\file.xml".AsOsAgnostic(); + _metadata.First().RelativePath = "book\\file.xml".AsOsAgnostic(); _metadata.First().Type = MetadataType.BookMetadata; Subject.Clean(); @@ -73,7 +73,7 @@ namespace NzbDrone.Core.Test.HealthCheck.Checks Subject.Clean(); Mocker.GetMock().VerifySet(c => c.CleanupMetadataImages = true, Times.Never()); - Mocker.GetMock().Verify(c => c.GetAllAuthors(), Times.Never()); + Mocker.GetMock().Verify(c => c.GetAllAuthors(), Times.Never()); AssertImageWasNotRemoved(); } @@ -91,9 +91,9 @@ namespace NzbDrone.Core.Test.HealthCheck.Checks [Test] public void should_delete_html_images() { - var imagePath = "C:\\Music\\Album\\image.jpg".AsOsAgnostic(); + var imagePath = "C:\\Music\\Book\\image.jpg".AsOsAgnostic(); _metadata.First().LastUpdated = new DateTime(2014, 12, 29); - _metadata.First().RelativePath = "Album\\image.jpg".AsOsAgnostic(); + _metadata.First().RelativePath = "Book\\image.jpg".AsOsAgnostic(); _metadata.First().Type = MetadataType.AuthorImage; Mocker.GetMock() @@ -109,10 +109,10 @@ namespace NzbDrone.Core.Test.HealthCheck.Checks [Test] public void should_delete_empty_images() { - var imagePath = "C:\\Music\\Album\\image.jpg".AsOsAgnostic(); + var imagePath = "C:\\Music\\Book\\image.jpg".AsOsAgnostic(); _metadata.First().LastUpdated = new DateTime(2014, 12, 29); _metadata.First().Type = MetadataType.BookImage; - _metadata.First().RelativePath = "Album\\image.jpg".AsOsAgnostic(); + _metadata.First().RelativePath = "Book\\image.jpg".AsOsAgnostic(); Mocker.GetMock() .Setup(c => c.OpenReadStream(imagePath)) @@ -127,9 +127,9 @@ namespace NzbDrone.Core.Test.HealthCheck.Checks [Test] public void should_not_delete_non_html_files() { - var imagePath = "C:\\Music\\Album\\image.jpg".AsOsAgnostic(); + var imagePath = "C:\\Music\\Book\\image.jpg".AsOsAgnostic(); _metadata.First().LastUpdated = new DateTime(2014, 12, 29); - _metadata.First().RelativePath = "Album\\image.jpg".AsOsAgnostic(); + _metadata.First().RelativePath = "Book\\image.jpg".AsOsAgnostic(); Mocker.GetMock() .Setup(c => c.OpenReadStream(imagePath)) diff --git a/src/NzbDrone.Core.Test/HealthCheck/Checks/RootFolderCheckFixture.cs b/src/NzbDrone.Core.Test/HealthCheck/Checks/RootFolderCheckFixture.cs index 9440093d1..e8c9d7f7c 100644 --- a/src/NzbDrone.Core.Test/HealthCheck/Checks/RootFolderCheckFixture.cs +++ b/src/NzbDrone.Core.Test/HealthCheck/Checks/RootFolderCheckFixture.cs @@ -16,7 +16,7 @@ namespace NzbDrone.Core.Test.HealthCheck.Checks { private void GivenMissingRootFolder() { - var artist = Builder.CreateListOfSize(1) + var author = Builder.CreateListOfSize(1) .Build() .ToList(); @@ -26,14 +26,14 @@ namespace NzbDrone.Core.Test.HealthCheck.Checks Mocker.GetMock() .Setup(s => s.AllAuthorPaths()) - .Returns(artist.ToDictionary(x => x.Id, x => x.Path)); + .Returns(author.ToDictionary(x => x.Id, x => x.Path)); Mocker.GetMock() .Setup(s => s.All()) .Returns(importList); Mocker.GetMock() - .Setup(s => s.GetParentFolder(artist.First().Path)) + .Setup(s => s.GetParentFolder(author.First().Path)) .Returns(@"C:\Music"); Mocker.GetMock() @@ -42,7 +42,7 @@ namespace NzbDrone.Core.Test.HealthCheck.Checks } [Test] - public void should_not_return_error_when_no_artist() + public void should_not_return_error_when_no_author() { Mocker.GetMock() .Setup(s => s.AllAuthorPaths()) @@ -56,7 +56,7 @@ namespace NzbDrone.Core.Test.HealthCheck.Checks } [Test] - public void should_return_error_if_artist_parent_is_missing() + public void should_return_error_if_author_parent_is_missing() { GivenMissingRootFolder(); diff --git a/src/NzbDrone.Core.Test/HistoryTests/HistoryServiceFixture.cs b/src/NzbDrone.Core.Test/HistoryTests/HistoryServiceFixture.cs index 156ecca90..bb2dcb293 100644 --- a/src/NzbDrone.Core.Test/HistoryTests/HistoryServiceFixture.cs +++ b/src/NzbDrone.Core.Test/HistoryTests/HistoryServiceFixture.cs @@ -42,17 +42,17 @@ namespace NzbDrone.Core.Test.HistoryTests [Test] public void should_use_file_name_for_source_title_if_scene_name_is_null() { - var artist = Builder.CreateNew().Build(); + var author = Builder.CreateNew().Build(); var trackFile = Builder.CreateNew() .With(f => f.SceneName = null) - .With(f => f.Author = artist) + .With(f => f.Author = author) .Build(); var localTrack = new LocalBook { - Author = artist, + Author = author, Book = new Book(), - Path = @"C:\Test\Unsorted\Artist.01.Hymn.mp3" + Path = @"C:\Test\Unsorted\Author.01.Hymn.mp3" }; var downloadClientItem = new DownloadClientItem diff --git a/src/NzbDrone.Core.Test/Housekeeping/Housekeepers/CleanupDuplicateMetadataFilesFixture.cs b/src/NzbDrone.Core.Test/Housekeeping/Housekeepers/CleanupDuplicateMetadataFilesFixture.cs index df84e3ba2..e01cddedc 100644 --- a/src/NzbDrone.Core.Test/Housekeeping/Housekeepers/CleanupDuplicateMetadataFilesFixture.cs +++ b/src/NzbDrone.Core.Test/Housekeeping/Housekeepers/CleanupDuplicateMetadataFilesFixture.cs @@ -12,7 +12,7 @@ namespace NzbDrone.Core.Test.Housekeeping.Housekeepers public class CleanupDuplicateMetadataFilesFixture : DbTest { [Test] - public void should_not_delete_metadata_files_when_they_are_for_the_same_artist_but_different_consumers() + public void should_not_delete_metadata_files_when_they_are_for_the_same_author_but_different_consumers() { var files = Builder.CreateListOfSize(2) .All() @@ -26,7 +26,7 @@ namespace NzbDrone.Core.Test.Housekeeping.Housekeepers } [Test] - public void should_not_delete_metadata_files_for_different_artist() + public void should_not_delete_metadata_files_for_different_author() { var files = Builder.CreateListOfSize(2) .All() @@ -40,7 +40,7 @@ namespace NzbDrone.Core.Test.Housekeeping.Housekeepers } [Test] - public void should_delete_metadata_files_when_they_are_for_the_same_artist_and_consumer() + public void should_delete_metadata_files_when_they_are_for_the_same_author_and_consumer() { var files = Builder.CreateListOfSize(2) .All() @@ -55,7 +55,7 @@ namespace NzbDrone.Core.Test.Housekeeping.Housekeepers } [Test] - public void should_not_delete_metadata_files_when_there_is_only_one_for_that_artist_and_consumer() + public void should_not_delete_metadata_files_when_there_is_only_one_for_that_author_and_consumer() { var file = Builder.CreateNew() .BuildNew(); @@ -66,7 +66,7 @@ namespace NzbDrone.Core.Test.Housekeeping.Housekeepers } [Test] - public void should_not_delete_metadata_files_when_they_are_for_the_same_album_but_different_consumers() + public void should_not_delete_metadata_files_when_they_are_for_the_same_book_but_different_consumers() { var files = Builder.CreateListOfSize(2) .All() @@ -81,7 +81,7 @@ namespace NzbDrone.Core.Test.Housekeeping.Housekeepers } [Test] - public void should_not_delete_metadata_files_for_different_album() + public void should_not_delete_metadata_files_for_different_book() { var files = Builder.CreateListOfSize(2) .All() @@ -96,7 +96,7 @@ namespace NzbDrone.Core.Test.Housekeeping.Housekeepers } [Test] - public void should_delete_metadata_files_when_they_are_for_the_same_album_and_consumer() + public void should_delete_metadata_files_when_they_are_for_the_same_book_and_consumer() { var files = Builder.CreateListOfSize(2) .All() @@ -112,7 +112,7 @@ namespace NzbDrone.Core.Test.Housekeeping.Housekeepers } [Test] - public void should_not_delete_metadata_files_when_there_is_only_one_for_that_album_and_consumer() + public void should_not_delete_metadata_files_when_there_is_only_one_for_that_book_and_consumer() { var file = Builder.CreateNew() .BuildNew(); diff --git a/src/NzbDrone.Core.Test/Housekeeping/Housekeepers/CleanupOrphanedBlacklistFixture.cs b/src/NzbDrone.Core.Test/Housekeeping/Housekeepers/CleanupOrphanedBlacklistFixture.cs index 59ede4a92..5fda9f14e 100644 --- a/src/NzbDrone.Core.Test/Housekeeping/Housekeepers/CleanupOrphanedBlacklistFixture.cs +++ b/src/NzbDrone.Core.Test/Housekeeping/Housekeepers/CleanupOrphanedBlacklistFixture.cs @@ -29,14 +29,14 @@ namespace NzbDrone.Core.Test.Housekeeping.Housekeepers [Test] public void should_not_delete_unorphaned_blacklist_items() { - var artist = Builder.CreateNew().BuildNew(); + var author = Builder.CreateNew().BuildNew(); - Db.Insert(artist); + Db.Insert(author); var blacklist = Builder.CreateNew() .With(h => h.BookIds = new List()) .With(h => h.Quality = new QualityModel()) - .With(b => b.AuthorId = artist.Id) + .With(b => b.AuthorId = author.Id) .BuildNew(); Db.Insert(blacklist); diff --git a/src/NzbDrone.Core.Test/Housekeeping/Housekeepers/CleanupOrphanedBooksFixture.cs b/src/NzbDrone.Core.Test/Housekeeping/Housekeepers/CleanupOrphanedBooksFixture.cs index ebef27b36..b3ca34294 100644 --- a/src/NzbDrone.Core.Test/Housekeeping/Housekeepers/CleanupOrphanedBooksFixture.cs +++ b/src/NzbDrone.Core.Test/Housekeeping/Housekeepers/CleanupOrphanedBooksFixture.cs @@ -11,34 +11,34 @@ namespace NzbDrone.Core.Test.Housekeeping.Housekeepers public class CleanupOrphanedBooksFixture : DbTest { [Test] - public void should_delete_orphaned_albums() + public void should_delete_orphaned_books() { - var album = Builder.CreateNew() + var book = Builder.CreateNew() .BuildNew(); - Db.Insert(album); + Db.Insert(book); Subject.Clean(); AllStoredModels.Should().BeEmpty(); } [Test] - public void should_not_delete_unorphaned_albums() + public void should_not_delete_unorphaned_books() { - var artist = Builder.CreateNew() + var author = Builder.CreateNew() .With(e => e.Metadata = new AuthorMetadata { Id = 1 }) .BuildNew(); - Db.Insert(artist); + Db.Insert(author); - var albums = Builder.CreateListOfSize(2) + var books = Builder.CreateListOfSize(2) .TheFirst(1) - .With(e => e.AuthorMetadataId = artist.Metadata.Value.Id) + .With(e => e.AuthorMetadataId = author.Metadata.Value.Id) .BuildListOfNew(); - Db.InsertMany(albums); + Db.InsertMany(books); Subject.Clean(); AllStoredModels.Should().HaveCount(1); - AllStoredModels.Should().Contain(e => e.AuthorMetadataId == artist.Metadata.Value.Id); + AllStoredModels.Should().Contain(e => e.AuthorMetadataId == author.Metadata.Value.Id); } } } diff --git a/src/NzbDrone.Core.Test/Housekeeping/Housekeepers/CleanupOrphanedHistoryItemsFixture.cs b/src/NzbDrone.Core.Test/Housekeeping/Housekeepers/CleanupOrphanedHistoryItemsFixture.cs index 95070eddf..41d5c633f 100644 --- a/src/NzbDrone.Core.Test/Housekeeping/Housekeepers/CleanupOrphanedHistoryItemsFixture.cs +++ b/src/NzbDrone.Core.Test/Housekeeping/Housekeepers/CleanupOrphanedHistoryItemsFixture.cs @@ -11,37 +11,37 @@ namespace NzbDrone.Core.Test.Housekeeping.Housekeepers [TestFixture] public class CleanupOrphanedHistoryItemsFixture : DbTest { - private Author _artist; - private Book _album; + private Author _author; + private Book _book; [SetUp] public void Setup() { - _artist = Builder.CreateNew() + _author = Builder.CreateNew() .BuildNew(); - _album = Builder.CreateNew() + _book = Builder.CreateNew() .BuildNew(); } - private void GivenArtist() + private void GivenAuthor() { - Db.Insert(_artist); + Db.Insert(_author); } - private void GivenAlbum() + private void GivenBook() { - Db.Insert(_album); + Db.Insert(_book); } [Test] - public void should_delete_orphaned_items_by_artist() + public void should_delete_orphaned_items_by_author() { - GivenAlbum(); + GivenBook(); var history = Builder.CreateNew() .With(h => h.Quality = new QualityModel()) - .With(h => h.BookId = _album.Id) + .With(h => h.BookId = _book.Id) .BuildNew(); Db.Insert(history); @@ -50,13 +50,13 @@ namespace NzbDrone.Core.Test.Housekeeping.Housekeepers } [Test] - public void should_delete_orphaned_items_by_album() + public void should_delete_orphaned_items_by_book() { - GivenArtist(); + GivenAuthor(); var history = Builder.CreateNew() .With(h => h.Quality = new QualityModel()) - .With(h => h.AuthorId = _artist.Id) + .With(h => h.AuthorId = _author.Id) .BuildNew(); Db.Insert(history); @@ -65,45 +65,45 @@ namespace NzbDrone.Core.Test.Housekeeping.Housekeepers } [Test] - public void should_not_delete_unorphaned_data_by_artist() + public void should_not_delete_unorphaned_data_by_author() { - GivenArtist(); - GivenAlbum(); + GivenAuthor(); + GivenBook(); var history = Builder.CreateListOfSize(2) .All() .With(h => h.Quality = new QualityModel()) - .With(h => h.BookId = _album.Id) + .With(h => h.BookId = _book.Id) .TheFirst(1) - .With(h => h.AuthorId = _artist.Id) + .With(h => h.AuthorId = _author.Id) .BuildListOfNew(); Db.InsertMany(history); Subject.Clean(); AllStoredModels.Should().HaveCount(1); - AllStoredModels.Should().Contain(h => h.AuthorId == _artist.Id); + AllStoredModels.Should().Contain(h => h.AuthorId == _author.Id); } [Test] - public void should_not_delete_unorphaned_data_by_album() + public void should_not_delete_unorphaned_data_by_book() { - GivenArtist(); - GivenAlbum(); + GivenAuthor(); + GivenBook(); var history = Builder.CreateListOfSize(2) .All() .With(h => h.Quality = new QualityModel()) - .With(h => h.AuthorId = _artist.Id) + .With(h => h.AuthorId = _author.Id) .TheFirst(1) - .With(h => h.BookId = _album.Id) + .With(h => h.BookId = _book.Id) .BuildListOfNew(); Db.InsertMany(history); Subject.Clean(); AllStoredModels.Should().HaveCount(1); - AllStoredModels.Should().Contain(h => h.BookId == _album.Id); + AllStoredModels.Should().Contain(h => h.BookId == _book.Id); } } } diff --git a/src/NzbDrone.Core.Test/Housekeeping/Housekeepers/CleanupOrphanedMetadataFilesFixture.cs b/src/NzbDrone.Core.Test/Housekeeping/Housekeepers/CleanupOrphanedMetadataFilesFixture.cs index f00f230dc..39a8bc0d1 100644 --- a/src/NzbDrone.Core.Test/Housekeeping/Housekeepers/CleanupOrphanedMetadataFilesFixture.cs +++ b/src/NzbDrone.Core.Test/Housekeeping/Housekeepers/CleanupOrphanedMetadataFilesFixture.cs @@ -15,7 +15,7 @@ namespace NzbDrone.Core.Test.Housekeeping.Housekeepers public class CleanupOrphanedMetadataFilesFixture : DbTest { [Test] - public void should_delete_metadata_files_that_dont_have_a_coresponding_artist() + public void should_delete_metadata_files_that_dont_have_a_coresponding_author() { var metadataFile = Builder.CreateNew() .With(m => m.BookFileId = null) @@ -27,15 +27,15 @@ namespace NzbDrone.Core.Test.Housekeeping.Housekeepers } [Test] - public void should_delete_metadata_files_that_dont_have_a_coresponding_album() + public void should_delete_metadata_files_that_dont_have_a_coresponding_book() { - var artist = Builder.CreateNew() + var author = Builder.CreateNew() .BuildNew(); - Db.Insert(artist); + Db.Insert(author); var metadataFile = Builder.CreateNew() - .With(m => m.AuthorId = artist.Id) + .With(m => m.AuthorId = author.Id) .With(m => m.BookFileId = null) .BuildNew(); @@ -45,15 +45,15 @@ namespace NzbDrone.Core.Test.Housekeeping.Housekeepers } [Test] - public void should_not_delete_metadata_files_that_have_a_coresponding_artist() + public void should_not_delete_metadata_files_that_have_a_coresponding_author() { - var artist = Builder.CreateNew() + var author = Builder.CreateNew() .BuildNew(); - Db.Insert(artist); + Db.Insert(author); var metadataFile = Builder.CreateNew() - .With(m => m.AuthorId = artist.Id) + .With(m => m.AuthorId = author.Id) .With(m => m.BookId = null) .With(m => m.BookFileId = null) .BuildNew(); @@ -65,20 +65,20 @@ namespace NzbDrone.Core.Test.Housekeeping.Housekeepers } [Test] - public void should_not_delete_metadata_files_that_have_a_coresponding_album() + public void should_not_delete_metadata_files_that_have_a_coresponding_book() { - var artist = Builder.CreateNew() + var author = Builder.CreateNew() .BuildNew(); - var album = Builder.CreateNew() + var book = Builder.CreateNew() .BuildNew(); - Db.Insert(artist); - Db.Insert(album); + Db.Insert(author); + Db.Insert(book); var metadataFile = Builder.CreateNew() - .With(m => m.AuthorId = artist.Id) - .With(m => m.BookId = album.Id) + .With(m => m.AuthorId = author.Id) + .With(m => m.BookId = book.Id) .With(m => m.BookFileId = null) .BuildNew(); @@ -90,18 +90,18 @@ namespace NzbDrone.Core.Test.Housekeeping.Housekeepers [Test] public void should_delete_metadata_files_that_dont_have_a_coresponding_track_file() { - var artist = Builder.CreateNew() + var author = Builder.CreateNew() .BuildNew(); - var album = Builder.CreateNew() + var book = Builder.CreateNew() .BuildNew(); - Db.Insert(artist); - Db.Insert(album); + Db.Insert(author); + Db.Insert(book); var metadataFile = Builder.CreateNew() - .With(m => m.AuthorId = artist.Id) - .With(m => m.BookId = album.Id) + .With(m => m.AuthorId = author.Id) + .With(m => m.BookId = book.Id) .With(m => m.BookFileId = 10) .BuildNew(); @@ -113,23 +113,23 @@ namespace NzbDrone.Core.Test.Housekeeping.Housekeepers [Test] public void should_not_delete_metadata_files_that_have_a_coresponding_track_file() { - var artist = Builder.CreateNew() + var author = Builder.CreateNew() .BuildNew(); - var album = Builder.CreateNew() + var book = Builder.CreateNew() .BuildNew(); var trackFile = Builder.CreateNew() .With(h => h.Quality = new QualityModel()) .BuildNew(); - Db.Insert(artist); - Db.Insert(album); + Db.Insert(author); + Db.Insert(book); Db.Insert(trackFile); var metadataFile = Builder.CreateNew() - .With(m => m.AuthorId = artist.Id) - .With(m => m.BookId = album.Id) + .With(m => m.AuthorId = author.Id) + .With(m => m.BookId = book.Id) .With(m => m.BookFileId = trackFile.Id) .BuildNew(); @@ -139,15 +139,15 @@ namespace NzbDrone.Core.Test.Housekeeping.Housekeepers } [Test] - public void should_delete_album_metadata_files_that_have_albumid_of_zero() + public void should_delete_book_metadata_files_that_have_bookid_of_zero() { - var artist = Builder.CreateNew() + var author = Builder.CreateNew() .BuildNew(); - Db.Insert(artist); + Db.Insert(author); var metadataFile = Builder.CreateNew() - .With(m => m.AuthorId = artist.Id) + .With(m => m.AuthorId = author.Id) .With(m => m.Type = MetadataType.BookMetadata) .With(m => m.BookId = 0) .With(m => m.BookFileId = null) @@ -159,15 +159,15 @@ namespace NzbDrone.Core.Test.Housekeeping.Housekeepers } [Test] - public void should_delete_album_image_files_that_have_albumid_of_zero() + public void should_delete_book_image_files_that_have_bookid_of_zero() { - var artist = Builder.CreateNew() + var author = Builder.CreateNew() .BuildNew(); - Db.Insert(artist); + Db.Insert(author); var metadataFile = Builder.CreateNew() - .With(m => m.AuthorId = artist.Id) + .With(m => m.AuthorId = author.Id) .With(m => m.Type = MetadataType.BookImage) .With(m => m.BookId = 0) .With(m => m.BookFileId = null) @@ -181,13 +181,13 @@ namespace NzbDrone.Core.Test.Housekeeping.Housekeepers [Test] public void should_delete_track_metadata_files_that_have_trackfileid_of_zero() { - var artist = Builder.CreateNew() + var author = Builder.CreateNew() .BuildNew(); - Db.Insert(artist); + Db.Insert(author); var metadataFile = Builder.CreateNew() - .With(m => m.AuthorId = artist.Id) + .With(m => m.AuthorId = author.Id) .With(m => m.Type = MetadataType.BookMetadata) .With(m => m.BookFileId = 0) .BuildNew(); diff --git a/src/NzbDrone.Core.Test/Housekeeping/Housekeepers/CleanupOrphanedPendingReleasesFixture.cs b/src/NzbDrone.Core.Test/Housekeeping/Housekeepers/CleanupOrphanedPendingReleasesFixture.cs index 1840cda46..5127da11a 100644 --- a/src/NzbDrone.Core.Test/Housekeeping/Housekeepers/CleanupOrphanedPendingReleasesFixture.cs +++ b/src/NzbDrone.Core.Test/Housekeeping/Housekeepers/CleanupOrphanedPendingReleasesFixture.cs @@ -28,12 +28,12 @@ namespace NzbDrone.Core.Test.Housekeeping.Housekeepers [Test] public void should_not_delete_unorphaned_pending_items() { - var artist = Builder.CreateNew().BuildNew(); + var author = Builder.CreateNew().BuildNew(); - Db.Insert(artist); + Db.Insert(author); var pendingRelease = Builder.CreateNew() - .With(h => h.AuthorId = artist.Id) + .With(h => h.AuthorId = author.Id) .With(h => h.ParsedBookInfo = new ParsedBookInfo()) .With(h => h.Release = new ReleaseInfo()) .BuildNew(); diff --git a/src/NzbDrone.Core.Test/Housekeeping/Housekeepers/UpdateCleanTitleForAuthorFixture.cs b/src/NzbDrone.Core.Test/Housekeeping/Housekeepers/UpdateCleanTitleForAuthorFixture.cs index d1393dbda..df449d796 100644 --- a/src/NzbDrone.Core.Test/Housekeeping/Housekeepers/UpdateCleanTitleForAuthorFixture.cs +++ b/src/NzbDrone.Core.Test/Housekeeping/Housekeepers/UpdateCleanTitleForAuthorFixture.cs @@ -13,14 +13,14 @@ namespace NzbDrone.Core.Test.Housekeeping.Housekeepers [Test] public void should_update_clean_title() { - var artist = Builder.CreateNew() + var author = Builder.CreateNew() .With(s => s.Name = "Full Name") .With(s => s.CleanName = "unclean") .Build(); Mocker.GetMock() .Setup(s => s.All()) - .Returns(new[] { artist }); + .Returns(new[] { author }); Subject.Clean(); @@ -31,14 +31,14 @@ namespace NzbDrone.Core.Test.Housekeeping.Housekeepers [Test] public void should_not_update_unchanged_title() { - var artist = Builder.CreateNew() + var author = Builder.CreateNew() .With(s => s.Name = "Full Name") .With(s => s.CleanName = "fullname") .Build(); Mocker.GetMock() .Setup(s => s.All()) - .Returns(new[] { artist }); + .Returns(new[] { author }); Subject.Clean(); diff --git a/src/NzbDrone.Core.Test/ImportListTests/ImportListSyncServiceFixture.cs b/src/NzbDrone.Core.Test/ImportListTests/ImportListSyncServiceFixture.cs index 1f82da268..cc96c58b7 100644 --- a/src/NzbDrone.Core.Test/ImportListTests/ImportListSyncServiceFixture.cs +++ b/src/NzbDrone.Core.Test/ImportListTests/ImportListSyncServiceFixture.cs @@ -73,7 +73,7 @@ namespace NzbDrone.Core.Test.ImportListTests .Returns, bool>((x, y) => x); } - private void WithAlbum() + private void WithBook() { _importListReports.First().Book = "Meteora"; } @@ -88,21 +88,21 @@ namespace NzbDrone.Core.Test.ImportListTests _importListReports.First().EditionGoodreadsId = "1234"; } - private void WithExistingArtist() + private void WithExistingAuthor() { Mocker.GetMock() .Setup(v => v.FindById(_importListReports.First().AuthorGoodreadsId)) .Returns(new Author { ForeignAuthorId = _importListReports.First().AuthorGoodreadsId }); } - private void WithExistingAlbum() + private void WithExistingBook() { Mocker.GetMock() .Setup(v => v.FindById(_importListReports.First().EditionGoodreadsId)) .Returns(new Book { ForeignBookId = _importListReports.First().EditionGoodreadsId }); } - private void WithExcludedArtist() + private void WithExcludedAuthor() { Mocker.GetMock() .Setup(v => v.All()) @@ -115,7 +115,7 @@ namespace NzbDrone.Core.Test.ImportListTests }); } - private void WithExcludedAlbum() + private void WithExcludedBook() { Mocker.GetMock() .Setup(v => v.All()) @@ -136,7 +136,7 @@ namespace NzbDrone.Core.Test.ImportListTests } [Test] - public void should_search_if_artist_title_and_no_artist_id() + public void should_search_if_author_title_and_no_author_id() { Subject.Execute(new ImportListSyncCommand()); @@ -145,7 +145,7 @@ namespace NzbDrone.Core.Test.ImportListTests } [Test] - public void should_not_search_if_artist_title_and_artist_id() + public void should_not_search_if_author_title_and_author_id() { WithAuthorId(); Subject.Execute(new ImportListSyncCommand()); @@ -155,9 +155,9 @@ namespace NzbDrone.Core.Test.ImportListTests } [Test] - public void should_search_if_album_title_and_no_album_id() + public void should_search_if_book_title_and_no_book_id() { - WithAlbum(); + WithBook(); Subject.Execute(new ImportListSyncCommand()); Mocker.GetMock() @@ -165,7 +165,7 @@ namespace NzbDrone.Core.Test.ImportListTests } [Test] - public void should_not_search_if_album_title_and_album_id() + public void should_not_search_if_book_title_and_book_id() { WithAuthorId(); WithBookId(); @@ -179,7 +179,7 @@ namespace NzbDrone.Core.Test.ImportListTests public void should_not_search_if_all_info() { WithAuthorId(); - WithAlbum(); + WithBook(); WithBookId(); Subject.Execute(new ImportListSyncCommand()); @@ -191,10 +191,10 @@ namespace NzbDrone.Core.Test.ImportListTests } [Test] - public void should_not_add_if_existing_artist() + public void should_not_add_if_existing_author() { WithAuthorId(); - WithExistingArtist(); + WithExistingAuthor(); Subject.Execute(new ImportListSyncCommand()); @@ -203,10 +203,10 @@ namespace NzbDrone.Core.Test.ImportListTests } [Test] - public void should_not_add_if_existing_album() + public void should_not_add_if_existing_book() { WithBookId(); - WithExistingAlbum(); + WithExistingBook(); Subject.Execute(new ImportListSyncCommand()); @@ -215,10 +215,10 @@ namespace NzbDrone.Core.Test.ImportListTests } [Test] - public void should_add_if_existing_artist_but_new_album() + public void should_add_if_existing_author_but_new_book() { WithBookId(); - WithExistingArtist(); + WithExistingAuthor(); Subject.Execute(new ImportListSyncCommand()); @@ -229,7 +229,7 @@ namespace NzbDrone.Core.Test.ImportListTests [TestCase(ImportListMonitorType.None, false)] [TestCase(ImportListMonitorType.SpecificBook, true)] [TestCase(ImportListMonitorType.EntireAuthor, true)] - public void should_add_if_not_existing_artist(ImportListMonitorType monitor, bool expectedArtistMonitored) + public void should_add_if_not_existing_author(ImportListMonitorType monitor, bool expectedAuthorMonitored) { WithAuthorId(); WithMonitorType(monitor); @@ -237,13 +237,13 @@ namespace NzbDrone.Core.Test.ImportListTests Subject.Execute(new ImportListSyncCommand()); Mocker.GetMock() - .Verify(v => v.AddAuthors(It.Is>(t => t.Count == 1 && t.First().Monitored == expectedArtistMonitored), false)); + .Verify(v => v.AddAuthors(It.Is>(t => t.Count == 1 && t.First().Monitored == expectedAuthorMonitored), false)); } [TestCase(ImportListMonitorType.None, false)] [TestCase(ImportListMonitorType.SpecificBook, true)] [TestCase(ImportListMonitorType.EntireAuthor, true)] - public void should_add_if_not_existing_album(ImportListMonitorType monitor, bool expectedAlbumMonitored) + public void should_add_if_not_existing_book(ImportListMonitorType monitor, bool expectedBookMonitored) { WithBookId(); WithMonitorType(monitor); @@ -251,14 +251,14 @@ namespace NzbDrone.Core.Test.ImportListTests Subject.Execute(new ImportListSyncCommand()); Mocker.GetMock() - .Verify(v => v.AddBooks(It.Is>(t => t.Count == 1 && t.First().Monitored == expectedAlbumMonitored), false)); + .Verify(v => v.AddBooks(It.Is>(t => t.Count == 1 && t.First().Monitored == expectedBookMonitored), false)); } [Test] - public void should_not_add_artist_if_excluded_artist() + public void should_not_add_author_if_excluded_author() { WithAuthorId(); - WithExcludedArtist(); + WithExcludedAuthor(); Subject.Execute(new ImportListSyncCommand()); @@ -267,10 +267,10 @@ namespace NzbDrone.Core.Test.ImportListTests } [Test] - public void should_not_add_album_if_excluded_album() + public void should_not_add_book_if_excluded_book() { WithBookId(); - WithExcludedAlbum(); + WithExcludedBook(); Subject.Execute(new ImportListSyncCommand()); @@ -279,11 +279,11 @@ namespace NzbDrone.Core.Test.ImportListTests } [Test] - public void should_not_add_album_if_excluded_artist() + public void should_not_add_book_if_excluded_author() { WithBookId(); WithAuthorId(); - WithExcludedArtist(); + WithExcludedAuthor(); Subject.Execute(new ImportListSyncCommand()); diff --git a/src/NzbDrone.Core.Test/IndexerSearchTests/ArtistSearchServiceFixture.cs b/src/NzbDrone.Core.Test/IndexerSearchTests/ArtistSearchServiceFixture.cs index c66a722f9..14a8ea802 100644 --- a/src/NzbDrone.Core.Test/IndexerSearchTests/ArtistSearchServiceFixture.cs +++ b/src/NzbDrone.Core.Test/IndexerSearchTests/ArtistSearchServiceFixture.cs @@ -12,21 +12,21 @@ using NzbDrone.Core.Test.Framework; namespace NzbDrone.Core.Test.IndexerSearchTests { [TestFixture] - public class ArtistSearchServiceFixture : CoreTest + public class AuthorSearchServiceFixture : CoreTest { - private Author _artist; + private Author _author; [SetUp] public void Setup() { - _artist = new Author(); + _author = new Author(); Mocker.GetMock() .Setup(s => s.GetAuthor(It.IsAny())) - .Returns(_artist); + .Returns(_author); Mocker.GetMock() - .Setup(s => s.AuthorSearch(_artist.Id, false, true, false)) + .Setup(s => s.AuthorSearch(_author.Id, false, true, false)) .Returns(new List()); Mocker.GetMock() @@ -35,19 +35,19 @@ namespace NzbDrone.Core.Test.IndexerSearchTests } [Test] - public void should_only_include_monitored_albums() + public void should_only_include_monitored_books() { - _artist.Books = new List + _author.Books = new List { new Book { Monitored = false }, new Book { Monitored = true } }; - Subject.Execute(new AuthorSearchCommand { AuthorId = _artist.Id, Trigger = CommandTrigger.Manual }); + Subject.Execute(new AuthorSearchCommand { AuthorId = _author.Id, Trigger = CommandTrigger.Manual }); Mocker.GetMock() - .Verify(v => v.AuthorSearch(_artist.Id, false, true, false), - Times.Exactly(_artist.Books.Value.Count(s => s.Monitored))); + .Verify(v => v.AuthorSearch(_author.Id, false, true, false), + Times.Exactly(_author.Books.Value.Count(s => s.Monitored))); } } } diff --git a/src/NzbDrone.Core.Test/IndexerSearchTests/SearchDefinitionFixture.cs b/src/NzbDrone.Core.Test/IndexerSearchTests/SearchDefinitionFixture.cs index 873e0e450..43b5be895 100644 --- a/src/NzbDrone.Core.Test/IndexerSearchTests/SearchDefinitionFixture.cs +++ b/src/NzbDrone.Core.Test/IndexerSearchTests/SearchDefinitionFixture.cs @@ -6,13 +6,13 @@ using NzbDrone.Core.Test.Framework; namespace NzbDrone.Core.Test.IndexerSearchTests { - public class AlbumSearchDefinitionFixture : CoreTest + public class BookSearchDefinitionFixture : CoreTest { [TestCase("Mötley Crüe", "Motley+Crue")] [TestCase("방탄소년단", "방탄소년단")] - public void should_replace_some_special_characters_artist(string artist, string expected) + public void should_replace_some_special_characters_author(string author, string expected) { - Subject.Author = new Author { Name = artist }; + Subject.Author = new Author { Name = author }; Subject.AuthorQuery.Should().Be(expected); } @@ -22,16 +22,16 @@ namespace NzbDrone.Core.Test.IndexerSearchTests [TestCase("¿Quién sabe?", "Quien+sabe")] [TestCase("Seal the Deal & Let’s Boogie", "Seal+the+Deal+Let’s+Boogie")] [TestCase("Section.80", "Section+80")] - public void should_replace_some_special_characters(string album, string expected) + public void should_replace_some_special_characters(string book, string expected) { - Subject.BookTitle = album; + Subject.BookTitle = book; Subject.BookQuery.Should().Be(expected); } [TestCase("+", "+")] - public void should_not_replace_some_special_characters_if_result_empty_string(string album, string expected) + public void should_not_replace_some_special_characters_if_result_empty_string(string book, string expected) { - Subject.BookTitle = album; + Subject.BookTitle = book; Subject.BookQuery.Should().Be(expected); } } diff --git a/src/NzbDrone.Core.Test/IndexerTests/IntegrationTests/IndexerIntegrationTests.cs b/src/NzbDrone.Core.Test/IndexerTests/IntegrationTests/IndexerIntegrationTests.cs index 037746696..cb749bafc 100644 --- a/src/NzbDrone.Core.Test/IndexerTests/IntegrationTests/IndexerIntegrationTests.cs +++ b/src/NzbDrone.Core.Test/IndexerTests/IntegrationTests/IndexerIntegrationTests.cs @@ -14,14 +14,14 @@ namespace NzbDrone.Core.Test.IndexerTests.IntegrationTests [IntegrationTest] public class IndexerIntegrationTests : CoreTest { - private BookSearchCriteria _albumSearchCriteria; + private BookSearchCriteria _bookSearchCriteria; [SetUp] public void SetUp() { UseRealHttp(); - _albumSearchCriteria = new BookSearchCriteria() + _bookSearchCriteria = new BookSearchCriteria() { }; } diff --git a/src/NzbDrone.Core.Test/IndexerTests/NewznabTests/NewznabRequestGeneratorFixture.cs b/src/NzbDrone.Core.Test/IndexerTests/NewznabTests/NewznabRequestGeneratorFixture.cs index 82b278277..f55168f78 100644 --- a/src/NzbDrone.Core.Test/IndexerTests/NewznabTests/NewznabRequestGeneratorFixture.cs +++ b/src/NzbDrone.Core.Test/IndexerTests/NewznabTests/NewznabRequestGeneratorFixture.cs @@ -10,7 +10,7 @@ namespace NzbDrone.Core.Test.IndexerTests.NewznabTests { public class NewznabRequestGeneratorFixture : CoreTest { - private BookSearchCriteria _singleAlbumSearchCriteria; + private BookSearchCriteria _singleBookSearchCriteria; private NewznabCapabilities _capabilities; [SetUp] @@ -23,7 +23,7 @@ namespace NzbDrone.Core.Test.IndexerTests.NewznabTests ApiKey = "abcd", }; - _singleAlbumSearchCriteria = new BookSearchCriteria + _singleBookSearchCriteria = new BookSearchCriteria { Author = new Books.Author { Name = "Alien Ant Farm" }, BookTitle = "TruANT" @@ -50,11 +50,11 @@ namespace NzbDrone.Core.Test.IndexerTests.NewznabTests [Test] [Ignore("Disabled since no usenet indexers seem to support it")] - public void should_search_by_artist_and_album_if_supported() + public void should_search_by_author_and_book_if_supported() { _capabilities.SupportedBookSearchParameters = new[] { "q", "author", "title" }; - var results = Subject.GetSearchRequests(_singleAlbumSearchCriteria); + var results = Subject.GetSearchRequests(_singleBookSearchCriteria); results.GetTier(0).Should().HaveCount(1); var page = results.GetAllTiers().First().First(); diff --git a/src/NzbDrone.Core.Test/MediaCoverTests/MediaCoverServiceFixture.cs b/src/NzbDrone.Core.Test/MediaCoverTests/MediaCoverServiceFixture.cs index 40d951367..731ff900c 100644 --- a/src/NzbDrone.Core.Test/MediaCoverTests/MediaCoverServiceFixture.cs +++ b/src/NzbDrone.Core.Test/MediaCoverTests/MediaCoverServiceFixture.cs @@ -98,7 +98,7 @@ namespace NzbDrone.Core.Test.MediaCoverTests [TestCase(".png")] [TestCase(".jpg")] - public void should_convert_album_cover_urls_to_local(string extension) + public void should_convert_book_cover_urls_to_local(string extension) { var covers = new List { diff --git a/src/NzbDrone.Core.Test/MediaFiles/AudioTagServiceFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/AudioTagServiceFixture.cs index bb68724e9..b01bca7c2 100644 --- a/src/NzbDrone.Core.Test/MediaFiles/AudioTagServiceFixture.cs +++ b/src/NzbDrone.Core.Test/MediaFiles/AudioTagServiceFixture.cs @@ -78,7 +78,7 @@ namespace NzbDrone.Core.Test.MediaFiles.AudioTagServiceFixture .With(x => x.OriginalReleaseDate = new DateTime(2009, 4, 1)) .With(x => x.OriginalYear = 2009) .With(x => x.Performers = new[] { "Performer1" }) - .With(x => x.AlbumArtists = new[] { "방탄소년단" }) + .With(x => x.BookAuthors = new[] { "방탄소년단" }) .With(x => x.Genres = new[] { "Genre1", "Genre2" }) .With(x => x.ImageFile = imageFile) .With(x => x.ImageSize = imageSize) @@ -209,7 +209,7 @@ namespace NzbDrone.Core.Test.MediaFiles.AudioTagServiceFixture var expected = new AudioTag() { Performers = new string[0], - AlbumArtists = new string[0], + BookAuthors = new string[0], Genres = new string[0] }; @@ -307,21 +307,21 @@ namespace NzbDrone.Core.Test.MediaFiles.AudioTagServiceFixture private BookFile GivenPopulatedTrackfile(int mediumOffset) { var meta = Builder.CreateNew().Build(); - var artist = Builder.CreateNew() + var author = Builder.CreateNew() .With(x => x.Metadata = meta) .Build(); - var album = Builder.CreateNew() - .With(x => x.Author = artist) + var book = Builder.CreateNew() + .With(x => x.Author = author) .Build(); var edition = Builder.CreateNew() - .With(x => x.Book = album) + .With(x => x.Book = book) .Build(); var file = Builder.CreateNew() .With(x => x.Edition = edition) - .With(x => x.Author = artist) + .With(x => x.Author = author) .Build(); return file; diff --git a/src/NzbDrone.Core.Test/MediaFiles/DiskScanServiceTests/ScanFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/DiskScanServiceTests/ScanFixture.cs index f7b173b30..0c55c8d8c 100644 --- a/src/NzbDrone.Core.Test/MediaFiles/DiskScanServiceTests/ScanFixture.cs +++ b/src/NzbDrone.Core.Test/MediaFiles/DiskScanServiceTests/ScanFixture.cs @@ -9,6 +9,7 @@ using FluentAssertions; using Moq; using NUnit.Framework; using NzbDrone.Common.Disk; +using NzbDrone.Core.Books; using NzbDrone.Core.DecisionEngine; using NzbDrone.Core.MediaFiles; using NzbDrone.Core.MediaFiles.BookImport; @@ -31,11 +32,11 @@ namespace NzbDrone.Core.Test.MediaFiles.DiskScanServiceTests public void Setup() { _rootFolder = @"C:\Test\Music".AsOsAgnostic(); - _otherAuthorFolder = @"C:\Test\Music\OtherArtist".AsOsAgnostic(); - var artistFolder = @"C:\Test\Music\Artist".AsOsAgnostic(); + _otherAuthorFolder = @"C:\Test\Music\OtherAuthor".AsOsAgnostic(); + var authorFolder = @"C:\Test\Music\Author".AsOsAgnostic(); _author = Builder.CreateNew() - .With(s => s.Path = artistFolder) + .With(s => s.Path = authorFolder) .Build(); Mocker.GetMock() @@ -73,7 +74,7 @@ namespace NzbDrone.Core.Test.MediaFiles.DiskScanServiceTests } } - private void GivenArtistFolder() + private void GivenAuthorFolder() { GivenRootFolder(_author.Path); } @@ -161,9 +162,9 @@ namespace NzbDrone.Core.Test.MediaFiles.DiskScanServiceTests } [Test] - public void should_find_files_at_root_of_artist_folder() + public void should_find_files_at_root_of_author_folder() { - GivenArtistFolder(); + GivenAuthorFolder(); GivenFiles(new List { @@ -180,7 +181,7 @@ namespace NzbDrone.Core.Test.MediaFiles.DiskScanServiceTests [Test] public void should_not_scan_extras_subfolder() { - GivenArtistFolder(); + GivenAuthorFolder(); GivenFiles(new List { @@ -200,7 +201,7 @@ namespace NzbDrone.Core.Test.MediaFiles.DiskScanServiceTests [Test] public void should_not_scan_AppleDouble_subfolder() { - GivenArtistFolder(); + GivenAuthorFolder(); GivenFiles(new List { @@ -216,11 +217,11 @@ namespace NzbDrone.Core.Test.MediaFiles.DiskScanServiceTests } [Test] - public void should_scan_extras_artist_and_subfolders() + public void should_scan_extras_author_and_subfolders() { _author.Path = @"C:\Test\Music\Extras".AsOsAgnostic(); - GivenArtistFolder(); + GivenAuthorFolder(); GivenFiles(new List { @@ -241,11 +242,11 @@ namespace NzbDrone.Core.Test.MediaFiles.DiskScanServiceTests [Test] public void should_scan_files_that_start_with_period() { - GivenArtistFolder(); + GivenAuthorFolder(); GivenFiles(new List { - Path.Combine(_author.Path, "Album 1", ".t01.mobi") + Path.Combine(_author.Path, "Book 1", ".t01.mobi") }); Subject.Scan(new List { _author.Path }); @@ -257,7 +258,7 @@ namespace NzbDrone.Core.Test.MediaFiles.DiskScanServiceTests [Test] public void should_not_scan_subfolders_that_start_with_period() { - GivenArtistFolder(); + GivenAuthorFolder(); GivenFiles(new List { @@ -276,7 +277,7 @@ namespace NzbDrone.Core.Test.MediaFiles.DiskScanServiceTests [Test] public void should_not_scan_subfolder_of_season_folder_that_starts_with_a_period() { - GivenArtistFolder(); + GivenAuthorFolder(); GivenFiles(new List { @@ -296,7 +297,7 @@ namespace NzbDrone.Core.Test.MediaFiles.DiskScanServiceTests [Test] public void should_not_scan_Synology_eaDir() { - GivenArtistFolder(); + GivenAuthorFolder(); GivenFiles(new List { @@ -313,7 +314,7 @@ namespace NzbDrone.Core.Test.MediaFiles.DiskScanServiceTests [Test] public void should_not_scan_thumb_folder() { - GivenArtistFolder(); + GivenAuthorFolder(); GivenFiles(new List { @@ -332,7 +333,7 @@ namespace NzbDrone.Core.Test.MediaFiles.DiskScanServiceTests { _author.Path = @"C:\Test\Music\.hack".AsOsAgnostic(); - GivenArtistFolder(); + GivenAuthorFolder(); GivenFiles(new List { @@ -349,7 +350,7 @@ namespace NzbDrone.Core.Test.MediaFiles.DiskScanServiceTests [Test] public void should_exclude_osx_metadata_files() { - GivenArtistFolder(); + GivenAuthorFolder(); GivenFiles(new List { diff --git a/src/NzbDrone.Core.Test/MediaFiles/DownloadedAlbumsCommandServiceFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/DownloadedAlbumsCommandServiceFixture.cs index b5d453769..e17498278 100644 --- a/src/NzbDrone.Core.Test/MediaFiles/DownloadedAlbumsCommandServiceFixture.cs +++ b/src/NzbDrone.Core.Test/MediaFiles/DownloadedAlbumsCommandServiceFixture.cs @@ -18,7 +18,7 @@ using NzbDrone.Test.Common; namespace NzbDrone.Core.Test.MediaFiles { [TestFixture] - public class DownloadedAlbumsCommandServiceFixture : FileSystemTest + public class DownloadedBooksCommandServiceFixture : FileSystemTest { private string _downloadFolder = "c:\\drop_other\\Show.S01E01\\".AsOsAgnostic(); private string _downloadFile = "c:\\drop_other\\Show.S01E01.mkv".AsOsAgnostic(); diff --git a/src/NzbDrone.Core.Test/MediaFiles/DownloadedTracksImportServiceFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/DownloadedTracksImportServiceFixture.cs index 773b7d888..ef4683a8d 100644 --- a/src/NzbDrone.Core.Test/MediaFiles/DownloadedTracksImportServiceFixture.cs +++ b/src/NzbDrone.Core.Test/MediaFiles/DownloadedTracksImportServiceFixture.cs @@ -69,10 +69,10 @@ namespace NzbDrone.Core.Test.MediaFiles } } - private void GivenValidArtist() + private void GivenValidAuthor() { Mocker.GetMock() - .Setup(s => s.GetArtist(It.IsAny())) + .Setup(s => s.GetAuthor(It.IsAny())) .Returns(Builder.CreateNew().Build()); } @@ -100,17 +100,17 @@ namespace NzbDrone.Core.Test.MediaFiles } [Test] - public void should_search_for_artist_using_folder_name() + public void should_search_for_author_using_folder_name() { Subject.ProcessRootFolder(DiskProvider.GetDirectoryInfo(_droneFactory)); - Mocker.GetMock().Verify(c => c.GetArtist("foldername"), Times.Once()); + Mocker.GetMock().Verify(c => c.GetAuthor("foldername"), Times.Once()); } [Test] public void should_skip_if_file_is_in_use_by_another_process() { - GivenValidArtist(); + GivenValidAuthor(); foreach (var file in _audioFiles) { @@ -123,9 +123,9 @@ namespace NzbDrone.Core.Test.MediaFiles } [Test] - public void should_skip_if_no_artist_found() + public void should_skip_if_no_author_found() { - Mocker.GetMock().Setup(c => c.GetArtist("foldername")).Returns((Author)null); + Mocker.GetMock().Setup(c => c.GetAuthor("foldername")).Returns((Author)null); Subject.ProcessRootFolder(DiskProvider.GetDirectoryInfo(_droneFactory)); @@ -137,9 +137,9 @@ namespace NzbDrone.Core.Test.MediaFiles } [Test] - public void should_not_import_if_folder_is_a_artist_path() + public void should_not_import_if_folder_is_a_author_path() { - GivenValidArtist(); + GivenValidAuthor(); Mocker.GetMock() .Setup(s => s.AuthorPathExists(It.IsAny())) @@ -173,7 +173,7 @@ namespace NzbDrone.Core.Test.MediaFiles [Test] public void should_not_delete_folder_if_files_were_imported_and_audio_files_remain() { - GivenValidArtist(); + GivenValidAuthor(); var localTrack = new LocalBook(); @@ -206,14 +206,14 @@ namespace NzbDrone.Core.Test.MediaFiles Subject.ProcessRootFolder(DiskProvider.GetDirectoryInfo(_droneFactory)); Mocker.GetMock() - .Verify(v => v.GetArtist(folderName), Times.Once()); + .Verify(v => v.GetAuthor(folderName), Times.Once()); Mocker.GetMock() - .Verify(v => v.GetArtist(It.Is(s => s.StartsWith(prefix))), Times.Never()); + .Verify(v => v.GetAuthor(It.Is(s => s.StartsWith(prefix))), Times.Never()); } [Test] - public void should_return_importresult_on_unknown_artist() + public void should_return_importresult_on_unknown_author() { var fileName = @"C:\folder\file.mkv".AsOsAgnostic(); FileSystem.AddFile(fileName, new MockFileData(string.Empty)); @@ -230,7 +230,7 @@ namespace NzbDrone.Core.Test.MediaFiles [Test] public void should_not_delete_if_there_is_large_rar_file() { - GivenValidArtist(); + GivenValidAuthor(); var localTrack = new LocalBook(); @@ -262,7 +262,7 @@ namespace NzbDrone.Core.Test.MediaFiles Subject.ProcessPath(folderName).Should().BeEmpty(); Mocker.GetMock() - .Verify(v => v.GetArtist(It.IsAny()), Times.Never()); + .Verify(v => v.GetAuthor(It.IsAny()), Times.Never()); ExceptionVerification.ExpectedErrors(1); } @@ -270,7 +270,7 @@ namespace NzbDrone.Core.Test.MediaFiles [Test] public void should_not_delete_if_no_files_were_imported() { - GivenValidArtist(); + GivenValidAuthor(); var localTrack = new LocalBook(); @@ -296,7 +296,7 @@ namespace NzbDrone.Core.Test.MediaFiles [Test] public void should_not_delete_folder_after_import() { - GivenValidArtist(); + GivenValidAuthor(); GivenSuccessfulImport(); @@ -310,7 +310,7 @@ namespace NzbDrone.Core.Test.MediaFiles [Test] public void should_delete_folder_if_importmode_move() { - GivenValidArtist(); + GivenValidAuthor(); GivenSuccessfulImport(); @@ -324,7 +324,7 @@ namespace NzbDrone.Core.Test.MediaFiles [Test] public void should_not_delete_folder_if_importmode_copy() { - GivenValidArtist(); + GivenValidAuthor(); GivenSuccessfulImport(); diff --git a/src/NzbDrone.Core.Test/MediaFiles/ImportApprovedTracksFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/ImportApprovedTracksFixture.cs index 9f0653a11..be7f0dc85 100644 --- a/src/NzbDrone.Core.Test/MediaFiles/ImportApprovedTracksFixture.cs +++ b/src/NzbDrone.Core.Test/MediaFiles/ImportApprovedTracksFixture.cs @@ -36,17 +36,17 @@ namespace NzbDrone.Core.Test.MediaFiles _rejectedDecisions = new List>(); _approvedDecisions = new List>(); - var artist = Builder.CreateNew() + var author = Builder.CreateNew() .With(e => e.QualityProfile = new QualityProfile { Items = Qualities.QualityFixture.GetDefaultQualities() }) .With(s => s.Path = @"C:\Test\Music\Alien Ant Farm".AsOsAgnostic()) .Build(); - var album = Builder.CreateNew() - .With(e => e.Author = artist) + var book = Builder.CreateNew() + .With(e => e.Author = author) .Build(); var edition = Builder.CreateNew() - .With(e => e.Book = album) + .With(e => e.Book = book) .Build(); var rootFolder = Builder.CreateNew() @@ -60,10 +60,10 @@ namespace NzbDrone.Core.Test.MediaFiles _approvedDecisions.Add(new ImportDecision( new LocalBook { - Author = artist, - Book = album, + Author = author, + Book = book, Edition = edition, - Path = Path.Combine(artist.Path, "Alien Ant Farm - 01 - Pilot.mp3"), + Path = Path.Combine(author.Path, "Alien Ant Farm - 01 - Pilot.mp3"), Quality = new QualityModel(Quality.MP3_320), FileTrackInfo = new ParsedTrackInfo { diff --git a/src/NzbDrone.Core.Test/MediaFiles/MediaFileDeletionService/DeleteTrackFileFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/MediaFileDeletionService/DeleteTrackFileFixture.cs index 306560e56..a82947cb0 100644 --- a/src/NzbDrone.Core.Test/MediaFiles/MediaFileDeletionService/DeleteTrackFileFixture.cs +++ b/src/NzbDrone.Core.Test/MediaFiles/MediaFileDeletionService/DeleteTrackFileFixture.cs @@ -15,27 +15,27 @@ namespace NzbDrone.Core.Test.MediaFiles.MediaFileDeletionService public class DeleteTrackFileFixture : CoreTest { private static readonly string RootFolder = @"C:\Test\Music"; - private Author _artist; + private Author _author; private BookFile _trackFile; [SetUp] public void Setup() { - _artist = Builder.CreateNew() - .With(s => s.Path = Path.Combine(RootFolder, "Artist Name")) + _author = Builder.CreateNew() + .With(s => s.Path = Path.Combine(RootFolder, "Author Name")) .Build(); _trackFile = Builder.CreateNew() - .With(f => f.Path = "/Artist Name - Track01") + .With(f => f.Path = "/Author Name - Track01") .Build(); Mocker.GetMock() - .Setup(s => s.GetParentFolder(_artist.Path)) + .Setup(s => s.GetParentFolder(_author.Path)) .Returns(RootFolder); Mocker.GetMock() .Setup(s => s.GetParentFolder(_trackFile.Path)) - .Returns(_artist.Path); + .Returns(_author.Path); } private void GivenRootFolderExists() @@ -49,20 +49,20 @@ namespace NzbDrone.Core.Test.MediaFiles.MediaFileDeletionService { Mocker.GetMock() .Setup(s => s.GetDirectories(RootFolder)) - .Returns(new[] { _artist.Path }); + .Returns(new[] { _author.Path }); } - private void GivenArtistFolderExists() + private void GivenAuthorFolderExists() { Mocker.GetMock() - .Setup(s => s.FolderExists(_artist.Path)) + .Setup(s => s.FolderExists(_author.Path)) .Returns(true); } [Test] public void should_throw_if_root_folder_does_not_exist() { - Assert.Throws(() => Subject.DeleteTrackFile(_artist, _trackFile)); + Assert.Throws(() => Subject.DeleteTrackFile(_author, _trackFile)); ExceptionVerification.ExpectedWarns(1); } @@ -70,17 +70,17 @@ namespace NzbDrone.Core.Test.MediaFiles.MediaFileDeletionService public void should_throw_if_root_folder_is_empty() { GivenRootFolderExists(); - Assert.Throws(() => Subject.DeleteTrackFile(_artist, _trackFile)); + Assert.Throws(() => Subject.DeleteTrackFile(_author, _trackFile)); ExceptionVerification.ExpectedWarns(1); } [Test] - public void should_delete_from_db_if_artist_folder_does_not_exist() + public void should_delete_from_db_if_author_folder_does_not_exist() { GivenRootFolderExists(); GivenRootFolderHasFolders(); - Subject.DeleteTrackFile(_artist, _trackFile); + Subject.DeleteTrackFile(_author, _trackFile); Mocker.GetMock().Verify(v => v.Delete(_trackFile, DeleteMediaFileReason.Manual), Times.Once()); Mocker.GetMock().Verify(v => v.DeleteFile(_trackFile.Path, It.IsAny()), Times.Never()); @@ -91,9 +91,9 @@ namespace NzbDrone.Core.Test.MediaFiles.MediaFileDeletionService { GivenRootFolderExists(); GivenRootFolderHasFolders(); - GivenArtistFolderExists(); + GivenAuthorFolderExists(); - Subject.DeleteTrackFile(_artist, _trackFile); + Subject.DeleteTrackFile(_author, _trackFile); Mocker.GetMock().Verify(v => v.Delete(_trackFile, DeleteMediaFileReason.Manual), Times.Once()); Mocker.GetMock().Verify(v => v.DeleteFile(_trackFile.Path, It.IsAny()), Times.Never()); @@ -104,15 +104,15 @@ namespace NzbDrone.Core.Test.MediaFiles.MediaFileDeletionService { GivenRootFolderExists(); GivenRootFolderHasFolders(); - GivenArtistFolderExists(); + GivenAuthorFolderExists(); Mocker.GetMock() .Setup(s => s.FileExists(_trackFile.Path)) .Returns(true); - Subject.DeleteTrackFile(_artist, _trackFile); + Subject.DeleteTrackFile(_author, _trackFile); - Mocker.GetMock().Verify(v => v.DeleteFile(_trackFile.Path, "Artist Name"), Times.Once()); + Mocker.GetMock().Verify(v => v.DeleteFile(_trackFile.Path, "Author Name"), Times.Once()); Mocker.GetMock().Verify(v => v.Delete(_trackFile, DeleteMediaFileReason.Manual), Times.Once()); } @@ -121,20 +121,20 @@ namespace NzbDrone.Core.Test.MediaFiles.MediaFileDeletionService { GivenRootFolderExists(); GivenRootFolderHasFolders(); - GivenArtistFolderExists(); + GivenAuthorFolderExists(); Mocker.GetMock() .Setup(s => s.FileExists(_trackFile.Path)) .Returns(true); Mocker.GetMock() - .Setup(s => s.DeleteFile(_trackFile.Path, "Artist Name")) + .Setup(s => s.DeleteFile(_trackFile.Path, "Author Name")) .Throws(new IOException()); - Assert.Throws(() => Subject.DeleteTrackFile(_artist, _trackFile)); + Assert.Throws(() => Subject.DeleteTrackFile(_author, _trackFile)); ExceptionVerification.ExpectedErrors(1); - Mocker.GetMock().Verify(v => v.DeleteFile(_trackFile.Path, "Artist Name"), Times.Once()); + Mocker.GetMock().Verify(v => v.DeleteFile(_trackFile.Path, "Author Name"), Times.Once()); Mocker.GetMock().Verify(v => v.Delete(_trackFile, DeleteMediaFileReason.Manual), Times.Never()); } } diff --git a/src/NzbDrone.Core.Test/MediaFiles/MediaFileRepositoryFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/MediaFileRepositoryFixture.cs index 4b0082946..ba68ee6eb 100644 --- a/src/NzbDrone.Core.Test/MediaFiles/MediaFileRepositoryFixture.cs +++ b/src/NzbDrone.Core.Test/MediaFiles/MediaFileRepositoryFixture.cs @@ -14,8 +14,8 @@ namespace NzbDrone.Core.Test.MediaFiles [TestFixture] public class MediaFileRepositoryFixture : DbTest { - private Author _artist; - private Book _album; + private Author _author; + private Book _book; private Edition _edition; [SetUp] @@ -26,21 +26,21 @@ namespace NzbDrone.Core.Test.MediaFiles .Build(); Db.Insert(meta); - _artist = Builder.CreateNew() + _author = Builder.CreateNew() .With(a => a.AuthorMetadataId = meta.Id) .With(a => a.Id = 0) .Build(); - Db.Insert(_artist); + Db.Insert(_author); - _album = Builder.CreateNew() + _book = Builder.CreateNew() .With(a => a.Id = 0) - .With(a => a.AuthorMetadataId = _artist.AuthorMetadataId) + .With(a => a.AuthorMetadataId = _author.AuthorMetadataId) .Build(); - Db.Insert(_album); + Db.Insert(_book); _edition = Builder.CreateNew() .With(a => a.Id = 0) - .With(a => a.BookId = _album.Id) + .With(a => a.BookId = _book.Id) .Build(); Db.Insert(_edition); @@ -53,21 +53,21 @@ namespace NzbDrone.Core.Test.MediaFiles .TheRest() .With(c => c.EditionId = 0) .TheFirst(1) - .With(c => c.Path = @"C:\Test\Path\Artist\somefile1.flac".AsOsAgnostic()) + .With(c => c.Path = @"C:\Test\Path\Author\somefile1.flac".AsOsAgnostic()) .TheNext(1) - .With(c => c.Path = @"C:\Test\Path\Artist\somefile2.flac".AsOsAgnostic()) + .With(c => c.Path = @"C:\Test\Path\Author\somefile2.flac".AsOsAgnostic()) .BuildListOfNew(); Db.InsertMany(files); } [Test] - public void get_files_by_artist() + public void get_files_by_author() { VerifyData(); - var artistFiles = Subject.GetFilesByAuthor(_artist.Id); - VerifyEagerLoaded(artistFiles); + var authorFiles = Subject.GetFilesByAuthor(_author.Id); + VerifyEagerLoaded(authorFiles); - artistFiles.Should().OnlyContain(c => c.Author.Value.Id == _artist.Id); + authorFiles.Should().OnlyContain(c => c.Author.Value.Id == _author.Id); } [Test] @@ -101,9 +101,9 @@ namespace NzbDrone.Core.Test.MediaFiles .With(c => c.Id = 0) .With(c => c.Quality = new QualityModel(Quality.MP3_320)) .TheFirst(1) - .With(c => c.Path = @"C:\Test\Path2\Artist\somefile1.flac".AsOsAgnostic()) + .With(c => c.Path = @"C:\Test\Path2\Author\somefile1.flac".AsOsAgnostic()) .TheNext(1) - .With(c => c.Path = @"C:\Test\Path2\Artist\somefile2.flac".AsOsAgnostic()) + .With(c => c.Path = @"C:\Test\Path2\Author\somefile2.flac".AsOsAgnostic()) .BuildListOfNew(); Db.InsertMany(files); @@ -115,7 +115,7 @@ namespace NzbDrone.Core.Test.MediaFiles public void get_file_by_path() { VerifyData(); - var file = Subject.GetFileWithPath(@"C:\Test\Path\Artist\somefile2.flac".AsOsAgnostic()); + var file = Subject.GetFileWithPath(@"C:\Test\Path\Author\somefile2.flac".AsOsAgnostic()); file.Should().NotBeNull(); file.Edition.IsLoaded.Should().BeTrue(); @@ -125,13 +125,13 @@ namespace NzbDrone.Core.Test.MediaFiles } [Test] - public void get_files_by_album() + public void get_files_by_book() { VerifyData(); - var files = Subject.GetFilesByBook(_album.Id); + var files = Subject.GetFilesByBook(_book.Id); VerifyEagerLoaded(files); - files.Should().OnlyContain(c => c.EditionId == _album.Id); + files.Should().OnlyContain(c => c.EditionId == _book.Id); } private void VerifyData() @@ -166,12 +166,12 @@ namespace NzbDrone.Core.Test.MediaFiles } [Test] - public void delete_files_by_album_should_work_if_join_fails() + public void delete_files_by_book_should_work_if_join_fails() { - Db.Delete(_album); - Subject.DeleteFilesByBook(_album.Id); + Db.Delete(_book); + Subject.DeleteFilesByBook(_book.Id); - Db.All().Where(x => x.EditionId == _album.Id).Should().HaveCount(0); + Db.All().Where(x => x.EditionId == _book.Id).Should().HaveCount(0); } } } diff --git a/src/NzbDrone.Core.Test/MediaFiles/MediaFileServiceTests/MediaFileServiceFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/MediaFileServiceTests/MediaFileServiceFixture.cs index 652ef1449..83a5940de 100644 --- a/src/NzbDrone.Core.Test/MediaFiles/MediaFileServiceTests/MediaFileServiceFixture.cs +++ b/src/NzbDrone.Core.Test/MediaFiles/MediaFileServiceTests/MediaFileServiceFixture.cs @@ -13,18 +13,18 @@ namespace NzbDrone.Core.Test.MediaFiles.TrackFileMovingServiceTests [TestFixture] public class MediaFileServiceFixture : CoreTest { - private Book _album; + private Book _book; private List _trackFiles; [SetUp] public void Setup() { - _album = Builder.CreateNew() + _book = Builder.CreateNew() .Build(); _trackFiles = Builder.CreateListOfSize(3) .TheFirst(2) - .With(f => f.EditionId = _album.Id) + .With(f => f.EditionId = _book.Id) .TheNext(1) .With(f => f.EditionId = 0) .Build().ToList(); diff --git a/src/NzbDrone.Core.Test/MediaFiles/MediaFileTableCleanupServiceFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/MediaFileTableCleanupServiceFixture.cs index e289f7a66..7a5eb9eed 100644 --- a/src/NzbDrone.Core.Test/MediaFiles/MediaFileTableCleanupServiceFixture.cs +++ b/src/NzbDrone.Core.Test/MediaFiles/MediaFileTableCleanupServiceFixture.cs @@ -15,7 +15,7 @@ namespace NzbDrone.Core.Test.MediaFiles { private readonly string _DELETED_PATH = @"c:\ANY FILE STARTING WITH THIS PATH IS CONSIDERED DELETED!".AsOsAgnostic(); private List _tracks; - private Author _artist; + private Author _author; [SetUp] public void SetUp() @@ -24,8 +24,8 @@ namespace NzbDrone.Core.Test.MediaFiles .Build() .ToList(); - _artist = Builder.CreateNew() - .With(s => s.Path = @"C:\Test\Music\Artist".AsOsAgnostic()) + _author = Builder.CreateNew() + .With(s => s.Path = @"C:\Test\Music\Author".AsOsAgnostic()) .Build(); } @@ -55,7 +55,7 @@ namespace NzbDrone.Core.Test.MediaFiles GivenTrackFiles(trackFiles); - Subject.Clean(_artist.Path, FilesOnDisk(trackFiles)); + Subject.Clean(_author.Path, FilesOnDisk(trackFiles)); Mocker.GetMock() .Verify(c => c.DeleteMany(It.Is>(x => x.Count == 0), DeleteMediaFileReason.MissingFromDisk), Times.Once()); @@ -73,7 +73,7 @@ namespace NzbDrone.Core.Test.MediaFiles GivenTrackFiles(trackFiles); - Subject.Clean(_artist.Path, FilesOnDisk(trackFiles.Where(e => !e.Path.StartsWith(_DELETED_PATH)))); + Subject.Clean(_author.Path, FilesOnDisk(trackFiles.Where(e => !e.Path.StartsWith(_DELETED_PATH)))); Mocker.GetMock() .Verify(c => c.DeleteMany(It.Is>(e => e.Count == 2 && e.All(y => y.Path.StartsWith(_DELETED_PATH))), DeleteMediaFileReason.MissingFromDisk), Times.Once()); @@ -89,7 +89,7 @@ namespace NzbDrone.Core.Test.MediaFiles GivenTrackFiles(trackFiles); - Subject.Clean(_artist.Path, new List()); + Subject.Clean(_author.Path, new List()); } [Test] @@ -102,7 +102,7 @@ namespace NzbDrone.Core.Test.MediaFiles GivenTrackFiles(trackFiles); - Subject.Clean(_artist.Path, FilesOnDisk(trackFiles)); + Subject.Clean(_author.Path, FilesOnDisk(trackFiles)); } } } diff --git a/src/NzbDrone.Core.Test/MediaFiles/RenameTrackFileServiceFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/RenameTrackFileServiceFixture.cs index 8e954fb75..ee6b14215 100644 --- a/src/NzbDrone.Core.Test/MediaFiles/RenameTrackFileServiceFixture.cs +++ b/src/NzbDrone.Core.Test/MediaFiles/RenameTrackFileServiceFixture.cs @@ -14,24 +14,24 @@ namespace NzbDrone.Core.Test.MediaFiles { public class RenameTrackFileServiceFixture : CoreTest { - private Author _artist; + private Author _author; private List _trackFiles; [SetUp] public void Setup() { - _artist = Builder.CreateNew() + _author = Builder.CreateNew() .Build(); _trackFiles = Builder.CreateListOfSize(2) .All() - .With(e => e.Author = _artist) + .With(e => e.Author = _author) .Build() .ToList(); Mocker.GetMock() - .Setup(s => s.GetAuthor(_artist.Id)) - .Returns(_artist); + .Setup(s => s.GetAuthor(_author.Id)) + .Returns(_author); } private void GivenNoTrackFiles() @@ -51,7 +51,7 @@ namespace NzbDrone.Core.Test.MediaFiles private void GivenMovedFiles() { Mocker.GetMock() - .Setup(s => s.MoveBookFile(It.IsAny(), _artist)); + .Setup(s => s.MoveBookFile(It.IsAny(), _author)); } [Test] @@ -59,7 +59,7 @@ namespace NzbDrone.Core.Test.MediaFiles { GivenNoTrackFiles(); - Subject.Execute(new RenameFilesCommand(_artist.Id, new List { 1 })); + Subject.Execute(new RenameFilesCommand(_author.Id, new List { 1 })); Mocker.GetMock() .Verify(v => v.PublishEvent(It.IsAny()), Times.Never()); @@ -74,7 +74,7 @@ namespace NzbDrone.Core.Test.MediaFiles .Setup(s => s.MoveBookFile(It.IsAny(), It.IsAny())) .Throws(new SameFilenameException("Same file name", "Filename")); - Subject.Execute(new RenameFilesCommand(_artist.Id, new List { 1 })); + Subject.Execute(new RenameFilesCommand(_author.Id, new List { 1 })); Mocker.GetMock() .Verify(v => v.PublishEvent(It.IsAny()), Times.Never()); @@ -86,7 +86,7 @@ namespace NzbDrone.Core.Test.MediaFiles GivenTrackFiles(); GivenMovedFiles(); - Subject.Execute(new RenameFilesCommand(_artist.Id, new List { 1 })); + Subject.Execute(new RenameFilesCommand(_author.Id, new List { 1 })); Mocker.GetMock() .Verify(v => v.PublishEvent(It.IsAny()), Times.Once()); @@ -98,7 +98,7 @@ namespace NzbDrone.Core.Test.MediaFiles GivenTrackFiles(); GivenMovedFiles(); - Subject.Execute(new RenameFilesCommand(_artist.Id, new List { 1 })); + Subject.Execute(new RenameFilesCommand(_author.Id, new List { 1 })); Mocker.GetMock() .Verify(v => v.Update(It.IsAny()), Times.Exactly(2)); @@ -112,7 +112,7 @@ namespace NzbDrone.Core.Test.MediaFiles var files = new List { 1 }; - Subject.Execute(new RenameFilesCommand(_artist.Id, files)); + Subject.Execute(new RenameFilesCommand(_author.Id, files)); Mocker.GetMock() .Verify(v => v.Get(files), Times.Once()); diff --git a/src/NzbDrone.Core.Test/MediaFiles/TrackFileMovingServiceTests/MoveTrackFileFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/TrackFileMovingServiceTests/MoveTrackFileFixture.cs index 770dc36d3..f01c83592 100644 --- a/src/NzbDrone.Core.Test/MediaFiles/TrackFileMovingServiceTests/MoveTrackFileFixture.cs +++ b/src/NzbDrone.Core.Test/MediaFiles/TrackFileMovingServiceTests/MoveTrackFileFixture.cs @@ -21,24 +21,24 @@ namespace NzbDrone.Core.Test.MediaFiles.TrackFileMovingServiceTests [TestFixture] public class MoveTrackFileFixture : CoreTest { - private Author _artist; + private Author _author; private BookFile _trackFile; private LocalBook _localtrack; [SetUp] public void Setup() { - _artist = Builder.CreateNew() - .With(s => s.Path = @"C:\Test\Music\Artist".AsOsAgnostic()) + _author = Builder.CreateNew() + .With(s => s.Path = @"C:\Test\Music\Author".AsOsAgnostic()) .Build(); _trackFile = Builder.CreateNew() .With(f => f.Path = null) - .With(f => f.Path = Path.Combine(_artist.Path, @"Album\File.mp3")) + .With(f => f.Path = Path.Combine(_author.Path, @"Book\File.mp3")) .Build(); _localtrack = Builder.CreateNew() - .With(l => l.Author = _artist) + .With(l => l.Author = _author) .With(l => l.Book = Builder.CreateNew().Build()) .Build(); @@ -48,11 +48,11 @@ namespace NzbDrone.Core.Test.MediaFiles.TrackFileMovingServiceTests Mocker.GetMock() .Setup(s => s.BuildBookFilePath(It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny())) - .Returns(@"C:\Test\Music\Artist\Album\File Name.mp3".AsOsAgnostic()); + .Returns(@"C:\Test\Music\Author\Book\File Name.mp3".AsOsAgnostic()); Mocker.GetMock() .Setup(s => s.BuildBookPath(It.IsAny())) - .Returns(@"C:\Test\Music\Artist\Album".AsOsAgnostic()); + .Returns(@"C:\Test\Music\Author\Book".AsOsAgnostic()); var rootFolder = @"C:\Test\Music\".AsOsAgnostic(); Mocker.GetMock() @@ -89,7 +89,7 @@ namespace NzbDrone.Core.Test.MediaFiles.TrackFileMovingServiceTests } [Test] - public void should_notify_on_artist_folder_creation() + public void should_notify_on_author_folder_creation() { Subject.MoveBookFile(_trackFile, _localtrack); @@ -99,7 +99,7 @@ namespace NzbDrone.Core.Test.MediaFiles.TrackFileMovingServiceTests } [Test] - public void should_notify_on_album_folder_creation() + public void should_notify_on_book_folder_creation() { Subject.MoveBookFile(_trackFile, _localtrack); @@ -109,10 +109,10 @@ namespace NzbDrone.Core.Test.MediaFiles.TrackFileMovingServiceTests } [Test] - public void should_not_notify_if_artist_folder_already_exists() + public void should_not_notify_if_author_folder_already_exists() { Mocker.GetMock() - .Setup(s => s.FolderExists(_artist.Path)) + .Setup(s => s.FolderExists(_author.Path)) .Returns(true); Subject.MoveBookFile(_trackFile, _localtrack); diff --git a/src/NzbDrone.Core.Test/MediaFiles/TrackImport/Aggregation/AggregateFilenameInfoFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/TrackImport/Aggregation/AggregateFilenameInfoFixture.cs index cc675949a..61841c560 100644 --- a/src/NzbDrone.Core.Test/MediaFiles/TrackImport/Aggregation/AggregateFilenameInfoFixture.cs +++ b/src/NzbDrone.Core.Test/MediaFiles/TrackImport/Aggregation/AggregateFilenameInfoFixture.cs @@ -28,9 +28,9 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport.Aggregation.Aggregators return new LocalEdition(tracks); } - private void VerifyData(LocalBook track, string artist, string title, int trackNum, int disc) + private void VerifyData(LocalBook track, string author, string title, int trackNum, int disc) { - track.FileTrackInfo.ArtistTitle.Should().Be(artist); + track.FileTrackInfo.AuthorTitle.Should().Be(author); track.FileTrackInfo.Title.Should().Be(title); track.FileTrackInfo.TrackNumbers[0].Should().Be(trackNum); track.FileTrackInfo.DiscNumber.Should().Be(disc); @@ -59,23 +59,23 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport.Aggregation.Aggregators { private static List tokenList = new List { - new[] { "trackNum2", "artist", "title", "tag" }, - new[] { "trackNum3", "artist", "title", "tag" }, - new[] { "trackNum2", "artist", "tag", "title" }, - new[] { "trackNum3", "artist", "tag", "title" }, - new[] { "trackNum2", "artist", "title" }, - new[] { "trackNum3", "artist", "title" }, - - new[] { "artist", "tag", "trackNum2", "title" }, - new[] { "artist", "tag", "trackNum3", "title" }, - new[] { "artist", "trackNum2", "title", "tag" }, - new[] { "artist", "trackNum3", "title", "tag" }, - new[] { "artist", "trackNum2", "title" }, - new[] { "artist", "trackNum3", "title" }, - - new[] { "artist", "title", "tag" }, - new[] { "artist", "tag", "title" }, - new[] { "artist", "title" }, + new[] { "trackNum2", "author", "title", "tag" }, + new[] { "trackNum3", "author", "title", "tag" }, + new[] { "trackNum2", "author", "tag", "title" }, + new[] { "trackNum3", "author", "tag", "title" }, + new[] { "trackNum2", "author", "title" }, + new[] { "trackNum3", "author", "title" }, + + new[] { "author", "tag", "trackNum2", "title" }, + new[] { "author", "tag", "trackNum3", "title" }, + new[] { "author", "trackNum2", "title", "tag" }, + new[] { "author", "trackNum3", "title", "tag" }, + new[] { "author", "trackNum2", "title" }, + new[] { "author", "trackNum3", "title" }, + + new[] { "author", "title", "tag" }, + new[] { "author", "tag", "title" }, + new[] { "author", "title" }, new[] { "trackNum2", "title" }, new[] { "trackNum3", "title" }, @@ -135,8 +135,8 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport.Aggregation.Aggregators { switch (field) { - case "artist": - components.Add("artist name".Replace(" ", whitespace)); + case "author": + components.Add("author name".Replace(" ", whitespace)); break; case "tag": components.Add("tag string ignore".Replace(" ", whitespace)); @@ -165,9 +165,9 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport.Aggregation.Aggregators { var info = tracks[i - 1].FileTrackInfo; - if (tokens.Contains("artist")) + if (tokens.Contains("author")) { - info.ArtistTitle.Should().Be("artist name".Replace(" ", whitespace)); + info.AuthorTitle.Should().Be("author name".Replace(" ", whitespace)); } if (tokens.Contains("title")) diff --git a/src/NzbDrone.Core.Test/MediaFiles/TrackImport/Identification/DistanceFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/TrackImport/Identification/DistanceFixture.cs index 74fe5a750..b1b78d0a4 100644 --- a/src/NzbDrone.Core.Test/MediaFiles/TrackImport/Identification/DistanceFixture.cs +++ b/src/NzbDrone.Core.Test/MediaFiles/TrackImport/Identification/DistanceFixture.cs @@ -135,7 +135,7 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport.Identification public void test_distance() { var dist = new Distance(); - dist.Add("album", 0.5); + dist.Add("book", 0.5); dist.Add("media_count", 0.25); dist.Add("media_count", 0.75); @@ -146,7 +146,7 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport.Identification public void test_max_distance() { var dist = new Distance(); - dist.Add("album", 0.5); + dist.Add("book", 0.5); dist.Add("media_count", 0.0); dist.Add("media_count", 0.0); @@ -157,7 +157,7 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport.Identification public void test_raw_distance() { var dist = new Distance(); - dist.Add("album", 0.5); + dist.Add("book", 0.5); dist.Add("media_count", 0.25); dist.Add("media_count", 0.5); diff --git a/src/NzbDrone.Core.Test/MediaFiles/TrackImport/Identification/IdentificationServiceFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/TrackImport/Identification/IdentificationServiceFixture.cs index 3e60e29cb..6a5fb42aa 100644 --- a/src/NzbDrone.Core.Test/MediaFiles/TrackImport/Identification/IdentificationServiceFixture.cs +++ b/src/NzbDrone.Core.Test/MediaFiles/TrackImport/Identification/IdentificationServiceFixture.cs @@ -33,7 +33,7 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport.Identification { private AuthorService _authorService; private AddAuthorService _addAuthorService; - private RefreshAuthorService _refreshArtistService; + private RefreshAuthorService _refreshAuthorService; private IdentificationService _Subject; @@ -65,7 +65,7 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport.Identification _addAuthorService = Mocker.Resolve(); Mocker.SetConstant(Mocker.Resolve()); - _refreshArtistService = Mocker.Resolve(); + _refreshAuthorService = Mocker.Resolve(); Mocker.GetMock().Setup(x => x.Validate(It.IsAny())).Returns(new ValidationResult()); @@ -88,23 +88,23 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport.Identification Mocker.GetMock().Setup(x => x.Get(profile.Id)).Returns(profile); } - private List GivenArtists(List artists) + private List GivenAuthors(List authors) { var outp = new List(); - for (int i = 0; i < artists.Count; i++) + for (int i = 0; i < authors.Count; i++) { - var meta = artists[i].MetadataProfile; + var meta = authors[i].MetadataProfile; meta.Id = i + 1; GivenMetadataProfile(meta); - outp.Add(GivenArtist(artists[i].Author, meta.Id)); + outp.Add(GivenAuthor(authors[i].Author, meta.Id)); } return outp; } - private Author GivenArtist(string foreignAuthorId, int metadataProfileId) + private Author GivenAuthor(string foreignAuthorId, int metadataProfileId) { - var artist = _addAuthorService.AddAuthor(new Author + var author = _addAuthorService.AddAuthor(new Author { Metadata = new AuthorMetadata { @@ -116,11 +116,11 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport.Identification var command = new RefreshAuthorCommand { - AuthorId = artist.Id, + AuthorId = author.Id, Trigger = CommandTrigger.Unspecified }; - _refreshArtistService.Execute(command); + _refreshAuthorService.Execute(command); return _authorService.FindById(foreignAuthorId); } @@ -145,8 +145,8 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport.Identification { "FilesWithMBIds.json", "PreferMissingToBadMatch.json", - "InconsistentTyposInAlbum.json", - "SucceedWhenManyAlbumsHaveSameTitle.json", + "InconsistentTyposInBook.json", + "SucceedWhenManyBooksHaveSameTitle.json", "PenalizeUnknownMedia.json", "CorruptFile.json", "FilesWithoutTags.json" @@ -172,9 +172,9 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport.Identification var path = Path.Combine(TestContext.CurrentContext.TestDirectory, "Files", "Identification", file); var testcase = JsonConvert.DeserializeObject(File.ReadAllText(path)); - var artists = GivenArtists(testcase.LibraryAuthors); - var specifiedArtist = artists.SingleOrDefault(x => x.Metadata.Value.ForeignAuthorId == testcase.Author); - var idOverrides = new IdentificationOverrides { Author = specifiedArtist }; + var authors = GivenAuthors(testcase.LibraryAuthors); + var specifiedAuthor = authors.SingleOrDefault(x => x.Metadata.Value.ForeignAuthorId == testcase.Author); + var idOverrides = new IdentificationOverrides { Author = specifiedAuthor }; var tracks = testcase.Tracks.Select(x => new LocalBook { diff --git a/src/NzbDrone.Core.Test/MediaFiles/TrackImport/Identification/TrackGroupingServiceFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/TrackImport/Identification/TrackGroupingServiceFixture.cs index 202e7720d..843a91c73 100644 --- a/src/NzbDrone.Core.Test/MediaFiles/TrackImport/Identification/TrackGroupingServiceFixture.cs +++ b/src/NzbDrone.Core.Test/MediaFiles/TrackImport/Identification/TrackGroupingServiceFixture.cs @@ -14,7 +14,7 @@ using NzbDrone.Test.Common; namespace NzbDrone.Core.Test.MediaFiles.BookImport.Identification { - // we need to use random strings to test the va (so we don't just get artist1, artist2 etc which are too similar) + // we need to use random strings to test the va (so we don't just get author1, author2 etc which are too similar) // but the standard random value namer would give paths that are too long on windows public class RandomValueNamerShortStrings : RandomValuePropertyNamer { @@ -66,14 +66,14 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport.Identification [TestFixture] public class TrackGroupingServiceFixture : CoreTest { - private List GivenTracks(string root, string artist, string album, int count) + private List GivenTracks(string root, string author, string book, int count) { var fileInfos = Builder .CreateListOfSize(count) .All() - .With(f => f.ArtistTitle = artist) - .With(f => f.AlbumTitle = album) - .With(f => f.AlbumMBId = null) + .With(f => f.AuthorTitle = author) + .With(f => f.BookTitle = book) + .With(f => f.BookMBId = null) .With(f => f.ReleaseMBId = null) .Build(); @@ -104,7 +104,7 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport.Identification } [Repeat(100)] - private List GivenVaTracks(string root, string album, int count) + private List GivenVaTracks(string root, string book, int count) { var settings = new BuilderSettings(); settings.SetPropertyNamerFor(new RandomValueNamerShortStrings(settings)); @@ -114,8 +114,8 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport.Identification var fileInfos = builder .CreateListOfSize(count) .All() - .With(f => f.AlbumTitle = "album") - .With(f => f.AlbumMBId = null) + .With(f => f.BookTitle = "book") + .With(f => f.BookMBId = null) .With(f => f.ReleaseMBId = null) .Build(); @@ -131,71 +131,71 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport.Identification [TestCase(1)] [TestCase(2)] [TestCase(10)] - public void single_artist_is_not_various_artists(int count) + public void single_author_is_not_various_authors(int count) { - var tracks = GivenTracks(@"C:\music\incoming".AsOsAgnostic(), "artist", "album", count); - TrackGroupingService.IsVariousArtists(tracks).Should().Be(false); + var tracks = GivenTracks(@"C:\music\incoming".AsOsAgnostic(), "author", "book", count); + TrackGroupingService.IsVariousAuthors(tracks).Should().Be(false); } // GivenVaTracks uses random names so repeat multiple times to try to prompt any intermittent failures [Test] [Repeat(100)] - public void all_different_artists_is_various_artists() + public void all_different_authors_is_various_authors() { - var tracks = GivenVaTracks(@"C:\music\incoming".AsOsAgnostic(), "album", 10); - TrackGroupingService.IsVariousArtists(tracks).Should().Be(true); + var tracks = GivenVaTracks(@"C:\music\incoming".AsOsAgnostic(), "book", 10); + TrackGroupingService.IsVariousAuthors(tracks).Should().Be(true); } [Test] - public void two_artists_is_not_various_artists() + public void two_authors_is_not_various_authors() { var dir = @"C:\music\incoming".AsOsAgnostic(); - var tracks = GivenTracks(dir, "artist1", "album", 10); - tracks.AddRange(GivenTracks(dir, "artist2", "album", 10)); + var tracks = GivenTracks(dir, "author1", "book", 10); + tracks.AddRange(GivenTracks(dir, "author2", "book", 10)); - TrackGroupingService.IsVariousArtists(tracks).Should().Be(false); + TrackGroupingService.IsVariousAuthors(tracks).Should().Be(false); } [Test] [Repeat(100)] - public void mostly_different_artists_is_various_artists() + public void mostly_different_authors_is_various_authors() { var dir = @"C:\music\incoming".AsOsAgnostic(); - var tracks = GivenVaTracks(dir, "album", 10); - tracks.AddRange(GivenTracks(dir, "single_artist", "album", 2)); - TrackGroupingService.IsVariousArtists(tracks).Should().Be(true); + var tracks = GivenVaTracks(dir, "book", 10); + tracks.AddRange(GivenTracks(dir, "single_author", "book", 2)); + TrackGroupingService.IsVariousAuthors(tracks).Should().Be(true); } [TestCase("")] - [TestCase("Various Artists")] + [TestCase("Various Authors")] [TestCase("Various")] [TestCase("VA")] [TestCase("Unknown")] - public void va_artist_title_is_various_artists(string artist) + public void va_author_title_is_various_authors(string author) { - var tracks = GivenTracks(@"C:\music\incoming".AsOsAgnostic(), artist, "album", 10); - TrackGroupingService.IsVariousArtists(tracks).Should().Be(true); + var tracks = GivenTracks(@"C:\music\incoming".AsOsAgnostic(), author, "book", 10); + TrackGroupingService.IsVariousAuthors(tracks).Should().Be(true); } [TestCase("Va?!")] [TestCase("Va Va Voom")] [TestCase("V.A. Jr.")] [TestCase("Ca Va")] - public void va_in_artist_name_is_not_various_artists(string artist) + public void va_in_author_name_is_not_various_authors(string author) { - var tracks = GivenTracks(@"C:\music\incoming".AsOsAgnostic(), artist, "album", 10); - TrackGroupingService.IsVariousArtists(tracks).Should().Be(false); + var tracks = GivenTracks(@"C:\music\incoming".AsOsAgnostic(), author, "book", 10); + TrackGroupingService.IsVariousAuthors(tracks).Should().Be(false); } [TestCase(1)] [TestCase(2)] [TestCase(10)] - public void should_group_single_artist_album(int count) + public void should_group_single_author_book(int count) { - var tracks = GivenTracks(@"C:\music\incoming".AsOsAgnostic(), "artist", "album", count); + var tracks = GivenTracks(@"C:\music\incoming".AsOsAgnostic(), "author", "book", count); var output = Subject.GroupTracks(tracks); - TrackGroupingService.IsVariousArtists(tracks).Should().Be(false); + TrackGroupingService.IsVariousAuthors(tracks).Should().Be(false); TrackGroupingService.LooksLikeSingleRelease(tracks).Should().Be(true); output.Count.Should().Be(1); @@ -207,10 +207,10 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport.Identification [TestCase("disk")] public void should_group_multi_disc_release(string mediaName) { - var tracks = GivenTracks($"C:\\music\\incoming\\artist - album\\{mediaName} 1".AsOsAgnostic(), "artist", "album", 10); - tracks.AddRange(GivenTracks($"C:\\music\\incoming\\artist - album\\{mediaName} 2".AsOsAgnostic(), "artist", "album", 5)); + var tracks = GivenTracks($"C:\\music\\incoming\\author - book\\{mediaName} 1".AsOsAgnostic(), "author", "book", 10); + tracks.AddRange(GivenTracks($"C:\\music\\incoming\\author - book\\{mediaName} 2".AsOsAgnostic(), "author", "book", 5)); - TrackGroupingService.IsVariousArtists(tracks).Should().Be(false); + TrackGroupingService.IsVariousAuthors(tracks).Should().Be(false); TrackGroupingService.LooksLikeSingleRelease(tracks).Should().Be(true); var output = Subject.GroupTracks(tracks); @@ -219,12 +219,12 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport.Identification } [Test] - public void should_not_group_two_different_albums_by_same_artist() + public void should_not_group_two_different_books_by_same_author() { - var tracks = GivenTracks($"C:\\music\\incoming\\artist - album1".AsOsAgnostic(), "artist", "album1", 10); - tracks.AddRange(GivenTracks($"C:\\music\\incoming\\artist - album2".AsOsAgnostic(), "artist", "album2", 5)); + var tracks = GivenTracks($"C:\\music\\incoming\\author - book1".AsOsAgnostic(), "author", "book1", 10); + tracks.AddRange(GivenTracks($"C:\\music\\incoming\\author - book2".AsOsAgnostic(), "author", "book2", 5)); - TrackGroupingService.IsVariousArtists(tracks).Should().Be(false); + TrackGroupingService.IsVariousAuthors(tracks).Should().Be(false); TrackGroupingService.LooksLikeSingleRelease(tracks).Should().Be(false); var output = Subject.GroupTracks(tracks); @@ -234,12 +234,12 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport.Identification } [Test] - public void should_group_albums_with_typos() + public void should_group_books_with_typos() { - var tracks = GivenTracks($"C:\\music\\incoming\\artist - album".AsOsAgnostic(), "artist", "Rastaman Vibration (Remastered)", 10); - tracks.AddRange(GivenTracks($"C:\\music\\incoming\\artist - album".AsOsAgnostic(), "artist", "Rastaman Vibration (Remastered", 5)); + var tracks = GivenTracks($"C:\\music\\incoming\\author - book".AsOsAgnostic(), "author", "Rastaman Vibration (Remastered)", 10); + tracks.AddRange(GivenTracks($"C:\\music\\incoming\\author - book".AsOsAgnostic(), "author", "Rastaman Vibration (Remastered", 5)); - TrackGroupingService.IsVariousArtists(tracks).Should().Be(false); + TrackGroupingService.IsVariousAuthors(tracks).Should().Be(false); TrackGroupingService.LooksLikeSingleRelease(tracks).Should().Be(true); var output = Subject.GroupTracks(tracks); @@ -250,10 +250,10 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport.Identification [Test] public void should_not_group_two_different_tracks_in_same_directory() { - var tracks = GivenTracks($"C:\\music\\incoming".AsOsAgnostic(), "artist", "album1", 1); - tracks.AddRange(GivenTracks($"C:\\music\\incoming".AsOsAgnostic(), "artist", "album2", 1)); + var tracks = GivenTracks($"C:\\music\\incoming".AsOsAgnostic(), "author", "book1", 1); + tracks.AddRange(GivenTracks($"C:\\music\\incoming".AsOsAgnostic(), "author", "book2", 1)); - TrackGroupingService.IsVariousArtists(tracks).Should().Be(false); + TrackGroupingService.IsVariousAuthors(tracks).Should().Be(false); TrackGroupingService.LooksLikeSingleRelease(tracks).Should().Be(false); var output = Subject.GroupTracks(tracks); @@ -263,12 +263,12 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport.Identification } [Test] - public void should_separate_two_albums_in_same_directory() + public void should_separate_two_books_in_same_directory() { - var tracks = GivenTracks($"C:\\music\\incoming\\artist discog".AsOsAgnostic(), "artist", "album1", 10); - tracks.AddRange(GivenTracks($"C:\\music\\incoming\\artist disog".AsOsAgnostic(), "artist", "album2", 5)); + var tracks = GivenTracks($"C:\\music\\incoming\\author discog".AsOsAgnostic(), "author", "book1", 10); + tracks.AddRange(GivenTracks($"C:\\music\\incoming\\author disog".AsOsAgnostic(), "author", "book2", 5)); - TrackGroupingService.IsVariousArtists(tracks).Should().Be(false); + TrackGroupingService.IsVariousAuthors(tracks).Should().Be(false); TrackGroupingService.LooksLikeSingleRelease(tracks).Should().Be(false); var output = Subject.GroupTracks(tracks); @@ -278,15 +278,15 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport.Identification } [Test] - public void should_separate_many_albums_in_same_directory() + public void should_separate_many_books_in_same_directory() { var tracks = new List(); for (int i = 0; i < 100; i++) { - tracks.AddRange(GivenTracks($"C:\\music".AsOsAgnostic(), "artist" + i, "album" + i, 10)); + tracks.AddRange(GivenTracks($"C:\\music".AsOsAgnostic(), "author" + i, "book" + i, 10)); } - // don't test various artists here because it's designed to only work if there's a common album + // don't test various authors here because it's designed to only work if there's a common book TrackGroupingService.LooksLikeSingleRelease(tracks).Should().Be(false); var output = Subject.GroupTracks(tracks); @@ -295,12 +295,12 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport.Identification } [Test] - public void should_separate_two_albums_by_different_artists_in_same_directory() + public void should_separate_two_books_by_different_authors_in_same_directory() { - var tracks = GivenTracks($"C:\\music\\incoming".AsOsAgnostic(), "artist1", "album1", 10); - tracks.AddRange(GivenTracks($"C:\\music\\incoming".AsOsAgnostic(), "artist2", "album2", 5)); + var tracks = GivenTracks($"C:\\music\\incoming".AsOsAgnostic(), "author1", "book1", 10); + tracks.AddRange(GivenTracks($"C:\\music\\incoming".AsOsAgnostic(), "author2", "book2", 5)); - TrackGroupingService.IsVariousArtists(tracks).Should().Be(false); + TrackGroupingService.IsVariousAuthors(tracks).Should().Be(false); TrackGroupingService.LooksLikeSingleRelease(tracks).Should().Be(false); var output = Subject.GroupTracks(tracks); @@ -313,9 +313,9 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport.Identification [Repeat(100)] public void should_group_va_release() { - var tracks = GivenVaTracks(@"C:\music\incoming".AsOsAgnostic(), "album", 10); + var tracks = GivenVaTracks(@"C:\music\incoming".AsOsAgnostic(), "book", 10); - TrackGroupingService.IsVariousArtists(tracks).Should().Be(true); + TrackGroupingService.IsVariousAuthors(tracks).Should().Be(true); TrackGroupingService.LooksLikeSingleRelease(tracks).Should().Be(true); var output = Subject.GroupTracks(tracks); @@ -324,12 +324,12 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport.Identification } [Test] - public void should_not_group_two_albums_by_different_artists_with_same_title() + public void should_not_group_two_books_by_different_authors_with_same_title() { - var tracks = GivenTracks($"C:\\music\\incoming\\album".AsOsAgnostic(), "artist1", "album", 10); - tracks.AddRange(GivenTracks($"C:\\music\\incoming\\album".AsOsAgnostic(), "artist2", "album", 5)); + var tracks = GivenTracks($"C:\\music\\incoming\\book".AsOsAgnostic(), "author1", "book", 10); + tracks.AddRange(GivenTracks($"C:\\music\\incoming\\book".AsOsAgnostic(), "author2", "book", 5)); - TrackGroupingService.IsVariousArtists(tracks).Should().Be(false); + TrackGroupingService.IsVariousAuthors(tracks).Should().Be(false); TrackGroupingService.LooksLikeSingleRelease(tracks).Should().Be(false); var output = Subject.GroupTracks(tracks); @@ -342,9 +342,9 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport.Identification [Test] public void should_not_fail_if_all_tags_null() { - var tracks = GivenTracksWithNoTags($"C:\\music\\incoming\\album".AsOsAgnostic(), 10); + var tracks = GivenTracksWithNoTags($"C:\\music\\incoming\\book".AsOsAgnostic(), 10); - TrackGroupingService.IsVariousArtists(tracks).Should().Be(false); + TrackGroupingService.IsVariousAuthors(tracks).Should().Be(false); TrackGroupingService.LooksLikeSingleRelease(tracks).Should().Be(true); var output = Subject.GroupTracks(tracks); @@ -355,10 +355,10 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport.Identification [Test] public void should_not_fail_if_some_tags_null() { - var tracks = GivenTracks($"C:\\music\\incoming\\album".AsOsAgnostic(), "artist1", "album", 10); - tracks.AddRange(GivenTracksWithNoTags($"C:\\music\\incoming\\album".AsOsAgnostic(), 2)); + var tracks = GivenTracks($"C:\\music\\incoming\\book".AsOsAgnostic(), "author1", "book", 10); + tracks.AddRange(GivenTracksWithNoTags($"C:\\music\\incoming\\book".AsOsAgnostic(), 2)); - TrackGroupingService.IsVariousArtists(tracks).Should().Be(false); + TrackGroupingService.IsVariousAuthors(tracks).Should().Be(false); TrackGroupingService.LooksLikeSingleRelease(tracks).Should().Be(true); var output = Subject.GroupTracks(tracks); @@ -367,12 +367,12 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport.Identification } [Test] - public void should_cope_with_one_album_in_subfolder_of_another() + public void should_cope_with_one_book_in_subfolder_of_another() { - var tracks = GivenTracks($"C:\\music\\incoming\\album".AsOsAgnostic(), "artist1", "album", 10); - tracks.AddRange(GivenTracks($"C:\\music\\incoming\\album\\anotheralbum".AsOsAgnostic(), "artist2", "album2", 10)); + var tracks = GivenTracks($"C:\\music\\incoming\\book".AsOsAgnostic(), "author1", "book", 10); + tracks.AddRange(GivenTracks($"C:\\music\\incoming\\book\\anotherbook".AsOsAgnostic(), "author2", "book2", 10)); - TrackGroupingService.IsVariousArtists(tracks).Should().Be(false); + TrackGroupingService.IsVariousAuthors(tracks).Should().Be(false); TrackGroupingService.LooksLikeSingleRelease(tracks).Should().Be(false); var output = Subject.GroupTracks(tracks); diff --git a/src/NzbDrone.Core.Test/MediaFiles/TrackImport/ImportDecisionMakerFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/TrackImport/ImportDecisionMakerFixture.cs index 5f6ca677f..09d384670 100644 --- a/src/NzbDrone.Core.Test/MediaFiles/TrackImport/ImportDecisionMakerFixture.cs +++ b/src/NzbDrone.Core.Test/MediaFiles/TrackImport/ImportDecisionMakerFixture.cs @@ -26,21 +26,21 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport { private List _fileInfos; private LocalBook _localTrack; - private Author _artist; - private Book _album; + private Author _author; + private Book _book; private Edition _edition; private QualityModel _quality; private IdentificationOverrides _idOverrides; private ImportDecisionMakerConfig _idConfig; - private Mock> _albumpass1; - private Mock> _albumpass2; - private Mock> _albumpass3; + private Mock> _bookpass1; + private Mock> _bookpass2; + private Mock> _bookpass3; - private Mock> _albumfail1; - private Mock> _albumfail2; - private Mock> _albumfail3; + private Mock> _bookfail1; + private Mock> _bookfail2; + private Mock> _bookfail3; private Mock> _pass1; private Mock> _pass2; @@ -53,13 +53,13 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport [SetUp] public void Setup() { - _albumpass1 = new Mock>(); - _albumpass2 = new Mock>(); - _albumpass3 = new Mock>(); + _bookpass1 = new Mock>(); + _bookpass2 = new Mock>(); + _bookpass3 = new Mock>(); - _albumfail1 = new Mock>(); - _albumfail2 = new Mock>(); - _albumfail3 = new Mock>(); + _bookfail1 = new Mock>(); + _bookfail2 = new Mock>(); + _bookfail3 = new Mock>(); _pass1 = new Mock>(); _pass2 = new Mock>(); @@ -69,13 +69,13 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport _fail2 = new Mock>(); _fail3 = new Mock>(); - _albumpass1.Setup(c => c.IsSatisfiedBy(It.IsAny(), It.IsAny())).Returns(Decision.Accept()); - _albumpass2.Setup(c => c.IsSatisfiedBy(It.IsAny(), It.IsAny())).Returns(Decision.Accept()); - _albumpass3.Setup(c => c.IsSatisfiedBy(It.IsAny(), It.IsAny())).Returns(Decision.Accept()); + _bookpass1.Setup(c => c.IsSatisfiedBy(It.IsAny(), It.IsAny())).Returns(Decision.Accept()); + _bookpass2.Setup(c => c.IsSatisfiedBy(It.IsAny(), It.IsAny())).Returns(Decision.Accept()); + _bookpass3.Setup(c => c.IsSatisfiedBy(It.IsAny(), It.IsAny())).Returns(Decision.Accept()); - _albumfail1.Setup(c => c.IsSatisfiedBy(It.IsAny(), It.IsAny())).Returns(Decision.Reject("_albumfail1")); - _albumfail2.Setup(c => c.IsSatisfiedBy(It.IsAny(), It.IsAny())).Returns(Decision.Reject("_albumfail2")); - _albumfail3.Setup(c => c.IsSatisfiedBy(It.IsAny(), It.IsAny())).Returns(Decision.Reject("_albumfail3")); + _bookfail1.Setup(c => c.IsSatisfiedBy(It.IsAny(), It.IsAny())).Returns(Decision.Reject("_bookfail1")); + _bookfail2.Setup(c => c.IsSatisfiedBy(It.IsAny(), It.IsAny())).Returns(Decision.Reject("_bookfail2")); + _bookfail3.Setup(c => c.IsSatisfiedBy(It.IsAny(), It.IsAny())).Returns(Decision.Reject("_bookfail3")); _pass1.Setup(c => c.IsSatisfiedBy(It.IsAny(), It.IsAny())).Returns(Decision.Accept()); _pass2.Setup(c => c.IsSatisfiedBy(It.IsAny(), It.IsAny())).Returns(Decision.Accept()); @@ -85,24 +85,24 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport _fail2.Setup(c => c.IsSatisfiedBy(It.IsAny(), It.IsAny())).Returns(Decision.Reject("_fail2")); _fail3.Setup(c => c.IsSatisfiedBy(It.IsAny(), It.IsAny())).Returns(Decision.Reject("_fail3")); - _artist = Builder.CreateNew() + _author = Builder.CreateNew() .With(e => e.QualityProfileId = 1) .With(e => e.QualityProfile = new QualityProfile { Items = Qualities.QualityFixture.GetDefaultQualities() }) .Build(); - _album = Builder.CreateNew() - .With(x => x.Author = _artist) + _book = Builder.CreateNew() + .With(x => x.Author = _author) .Build(); _edition = Builder.CreateNew() - .With(x => x.Book = _album) + .With(x => x.Book = _book) .Build(); _quality = new QualityModel(Quality.MP3_320); _localTrack = new LocalBook { - Author = _artist, + Author = _author, Quality = _quality, Book = new Book(), Path = @"C:\Test\Unsorted\The.Office.S03E115.DVDRip.XviD-OSiTV.avi".AsOsAgnostic() @@ -110,7 +110,7 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport _idOverrides = new IdentificationOverrides { - Author = _artist + Author = _author }; _idConfig = new ImportDecisionMakerConfig(); @@ -130,7 +130,7 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport .Setup(c => c.FilterUnchangedFiles(It.IsAny>(), It.IsAny())) .Returns((List files, FilterFilesType filter) => files); - GivenSpecifications(_albumpass1); + GivenSpecifications(_bookpass1); } private void GivenSpecifications(params Mock>[] mocks) @@ -159,26 +159,26 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport } [Test] - public void should_call_all_album_specifications() + public void should_call_all_book_specifications() { var downloadClientItem = Builder.CreateNew().Build(); var itemInfo = new ImportDecisionMakerInfo { DownloadClientItem = downloadClientItem }; GivenAugmentationSuccess(); - GivenSpecifications(_albumpass1, _albumpass2, _albumpass3, _albumfail1, _albumfail2, _albumfail3); + GivenSpecifications(_bookpass1, _bookpass2, _bookpass3, _bookfail1, _bookfail2, _bookfail3); Subject.GetImportDecisions(_fileInfos, null, itemInfo, _idConfig); - _albumfail1.Verify(c => c.IsSatisfiedBy(It.IsAny(), It.IsAny()), Times.Once()); - _albumfail2.Verify(c => c.IsSatisfiedBy(It.IsAny(), It.IsAny()), Times.Once()); - _albumfail3.Verify(c => c.IsSatisfiedBy(It.IsAny(), It.IsAny()), Times.Once()); - _albumpass1.Verify(c => c.IsSatisfiedBy(It.IsAny(), It.IsAny()), Times.Once()); - _albumpass2.Verify(c => c.IsSatisfiedBy(It.IsAny(), It.IsAny()), Times.Once()); - _albumpass3.Verify(c => c.IsSatisfiedBy(It.IsAny(), It.IsAny()), Times.Once()); + _bookfail1.Verify(c => c.IsSatisfiedBy(It.IsAny(), It.IsAny()), Times.Once()); + _bookfail2.Verify(c => c.IsSatisfiedBy(It.IsAny(), It.IsAny()), Times.Once()); + _bookfail3.Verify(c => c.IsSatisfiedBy(It.IsAny(), It.IsAny()), Times.Once()); + _bookpass1.Verify(c => c.IsSatisfiedBy(It.IsAny(), It.IsAny()), Times.Once()); + _bookpass2.Verify(c => c.IsSatisfiedBy(It.IsAny(), It.IsAny()), Times.Once()); + _bookpass3.Verify(c => c.IsSatisfiedBy(It.IsAny(), It.IsAny()), Times.Once()); } [Test] - public void should_call_all_track_specifications_if_album_accepted() + public void should_call_all_track_specifications_if_book_accepted() { var downloadClientItem = Builder.CreateNew().Build(); var itemInfo = new ImportDecisionMakerInfo { DownloadClientItem = downloadClientItem }; @@ -197,13 +197,13 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport } [Test] - public void should_call_no_track_specifications_if_album_rejected() + public void should_call_no_track_specifications_if_book_rejected() { var downloadClientItem = Builder.CreateNew().Build(); var itemInfo = new ImportDecisionMakerInfo { DownloadClientItem = downloadClientItem }; GivenAugmentationSuccess(); - GivenSpecifications(_albumpass1, _albumpass2, _albumpass3, _albumfail1, _albumfail2, _albumfail3); + GivenSpecifications(_bookpass1, _bookpass2, _bookpass3, _bookfail1, _bookfail2, _bookfail3); GivenSpecifications(_pass1, _pass2, _pass3, _fail1, _fail2, _fail3); Subject.GetImportDecisions(_fileInfos, null, itemInfo, _idConfig); @@ -217,9 +217,9 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport } [Test] - public void should_return_rejected_if_only_album_spec_fails() + public void should_return_rejected_if_only_book_spec_fails() { - GivenSpecifications(_albumfail1); + GivenSpecifications(_bookfail1); GivenSpecifications(_pass1); var result = Subject.GetImportDecisions(_fileInfos, null, null, _idConfig); @@ -230,7 +230,7 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport [Test] public void should_return_rejected_if_only_track_spec_fails() { - GivenSpecifications(_albumpass1); + GivenSpecifications(_bookpass1); GivenSpecifications(_fail1); var result = Subject.GetImportDecisions(_fileInfos, null, null, _idConfig); @@ -239,9 +239,9 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport } [Test] - public void should_return_rejected_if_one_album_spec_fails() + public void should_return_rejected_if_one_book_spec_fails() { - GivenSpecifications(_albumpass1, _albumfail1, _albumpass2, _albumpass3); + GivenSpecifications(_bookpass1, _bookfail1, _bookpass2, _bookpass3); GivenSpecifications(_pass1, _pass2, _pass3); var result = Subject.GetImportDecisions(_fileInfos, null, null, _idConfig); @@ -252,7 +252,7 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport [Test] public void should_return_rejected_if_one_track_spec_fails() { - GivenSpecifications(_albumpass1, _albumpass2, _albumpass3); + GivenSpecifications(_bookpass1, _bookpass2, _bookpass3); GivenSpecifications(_pass1, _fail1, _pass2, _pass3); var result = Subject.GetImportDecisions(_fileInfos, null, null, _idConfig); @@ -264,7 +264,7 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport public void should_return_approved_if_all_specs_pass() { GivenAugmentationSuccess(); - GivenSpecifications(_albumpass1, _albumpass2, _albumpass3); + GivenSpecifications(_bookpass1, _bookpass2, _bookpass3); GivenSpecifications(_pass1, _pass2, _pass3); var result = Subject.GetImportDecisions(_fileInfos, null, null, _idConfig); diff --git a/src/NzbDrone.Core.Test/MediaFiles/TrackImport/Specifications/FreeSpaceSpecificationFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/TrackImport/Specifications/FreeSpaceSpecificationFixture.cs index c66ef3e97..41e7eb0ac 100644 --- a/src/NzbDrone.Core.Test/MediaFiles/TrackImport/Specifications/FreeSpaceSpecificationFixture.cs +++ b/src/NzbDrone.Core.Test/MediaFiles/TrackImport/Specifications/FreeSpaceSpecificationFixture.cs @@ -16,7 +16,7 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport.Specifications [TestFixture] public class FreeSpaceSpecificationFixture : CoreTest { - private Author _artist; + private Author _author; private LocalBook _localTrack; private string _rootFolder; @@ -25,7 +25,7 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport.Specifications { _rootFolder = @"C:\Test\Music".AsOsAgnostic(); - _artist = Builder.CreateNew() + _author = Builder.CreateNew() .With(s => s.Path = Path.Combine(_rootFolder, "Alice in Chains")) .Build(); @@ -33,7 +33,7 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport.Specifications { Path = @"C:\Test\Unsorted\Alice in Chains\Alice in Chains - track1.mp3".AsOsAgnostic(), Book = new Book(), - Author = _artist + Author = _author }; } @@ -83,7 +83,7 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport.Specifications } [Test] - public void should_use_artist_paths_parent_for_free_space_check() + public void should_use_author_paths_parent_for_free_space_check() { GivenFileSize(100.Megabytes()); GivenFreeSpace(1.Gigabytes()); @@ -117,7 +117,7 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport.Specifications } [Test] - public void should_skip_check_for_files_under_artist_folder() + public void should_skip_check_for_files_under_author_folder() { _localTrack.ExistingFile = true; diff --git a/src/NzbDrone.Core.Test/MediaFiles/TrackImport/Specifications/SameFileSpecificationFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/TrackImport/Specifications/SameFileSpecificationFixture.cs index 651b4af6a..b4c38f7cd 100644 --- a/src/NzbDrone.Core.Test/MediaFiles/TrackImport/Specifications/SameFileSpecificationFixture.cs +++ b/src/NzbDrone.Core.Test/MediaFiles/TrackImport/Specifications/SameFileSpecificationFixture.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.Linq; using FizzWare.NBuilder; using FluentAssertions; using NUnit.Framework; @@ -95,12 +96,9 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport.Specifications [Test] public void should_be_accepted_if_file_cannot_be_fetched() { - _localTrack.Tracks = Builder.CreateListOfSize(1) - .TheFirst(1) - .With(e => e.TrackFileId = 1) - .With(e => e.TrackFile = new LazyLoaded((TrackFile)null)) - .Build() - .ToList(); + _localTrack.Book = Builder.CreateNew() + .With(e => e.BookFiles = new LazyLoaded>((List)null)) + .Build(); Subject.IsSatisfiedBy(_localTrack, null).Accepted.Should().BeTrue(); } diff --git a/src/NzbDrone.Core.Test/MediaFiles/TrackImport/Specifications/UpgradeSpecificationFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/TrackImport/Specifications/UpgradeSpecificationFixture.cs index 9dab94b32..605b254c7 100644 --- a/src/NzbDrone.Core.Test/MediaFiles/TrackImport/Specifications/UpgradeSpecificationFixture.cs +++ b/src/NzbDrone.Core.Test/MediaFiles/TrackImport/Specifications/UpgradeSpecificationFixture.cs @@ -18,27 +18,27 @@ namespace NzbDrone.Core.Test.MediaFiles.BookImport.Specifications public class UpgradeSpecificationFixture : CoreTest { /* - private Author _artist; - private Book _album; + private Author _author; + private Book _book; private LocalTrack _localTrack; [SetUp] public void Setup() { - _artist = Builder.CreateNew() + _author = Builder.CreateNew() .With(e => e.QualityProfile = new QualityProfile { Items = Qualities.QualityFixture.GetDefaultQualities(), }).Build(); - _album = Builder.CreateNew().Build(); + _book = Builder.CreateNew().Build(); _localTrack = new LocalTrack { Path = @"C:\Test\Imagine Dragons\Imagine.Dragons.Song.1.mp3", Quality = new QualityModel(Quality.MP3_320, new Revision(version: 1)), - Artist = _artist, - Album = _album + Author = _author, + Book = _book }; } diff --git a/src/NzbDrone.Core.Test/MediaFiles/UpgradeMediaFileServiceFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/UpgradeMediaFileServiceFixture.cs index 6bbaee6a2..d216ffe84 100644 --- a/src/NzbDrone.Core.Test/MediaFiles/UpgradeMediaFileServiceFixture.cs +++ b/src/NzbDrone.Core.Test/MediaFiles/UpgradeMediaFileServiceFixture.cs @@ -19,7 +19,7 @@ namespace NzbDrone.Core.Test.MediaFiles { private BookFile _trackFile; private LocalBook _localTrack; - private string _rootPath = @"C:\Test\Music\Artist".AsOsAgnostic(); + private string _rootPath = @"C:\Test\Music\Author".AsOsAgnostic(); [SetUp] public void Setup() @@ -97,7 +97,7 @@ namespace NzbDrone.Core.Test.MediaFiles Subject.UpgradeBookFile(_trackFile, _localTrack); - // Mocker.GetMock().Verify(v => v.Delete(_localTrack.Album.BookFiles.Value, DeleteMediaFileReason.Upgrade), Times.Once()); + // Mocker.GetMock().Verify(v => v.Delete(_localTrack.Book.BookFiles.Value, DeleteMediaFileReason.Upgrade), Times.Once()); } [Test] @@ -132,7 +132,7 @@ namespace NzbDrone.Core.Test.MediaFiles Subject.UpgradeBookFile(_trackFile, _localTrack); - // Mocker.GetMock().Verify(v => v.Delete(_localTrack.Album.BookFiles.Value, It.IsAny()), Times.Never()); + // Mocker.GetMock().Verify(v => v.Delete(_localTrack.Book.BookFiles.Value, It.IsAny()), Times.Never()); } } } diff --git a/src/NzbDrone.Core.Test/Messaging/Commands/CommandQueueFixture.cs b/src/NzbDrone.Core.Test/Messaging/Commands/CommandQueueFixture.cs index de095c129..840f44908 100644 --- a/src/NzbDrone.Core.Test/Messaging/Commands/CommandQueueFixture.cs +++ b/src/NzbDrone.Core.Test/Messaging/Commands/CommandQueueFixture.cs @@ -130,7 +130,7 @@ namespace NzbDrone.Core.Test.Messaging.Commands var newCommandModel = Builder .CreateNew() - .With(c => c.Name = "RefreshArtist") + .With(c => c.Name = "RefreshAuthor") .With(c => c.Body = new RefreshAuthorCommand()) .Build(); @@ -167,7 +167,7 @@ namespace NzbDrone.Core.Test.Messaging.Commands var newCommandModel = Builder .CreateNew() - .With(c => c.Name = "RefreshArtist") + .With(c => c.Name = "RefreshAuthor") .With(c => c.Body = new RefreshAuthorCommand()) .Build(); diff --git a/src/NzbDrone.Core.Test/MetadataSource/Goodreads/GoodreadsProxyFixture.cs b/src/NzbDrone.Core.Test/MetadataSource/Goodreads/GoodreadsProxyFixture.cs index 7b832cccc..6db9e67bb 100644 --- a/src/NzbDrone.Core.Test/MetadataSource/Goodreads/GoodreadsProxyFixture.cs +++ b/src/NzbDrone.Core.Test/MetadataSource/Goodreads/GoodreadsProxyFixture.cs @@ -49,19 +49,19 @@ namespace NzbDrone.Core.Test.MetadataSource.Goodreads { var details = Subject.GetBookInfo(mbId); - ValidateAlbums(new List { details.Item2 }); + ValidateBooks(new List { details.Item2 }); details.Item2.Title.Should().Be(name); } [Test] - public void getting_details_of_invalid_artist() + public void getting_details_of_invalid_author() { Assert.Throws(() => Subject.GetAuthorInfo("66c66aaa-6e2f-4930-8610-912e24c63ed1")); } [Test] - public void getting_details_of_invalid_album() + public void getting_details_of_invalid_book() { Assert.Throws(() => Subject.GetBookInfo("66c66aaa-6e2f-4930-8610-912e24c63ed1")); } @@ -78,37 +78,37 @@ namespace NzbDrone.Core.Test.MetadataSource.Goodreads author.ForeignAuthorId.Should().NotBeNullOrWhiteSpace(); } - private void ValidateAlbums(List albums, bool idOnly = false) + private void ValidateBooks(List books, bool idOnly = false) { - albums.Should().NotBeEmpty(); + books.Should().NotBeEmpty(); - foreach (var album in albums) + foreach (var book in books) { - album.ForeignBookId.Should().NotBeNullOrWhiteSpace(); + book.ForeignBookId.Should().NotBeNullOrWhiteSpace(); if (!idOnly) { - ValidateAlbum(album); + ValidateBook(book); } } - //if atleast one album has title it means parse it working. + //if atleast one book has title it means parse it working. if (!idOnly) { - albums.Should().Contain(c => !string.IsNullOrWhiteSpace(c.Title)); + books.Should().Contain(c => !string.IsNullOrWhiteSpace(c.Title)); } } - private void ValidateAlbum(Book album) + private void ValidateBook(Book book) { - album.Should().NotBeNull(); + book.Should().NotBeNull(); - album.Title.Should().NotBeNullOrWhiteSpace(); + book.Title.Should().NotBeNullOrWhiteSpace(); - album.Should().NotBeNull(); + book.Should().NotBeNull(); - if (album.ReleaseDate.HasValue) + if (book.ReleaseDate.HasValue) { - album.ReleaseDate.Value.Kind.Should().Be(DateTimeKind.Utc); + book.ReleaseDate.Value.Kind.Should().Be(DateTimeKind.Utc); } } } diff --git a/src/NzbDrone.Core.Test/MetadataSource/Goodreads/GoodreadsProxySearchFixture.cs b/src/NzbDrone.Core.Test/MetadataSource/Goodreads/GoodreadsProxySearchFixture.cs index 72f75ad71..bddf9e80a 100644 --- a/src/NzbDrone.Core.Test/MetadataSource/Goodreads/GoodreadsProxySearchFixture.cs +++ b/src/NzbDrone.Core.Test/MetadataSource/Goodreads/GoodreadsProxySearchFixture.cs @@ -33,7 +33,7 @@ namespace NzbDrone.Core.Test.MetadataSource.Goodreads [TestCase("Robert Harris", "Robert Harris")] [TestCase("James Patterson", "James Patterson")] [TestCase("Antoine de Saint-Exupéry", "Antoine de Saint-Exupéry")] - public void successful_artist_search(string title, string expected) + public void successful_author_search(string title, string expected) { var result = Subject.SearchForNewAuthor(title); @@ -51,9 +51,9 @@ namespace NzbDrone.Core.Test.MetadataSource.Goodreads [TestCase("goodreads:3", null, "Harry Potter and the Philosopher's Stone")] [TestCase("asin:B0192CTMYG", null, "Harry Potter and the Sorcerer's Stone")] [TestCase("isbn:9780439554930", null, "Harry Potter and the Sorcerer's Stone")] - public void successful_album_search(string title, string artist, string expected) + public void successful_book_search(string title, string author, string expected) { - var result = Subject.SearchForNewBook(title, artist); + var result = Subject.SearchForNewBook(title, author); result.Should().NotBeEmpty(); @@ -68,7 +68,7 @@ namespace NzbDrone.Core.Test.MetadataSource.Goodreads [TestCase("readarrid: -12")] [TestCase("readarrid: aaaa")] [TestCase("adjalkwdjkalwdjklawjdlKAJD")] - public void no_artist_search_result(string term) + public void no_author_search_result(string term) { var result = Subject.SearchForNewAuthor(term); result.Should().BeEmpty(); diff --git a/src/NzbDrone.Core.Test/MetadataSource/SearchArtistComparerFixture.cs b/src/NzbDrone.Core.Test/MetadataSource/SearchArtistComparerFixture.cs index 44d2c053f..9c662a8c2 100644 --- a/src/NzbDrone.Core.Test/MetadataSource/SearchArtistComparerFixture.cs +++ b/src/NzbDrone.Core.Test/MetadataSource/SearchArtistComparerFixture.cs @@ -9,19 +9,19 @@ using NzbDrone.Core.Test.Framework; namespace NzbDrone.Core.Test.MetadataSource { [TestFixture] - public class SearchArtistComparerFixture : CoreTest + public class SearchAuthorComparerFixture : CoreTest { - private List _artist; + private List _author; [SetUp] public void Setup() { - _artist = new List(); + _author = new List(); } private void WithSeries(string name) { - _artist.Add(new Author { Name = name }); + _author.Add(new Author { Name = name }); } [Test] @@ -30,9 +30,9 @@ namespace NzbDrone.Core.Test.MetadataSource WithSeries("Talking Dead"); WithSeries("The Walking Dead"); - _artist.Sort(new SearchAuthorComparer("the walking dead")); + _author.Sort(new SearchAuthorComparer("the walking dead")); - _artist.First().Name.Should().Be("The Walking Dead"); + _author.First().Name.Should().Be("The Walking Dead"); } [Test] @@ -41,9 +41,9 @@ namespace NzbDrone.Core.Test.MetadataSource WithSeries("Talking Dead"); WithSeries("The Walking Dead"); - _artist.Sort(new SearchAuthorComparer("walking dead")); + _author.Sort(new SearchAuthorComparer("walking dead")); - _artist.First().Name.Should().Be("The Walking Dead"); + _author.First().Name.Should().Be("The Walking Dead"); } [Test] @@ -52,9 +52,9 @@ namespace NzbDrone.Core.Test.MetadataSource WithSeries("The Blacklist"); WithSeries("Blacklist"); - _artist.Sort(new SearchAuthorComparer("blacklist")); + _author.Sort(new SearchAuthorComparer("blacklist")); - _artist.First().Name.Should().Be("Blacklist"); + _author.First().Name.Should().Be("Blacklist"); } [Test] @@ -63,9 +63,9 @@ namespace NzbDrone.Core.Test.MetadataSource WithSeries("Blacklist"); WithSeries("The Blacklist"); - _artist.Sort(new SearchAuthorComparer("the blacklist")); + _author.Sort(new SearchAuthorComparer("the blacklist")); - _artist.First().Name.Should().Be("The Blacklist"); + _author.First().Name.Should().Be("The Blacklist"); } } } diff --git a/src/NzbDrone.Core.Test/MusicTests/AddAlbumFixture.cs b/src/NzbDrone.Core.Test/MusicTests/AddAlbumFixture.cs index 2cbd6b848..389420963 100644 --- a/src/NzbDrone.Core.Test/MusicTests/AddAlbumFixture.cs +++ b/src/NzbDrone.Core.Test/MusicTests/AddAlbumFixture.cs @@ -15,24 +15,24 @@ using NzbDrone.Test.Common; namespace NzbDrone.Core.Test.MusicTests { [TestFixture] - public class AddAlbumFixture : CoreTest + public class AddBookFixture : CoreTest { - private Author _fakeArtist; - private Book _fakeAlbum; + private Author _fakeAuthor; + private Book _fakeBook; [SetUp] public void Setup() { - _fakeArtist = Builder + _fakeAuthor = Builder .CreateNew() .With(s => s.Path = null) .With(s => s.Metadata = Builder.CreateNew().Build()) .Build(); } - private void GivenValidAlbum(string readarrId) + private void GivenValidBook(string readarrId) { - _fakeAlbum = Builder + _fakeBook = Builder .CreateNew() .With(x => x.Editions = Builder .CreateListOfSize(1) @@ -44,13 +44,13 @@ namespace NzbDrone.Core.Test.MusicTests Mocker.GetMock() .Setup(s => s.GetBookInfo(readarrId, true)) - .Returns(Tuple.Create(_fakeArtist.Metadata.Value.ForeignAuthorId, - _fakeAlbum, - new List { _fakeArtist.Metadata.Value })); + .Returns(Tuple.Create(_fakeAuthor.Metadata.Value.ForeignAuthorId, + _fakeBook, + new List { _fakeAuthor.Metadata.Value })); Mocker.GetMock() .Setup(s => s.AddAuthor(It.IsAny(), It.IsAny())) - .Returns(_fakeArtist); + .Returns(_fakeAuthor); } private void GivenValidPath() @@ -60,7 +60,7 @@ namespace NzbDrone.Core.Test.MusicTests .Returns((c, n) => c.Name); } - private Book AlbumToAdd(string editionId, string bookId, string authorId) + private Book BookToAdd(string editionId, string bookId, string authorId) { return new Book { @@ -81,28 +81,28 @@ namespace NzbDrone.Core.Test.MusicTests } [Test] - public void should_be_able_to_add_a_album_without_passing_in_name() + public void should_be_able_to_add_a_book_without_passing_in_name() { - var newAlbum = AlbumToAdd("edition", "book", "author"); + var newBook = BookToAdd("edition", "book", "author"); - GivenValidAlbum("edition"); + GivenValidBook("edition"); GivenValidPath(); - var album = Subject.AddBook(newAlbum); + var book = Subject.AddBook(newBook); - album.Title.Should().Be(_fakeAlbum.Title); + book.Title.Should().Be(_fakeBook.Title); } [Test] - public void should_throw_if_album_cannot_be_found() + public void should_throw_if_book_cannot_be_found() { - var newAlbum = AlbumToAdd("edition", "book", "author"); + var newBook = BookToAdd("edition", "book", "author"); Mocker.GetMock() .Setup(s => s.GetBookInfo("edition", true)) .Throws(new BookNotFoundException("edition")); - Assert.Throws(() => Subject.AddBook(newAlbum)); + Assert.Throws(() => Subject.AddBook(newBook)); ExceptionVerification.ExpectedErrors(1); } diff --git a/src/NzbDrone.Core.Test/MusicTests/AddArtistFixture.cs b/src/NzbDrone.Core.Test/MusicTests/AddArtistFixture.cs index bdbceb712..1613d8350 100644 --- a/src/NzbDrone.Core.Test/MusicTests/AddArtistFixture.cs +++ b/src/NzbDrone.Core.Test/MusicTests/AddArtistFixture.cs @@ -16,25 +16,25 @@ using NzbDrone.Test.Common; namespace NzbDrone.Core.Test.MusicTests { [TestFixture] - public class AddArtistFixture : CoreTest + public class AddAuthorFixture : CoreTest { - private Author _fakeArtist; + private Author _fakeAuthor; [SetUp] public void Setup() { - _fakeArtist = Builder + _fakeAuthor = Builder .CreateNew() .With(s => s.Path = null) .Build(); - _fakeArtist.Books = new List(); + _fakeAuthor.Books = new List(); } - private void GivenValidArtist(string readarrId) + private void GivenValidAuthor(string readarrId) { Mocker.GetMock() .Setup(s => s.GetAuthorInfo(readarrId, true)) - .Returns(_fakeArtist); + .Returns(_fakeAuthor); } private void GivenValidPath() @@ -49,49 +49,49 @@ namespace NzbDrone.Core.Test.MusicTests } [Test] - public void should_be_able_to_add_a_artist_without_passing_in_name() + public void should_be_able_to_add_a_author_without_passing_in_name() { - var newArtist = new Author + var newAuthor = new Author { ForeignAuthorId = "ce09ea31-3d4a-4487-a797-e315175457a0", RootFolderPath = @"C:\Test\Music" }; - GivenValidArtist(newArtist.ForeignAuthorId); + GivenValidAuthor(newAuthor.ForeignAuthorId); GivenValidPath(); - var artist = Subject.AddAuthor(newArtist); + var author = Subject.AddAuthor(newAuthor); - artist.Name.Should().Be(_fakeArtist.Name); + author.Name.Should().Be(_fakeAuthor.Name); } [Test] public void should_have_proper_path() { - var newArtist = new Author + var newAuthor = new Author { ForeignAuthorId = "ce09ea31-3d4a-4487-a797-e315175457a0", RootFolderPath = @"C:\Test\Music" }; - GivenValidArtist(newArtist.ForeignAuthorId); + GivenValidAuthor(newAuthor.ForeignAuthorId); GivenValidPath(); - var artist = Subject.AddAuthor(newArtist); + var author = Subject.AddAuthor(newAuthor); - artist.Path.Should().Be(Path.Combine(newArtist.RootFolderPath, _fakeArtist.Name)); + author.Path.Should().Be(Path.Combine(newAuthor.RootFolderPath, _fakeAuthor.Name)); } [Test] - public void should_throw_if_artist_validation_fails() + public void should_throw_if_author_validation_fails() { - var newArtist = new Author + var newAuthor = new Author { ForeignAuthorId = "ce09ea31-3d4a-4487-a797-e315175457a0", Path = @"C:\Test\Music\Name1" }; - GivenValidArtist(newArtist.ForeignAuthorId); + GivenValidAuthor(newAuthor.ForeignAuthorId); Mocker.GetMock() .Setup(s => s.Validate(It.IsAny())) @@ -100,21 +100,21 @@ namespace NzbDrone.Core.Test.MusicTests new ValidationFailure("Path", "Test validation failure") })); - Assert.Throws(() => Subject.AddAuthor(newArtist)); + Assert.Throws(() => Subject.AddAuthor(newAuthor)); } [Test] - public void should_throw_if_artist_cannot_be_found() + public void should_throw_if_author_cannot_be_found() { - var newArtist = new Author + var newAuthor = new Author { ForeignAuthorId = "ce09ea31-3d4a-4487-a797-e315175457a0", Path = @"C:\Test\Music\Name1" }; Mocker.GetMock() - .Setup(s => s.GetAuthorInfo(newArtist.ForeignAuthorId, true)) - .Throws(new AuthorNotFoundException(newArtist.ForeignAuthorId)); + .Setup(s => s.GetAuthorInfo(newAuthor.ForeignAuthorId, true)) + .Throws(new AuthorNotFoundException(newAuthor.ForeignAuthorId)); Mocker.GetMock() .Setup(s => s.Validate(It.IsAny())) @@ -123,95 +123,95 @@ namespace NzbDrone.Core.Test.MusicTests new ValidationFailure("Path", "Test validation failure") })); - Assert.Throws(() => Subject.AddAuthor(newArtist)); + Assert.Throws(() => Subject.AddAuthor(newAuthor)); ExceptionVerification.ExpectedErrors(1); } [Test] - public void should_disambiguate_if_artist_folder_exists() + public void should_disambiguate_if_author_folder_exists() { - var newArtist = new Author + var newAuthor = new Author { ForeignAuthorId = "ce09ea31-3d4a-4487-a797-e315175457a0", Path = @"C:\Test\Music\Name1", }; - _fakeArtist.Metadata = Builder.CreateNew().With(x => x.Disambiguation = "Disambiguation").Build(); + _fakeAuthor.Metadata = Builder.CreateNew().With(x => x.Disambiguation = "Disambiguation").Build(); - GivenValidArtist(newArtist.ForeignAuthorId); + GivenValidAuthor(newAuthor.ForeignAuthorId); GivenValidPath(); Mocker.GetMock() - .Setup(x => x.AuthorPathExists(newArtist.Path)) + .Setup(x => x.AuthorPathExists(newAuthor.Path)) .Returns(true); - var artist = Subject.AddAuthor(newArtist); - artist.Path.Should().Be(newArtist.Path + " (Disambiguation)"); + var author = Subject.AddAuthor(newAuthor); + author.Path.Should().Be(newAuthor.Path + " (Disambiguation)"); } [Test] - public void should_disambiguate_with_numbers_if_artist_folder_still_exists() + public void should_disambiguate_with_numbers_if_author_folder_still_exists() { - var newArtist = new Author + var newAuthor = new Author { ForeignAuthorId = "ce09ea31-3d4a-4487-a797-e315175457a0", Path = @"C:\Test\Music\Name1", }; - _fakeArtist.Metadata = Builder.CreateNew().With(x => x.Disambiguation = "Disambiguation").Build(); + _fakeAuthor.Metadata = Builder.CreateNew().With(x => x.Disambiguation = "Disambiguation").Build(); - GivenValidArtist(newArtist.ForeignAuthorId); + GivenValidAuthor(newAuthor.ForeignAuthorId); GivenValidPath(); Mocker.GetMock() - .Setup(x => x.AuthorPathExists(newArtist.Path)) + .Setup(x => x.AuthorPathExists(newAuthor.Path)) .Returns(true); Mocker.GetMock() - .Setup(x => x.AuthorPathExists(newArtist.Path + " (Disambiguation)")) + .Setup(x => x.AuthorPathExists(newAuthor.Path + " (Disambiguation)")) .Returns(true); Mocker.GetMock() - .Setup(x => x.AuthorPathExists(newArtist.Path + " (Disambiguation) (1)")) + .Setup(x => x.AuthorPathExists(newAuthor.Path + " (Disambiguation) (1)")) .Returns(true); Mocker.GetMock() - .Setup(x => x.AuthorPathExists(newArtist.Path + " (Disambiguation) (2)")) + .Setup(x => x.AuthorPathExists(newAuthor.Path + " (Disambiguation) (2)")) .Returns(true); - var artist = Subject.AddAuthor(newArtist); - artist.Path.Should().Be(newArtist.Path + " (Disambiguation) (3)"); + var author = Subject.AddAuthor(newAuthor); + author.Path.Should().Be(newAuthor.Path + " (Disambiguation) (3)"); } [Test] - public void should_disambiguate_with_numbers_if_artist_folder_exists_and_no_disambiguation() + public void should_disambiguate_with_numbers_if_author_folder_exists_and_no_disambiguation() { - var newArtist = new Author + var newAuthor = new Author { ForeignAuthorId = "ce09ea31-3d4a-4487-a797-e315175457a0", Path = @"C:\Test\Music\Name1", }; - _fakeArtist.Metadata = Builder.CreateNew().With(x => x.Disambiguation = string.Empty).Build(); + _fakeAuthor.Metadata = Builder.CreateNew().With(x => x.Disambiguation = string.Empty).Build(); - GivenValidArtist(newArtist.ForeignAuthorId); + GivenValidAuthor(newAuthor.ForeignAuthorId); GivenValidPath(); Mocker.GetMock() - .Setup(x => x.AuthorPathExists(newArtist.Path)) + .Setup(x => x.AuthorPathExists(newAuthor.Path)) .Returns(true); Mocker.GetMock() - .Setup(x => x.AuthorPathExists(newArtist.Path + " (1)")) + .Setup(x => x.AuthorPathExists(newAuthor.Path + " (1)")) .Returns(true); Mocker.GetMock() - .Setup(x => x.AuthorPathExists(newArtist.Path + " (2)")) + .Setup(x => x.AuthorPathExists(newAuthor.Path + " (2)")) .Returns(true); - var artist = Subject.AddAuthor(newArtist); - artist.Path.Should().Be(newArtist.Path + " (3)"); + var author = Subject.AddAuthor(newAuthor); + author.Path.Should().Be(newAuthor.Path + " (3)"); } } } diff --git a/src/NzbDrone.Core.Test/MusicTests/AlbumMonitoredServiceTests/AlbumMonitoredServiceFixture.cs b/src/NzbDrone.Core.Test/MusicTests/AlbumMonitoredServiceTests/AlbumMonitoredServiceFixture.cs index 33264851b..59ba9d853 100644 --- a/src/NzbDrone.Core.Test/MusicTests/AlbumMonitoredServiceTests/AlbumMonitoredServiceFixture.cs +++ b/src/NzbDrone.Core.Test/MusicTests/AlbumMonitoredServiceTests/AlbumMonitoredServiceFixture.cs @@ -8,23 +8,23 @@ using NzbDrone.Common.Extensions; using NzbDrone.Core.Books; using NzbDrone.Core.Test.Framework; -namespace NzbDrone.Core.Test.MusicTests.AlbumMonitoredServiceTests +namespace NzbDrone.Core.Test.MusicTests.BookMonitoredServiceTests { [TestFixture] - public class SetAlbumMontitoredFixture : CoreTest + public class SetBookMontitoredFixture : CoreTest { - private Author _artist; - private List _albums; + private Author _author; + private List _books; [SetUp] public void Setup() { - const int albums = 4; + const int books = 4; - _artist = Builder.CreateNew() + _author = Builder.CreateNew() .Build(); - _albums = Builder.CreateListOfSize(albums) + _books = Builder.CreateListOfSize(books) .All() .With(e => e.Monitored = true) .With(e => e.ReleaseDate = DateTime.UtcNow.AddDays(-7)) @@ -41,7 +41,7 @@ namespace NzbDrone.Core.Test.MusicTests.AlbumMonitoredServiceTests Mocker.GetMock() .Setup(s => s.GetBooksByAuthor(It.IsAny())) - .Returns(_albums); + .Returns(_books); Mocker.GetMock() .Setup(s => s.GetAuthorBooksWithFiles(It.IsAny())) @@ -49,9 +49,9 @@ namespace NzbDrone.Core.Test.MusicTests.AlbumMonitoredServiceTests } [Test] - public void should_be_able_to_monitor_artist_without_changing_albums() + public void should_be_able_to_monitor_author_without_changing_books() { - Subject.SetBookMonitoredStatus(_artist, null); + Subject.SetBookMonitoredStatus(_author, null); Mocker.GetMock() .Verify(v => v.UpdateAuthor(It.IsAny()), Times.Once()); @@ -61,37 +61,37 @@ namespace NzbDrone.Core.Test.MusicTests.AlbumMonitoredServiceTests } [Test] - public void should_be_able_to_monitor_albums_when_passed_in_artist() + public void should_be_able_to_monitor_books_when_passed_in_author() { - var albumsToMonitor = new List { _albums.First().ForeignBookId }; + var booksToMonitor = new List { _books.First().ForeignBookId }; - Subject.SetBookMonitoredStatus(_artist, new MonitoringOptions { Monitored = true, BooksToMonitor = albumsToMonitor }); + Subject.SetBookMonitoredStatus(_author, new MonitoringOptions { Monitored = true, BooksToMonitor = booksToMonitor }); Mocker.GetMock() .Verify(v => v.UpdateAuthor(It.IsAny()), Times.Once()); - VerifyMonitored(e => e.ForeignBookId == _albums.First().ForeignBookId); - VerifyNotMonitored(e => e.ForeignBookId != _albums.First().ForeignBookId); + VerifyMonitored(e => e.ForeignBookId == _books.First().ForeignBookId); + VerifyNotMonitored(e => e.ForeignBookId != _books.First().ForeignBookId); } [Test] - public void should_be_able_to_monitor_all_albums() + public void should_be_able_to_monitor_all_books() { - Subject.SetBookMonitoredStatus(_artist, new MonitoringOptions { Monitor = MonitorTypes.All }); + Subject.SetBookMonitoredStatus(_author, new MonitoringOptions { Monitor = MonitorTypes.All }); Mocker.GetMock() .Verify(v => v.UpdateMany(It.Is>(l => l.All(e => e.Monitored)))); } [Test] - public void should_be_able_to_monitor_new_albums_only() + public void should_be_able_to_monitor_new_books_only() { var monitoringOptions = new MonitoringOptions { Monitor = MonitorTypes.Future }; - Subject.SetBookMonitoredStatus(_artist, monitoringOptions); + Subject.SetBookMonitoredStatus(_author, monitoringOptions); VerifyMonitored(e => e.ReleaseDate.HasValue && e.ReleaseDate.Value.After(DateTime.UtcNow)); VerifyMonitored(e => !e.ReleaseDate.HasValue); diff --git a/src/NzbDrone.Core.Test/MusicTests/AlbumRepositoryTests/AlbumRepositoryFixture.cs b/src/NzbDrone.Core.Test/MusicTests/AlbumRepositoryTests/AlbumRepositoryFixture.cs index 033d5905f..cffd00633 100644 --- a/src/NzbDrone.Core.Test/MusicTests/AlbumRepositoryTests/AlbumRepositoryFixture.cs +++ b/src/NzbDrone.Core.Test/MusicTests/AlbumRepositoryTests/AlbumRepositoryFixture.cs @@ -7,21 +7,21 @@ using NUnit.Framework; using NzbDrone.Core.Books; using NzbDrone.Core.Test.Framework; -namespace NzbDrone.Core.Test.MusicTests.AlbumRepositoryTests +namespace NzbDrone.Core.Test.MusicTests.BookRepositoryTests { [TestFixture] - public class AlbumRepositoryFixture : DbTest + public class BookRepositoryFixture : DbTest { - private Author _artist; - private Book _album; - private Book _albumSpecial; - private List _albums; - private BookRepository _albumRepo; + private Author _author; + private Book _book; + private Book _bookSpecial; + private List _books; + private BookRepository _bookRepo; [SetUp] public void Setup() { - _artist = new Author + _author = new Author { Name = "Alien Ant Farm", Monitored = true, @@ -30,92 +30,92 @@ namespace NzbDrone.Core.Test.MusicTests.AlbumRepositoryTests AuthorMetadataId = 1 }; - _albumRepo = Mocker.Resolve(); + _bookRepo = Mocker.Resolve(); - _album = new Book + _book = new Book { Title = "ANThology", ForeignBookId = "1", TitleSlug = "1-ANThology", CleanTitle = "anthology", - Author = _artist, - AuthorMetadataId = _artist.AuthorMetadataId, + Author = _author, + AuthorMetadataId = _author.AuthorMetadataId, }; - _albumRepo.Insert(_album); - _albumRepo.Update(_album); + _bookRepo.Insert(_book); + _bookRepo.Update(_book); - _albumSpecial = new Book + _bookSpecial = new Book { Title = "+", ForeignBookId = "2", TitleSlug = "2-_", CleanTitle = "", - Author = _artist, - AuthorMetadataId = _artist.AuthorMetadataId + Author = _author, + AuthorMetadataId = _author.AuthorMetadataId }; - _albumRepo.Insert(_albumSpecial); + _bookRepo.Insert(_bookSpecial); } [TestCase("ANThology")] [TestCase("anthology")] [TestCase("anthology!")] - public void should_find_album_in_db_by_title(string title) + public void should_find_book_in_db_by_title(string title) { - var album = _albumRepo.FindByTitle(_artist.AuthorMetadataId, title); + var book = _bookRepo.FindByTitle(_author.AuthorMetadataId, title); - album.Should().NotBeNull(); - album.Title.Should().Be(_album.Title); + book.Should().NotBeNull(); + book.Title.Should().Be(_book.Title); } [Test] - public void should_find_album_in_db_by_title_all_special_characters() + public void should_find_book_in_db_by_title_all_special_characters() { - var album = _albumRepo.FindByTitle(_artist.AuthorMetadataId, "+"); + var book = _bookRepo.FindByTitle(_author.AuthorMetadataId, "+"); - album.Should().NotBeNull(); - album.Title.Should().Be(_albumSpecial.Title); + book.Should().NotBeNull(); + book.Title.Should().Be(_bookSpecial.Title); } [TestCase("ANTholog")] [TestCase("nthology")] [TestCase("antholoyg")] [TestCase("÷")] - public void should_not_find_album_in_db_by_incorrect_title(string title) + public void should_not_find_book_in_db_by_incorrect_title(string title) { - var album = _albumRepo.FindByTitle(_artist.AuthorMetadataId, title); + var book = _bookRepo.FindByTitle(_author.AuthorMetadataId, title); - album.Should().BeNull(); + book.Should().BeNull(); } [Test] - public void should_not_find_album_when_two_albums_have_same_name() + public void should_not_find_book_when_two_books_have_same_name() { - var albums = Builder.CreateListOfSize(2) + var books = Builder.CreateListOfSize(2) .All() .With(x => x.Id = 0) - .With(x => x.Author = _artist) - .With(x => x.AuthorMetadataId = _artist.AuthorMetadataId) + .With(x => x.Author = _author) + .With(x => x.AuthorMetadataId = _author.AuthorMetadataId) .With(x => x.Title = "Weezer") .With(x => x.CleanTitle = "weezer") .Build(); - _albumRepo.InsertMany(albums); + _bookRepo.InsertMany(books); - var album = _albumRepo.FindByTitle(_artist.AuthorMetadataId, "Weezer"); + var book = _bookRepo.FindByTitle(_author.AuthorMetadataId, "Weezer"); - _albumRepo.All().Should().HaveCount(4); - album.Should().BeNull(); + _bookRepo.All().Should().HaveCount(4); + book.Should().BeNull(); } - private void GivenMultipleAlbums() + private void GivenMultipleBooks() { - _albums = Builder.CreateListOfSize(4) + _books = Builder.CreateListOfSize(4) .All() .With(x => x.Id = 0) - .With(x => x.Author = _artist) - .With(x => x.AuthorMetadataId = _artist.AuthorMetadataId) + .With(x => x.Author = _author) + .With(x => x.AuthorMetadataId = _author.AuthorMetadataId) .TheFirst(1) // next @@ -134,25 +134,25 @@ namespace NzbDrone.Core.Test.MusicTests.AlbumRepositoryTests .With(x => x.ReleaseDate = DateTime.UtcNow.AddDays(-2)) .BuildList(); - _albumRepo.InsertMany(_albums); + _bookRepo.InsertMany(_books); } [Test] - public void get_next_albums_should_return_next_album() + public void get_next_books_should_return_next_book() { - GivenMultipleAlbums(); + GivenMultipleBooks(); - var result = _albumRepo.GetNextBooks(new[] { _artist.AuthorMetadataId }); - result.Should().BeEquivalentTo(_albums.Take(1)); + var result = _bookRepo.GetNextBooks(new[] { _author.AuthorMetadataId }); + result.Should().BeEquivalentTo(_books.Take(1)); } [Test] - public void get_last_albums_should_return_next_album() + public void get_last_books_should_return_next_book() { - GivenMultipleAlbums(); + GivenMultipleBooks(); - var result = _albumRepo.GetLastBooks(new[] { _artist.AuthorMetadataId }); - result.Should().BeEquivalentTo(_albums.Skip(2).Take(1)); + var result = _bookRepo.GetLastBooks(new[] { _author.AuthorMetadataId }); + result.Should().BeEquivalentTo(_books.Skip(2).Take(1)); } } } diff --git a/src/NzbDrone.Core.Test/MusicTests/AlbumServiceFixture.cs b/src/NzbDrone.Core.Test/MusicTests/AlbumServiceFixture.cs index 3bf08b866..477886e88 100644 --- a/src/NzbDrone.Core.Test/MusicTests/AlbumServiceFixture.cs +++ b/src/NzbDrone.Core.Test/MusicTests/AlbumServiceFixture.cs @@ -5,24 +5,24 @@ using NUnit.Framework; using NzbDrone.Core.Books; using NzbDrone.Core.Test.Framework; -namespace NzbDrone.Core.Test.MusicTests.AlbumRepositoryTests +namespace NzbDrone.Core.Test.MusicTests.BookRepositoryTests { [TestFixture] - public class AlbumServiceFixture : CoreTest + public class BookServiceFixture : CoreTest { - private List _albums; + private List _books; [SetUp] public void Setup() { - _albums = new List(); - _albums.Add(new Book + _books = new List(); + _books.Add(new Book { Title = "ANThology", CleanTitle = "anthology", }); - _albums.Add(new Book + _books.Add(new Book { Title = "+", CleanTitle = "", @@ -30,12 +30,12 @@ namespace NzbDrone.Core.Test.MusicTests.AlbumRepositoryTests Mocker.GetMock() .Setup(s => s.GetBooksByAuthorMetadataId(It.IsAny())) - .Returns(_albums); + .Returns(_books); } - private void GivenSimilarAlbum() + private void GivenSimilarBook() { - _albums.Add(new Book + _books.Add(new Book { Title = "ANThology2", CleanTitle = "anthology2", @@ -47,12 +47,12 @@ namespace NzbDrone.Core.Test.MusicTests.AlbumRepositoryTests [TestCase("ANThology CD", "ANThology")] [TestCase("ANThology CD xxxx (Remastered) - [Oh please why do they do this?]", "ANThology")] [TestCase("+ (Plus) - I feel the need for redundant information in the title field", "+")] - public void should_find_album_in_db_by_inexact_title(string title, string expected) + public void should_find_book_in_db_by_inexact_title(string title, string expected) { - var album = Subject.FindByTitleInexact(0, title); + var book = Subject.FindByTitleInexact(0, title); - album.Should().NotBeNull(); - album.Title.Should().Be(expected); + book.Should().NotBeNull(); + book.Title.Should().Be(expected); } [TestCase("ANTholog")] @@ -60,12 +60,12 @@ namespace NzbDrone.Core.Test.MusicTests.AlbumRepositoryTests [TestCase("ANThology CD")] [TestCase("÷")] [TestCase("÷ (Divide)")] - public void should_not_find_album_in_db_by_inexact_title_when_two_similar_matches(string title) + public void should_not_find_book_in_db_by_inexact_title_when_two_similar_matches(string title) { - GivenSimilarAlbum(); - var album = Subject.FindByTitleInexact(0, title); + GivenSimilarBook(); + var book = Subject.FindByTitleInexact(0, title); - album.Should().BeNull(); + book.Should().BeNull(); } } } diff --git a/src/NzbDrone.Core.Test/MusicTests/ArtistMetadataRepositoryTests/ArtistMetadataRepositoryFixture.cs b/src/NzbDrone.Core.Test/MusicTests/ArtistMetadataRepositoryTests/ArtistMetadataRepositoryFixture.cs index c71dccc6c..092d22259 100644 --- a/src/NzbDrone.Core.Test/MusicTests/ArtistMetadataRepositoryTests/ArtistMetadataRepositoryFixture.cs +++ b/src/NzbDrone.Core.Test/MusicTests/ArtistMetadataRepositoryTests/ArtistMetadataRepositoryFixture.cs @@ -7,26 +7,26 @@ using NzbDrone.Common.Extensions; using NzbDrone.Core.Books; using NzbDrone.Core.Test.Framework; -namespace NzbDrone.Core.Test.MusicTests.ArtistRepositoryTests +namespace NzbDrone.Core.Test.MusicTests.AuthorRepositoryTests { [TestFixture] - public class ArtistMetadataRepositoryFixture : DbTest + public class AuthorMetadataRepositoryFixture : DbTest { - private AuthorMetadataRepository _artistMetadataRepo; + private AuthorMetadataRepository _authorMetadataRepo; private List _metadataList; [SetUp] public void Setup() { - _artistMetadataRepo = Mocker.Resolve(); + _authorMetadataRepo = Mocker.Resolve(); _metadataList = Builder.CreateListOfSize(10).All().With(x => x.Id = 0).BuildList(); } [Test] public void upsert_many_should_insert_list_of_new() { - var updated = _artistMetadataRepo.UpsertMany(_metadataList); + var updated = _authorMetadataRepo.UpsertMany(_metadataList); AllStoredModels.Should().HaveCount(_metadataList.Count); updated.Should().BeTrue(); } @@ -35,12 +35,12 @@ namespace NzbDrone.Core.Test.MusicTests.ArtistRepositoryTests public void upsert_many_should_upsert_existing_with_id_0() { var clone = _metadataList.JsonClone(); - var updated = _artistMetadataRepo.UpsertMany(clone); + var updated = _authorMetadataRepo.UpsertMany(clone); updated.Should().BeTrue(); AllStoredModels.Should().HaveCount(_metadataList.Count); - updated = _artistMetadataRepo.UpsertMany(_metadataList); + updated = _authorMetadataRepo.UpsertMany(_metadataList); updated.Should().BeFalse(); AllStoredModels.Should().HaveCount(_metadataList.Count); } @@ -49,12 +49,12 @@ namespace NzbDrone.Core.Test.MusicTests.ArtistRepositoryTests public void upsert_many_should_upsert_mixed_list_of_old_and_new() { var clone = _metadataList.Take(5).ToList().JsonClone(); - var updated = _artistMetadataRepo.UpsertMany(clone); + var updated = _authorMetadataRepo.UpsertMany(clone); updated.Should().BeTrue(); AllStoredModels.Should().HaveCount(clone.Count); - updated = _artistMetadataRepo.UpsertMany(_metadataList); + updated = _authorMetadataRepo.UpsertMany(_metadataList); updated.Should().BeTrue(); AllStoredModels.Should().HaveCount(_metadataList.Count); } diff --git a/src/NzbDrone.Core.Test/MusicTests/ArtistRepositoryTests/ArtistRepositoryFixture.cs b/src/NzbDrone.Core.Test/MusicTests/ArtistRepositoryTests/ArtistRepositoryFixture.cs index 68df854b5..15b22752a 100644 --- a/src/NzbDrone.Core.Test/MusicTests/ArtistRepositoryTests/ArtistRepositoryFixture.cs +++ b/src/NzbDrone.Core.Test/MusicTests/ArtistRepositoryTests/ArtistRepositoryFixture.cs @@ -11,23 +11,23 @@ using NzbDrone.Core.Profiles.Qualities; using NzbDrone.Core.Qualities; using NzbDrone.Core.Test.Framework; -namespace NzbDrone.Core.Test.MusicTests.ArtistRepositoryTests +namespace NzbDrone.Core.Test.MusicTests.AuthorRepositoryTests { [TestFixture] - public class ArtistRepositoryFixture : DbTest + public class AuthorRepositoryFixture : DbTest { - private AuthorRepository _artistRepo; - private AuthorMetadataRepository _artistMetadataRepo; + private AuthorRepository _authorRepo; + private AuthorMetadataRepository _authorMetadataRepo; [SetUp] public void Setup() { - _artistRepo = Mocker.Resolve(); - _artistMetadataRepo = Mocker.Resolve(); + _authorRepo = Mocker.Resolve(); + _authorMetadataRepo = Mocker.Resolve(); } - private void AddArtist(string name, string foreignId, List oldIds = null) + private void AddAuthor(string name, string foreignId, List oldIds = null) { if (oldIds == null) { @@ -40,22 +40,22 @@ namespace NzbDrone.Core.Test.MusicTests.ArtistRepositoryTests .With(a => a.TitleSlug = foreignId) .BuildNew(); - var artist = Builder.CreateNew() + var author = Builder.CreateNew() .With(a => a.Id = 0) .With(a => a.Metadata = metadata) .With(a => a.CleanName = Parser.Parser.CleanAuthorName(name)) .With(a => a.ForeignAuthorId = foreignId) .BuildNew(); - _artistMetadataRepo.Insert(metadata); - artist.AuthorMetadataId = metadata.Id; - _artistRepo.Insert(artist); + _authorMetadataRepo.Insert(metadata); + author.AuthorMetadataId = metadata.Id; + _authorRepo.Insert(author); } - private void GivenArtists() + private void GivenAuthors() { - AddArtist("The Black Eyed Peas", "d5be5333-4171-427e-8e12-732087c6b78e"); - AddArtist("The Black Keys", "d15721d8-56b4-453d-b506-fc915b14cba2", new List { "6f2ed437-825c-4cea-bb58-bf7688c6317a" }); + AddAuthor("The Black Eyed Peas", "d5be5333-4171-427e-8e12-732087c6b78e"); + AddAuthor("The Black Keys", "d15721d8-56b4-453d-b506-fc915b14cba2", new List { "6f2ed437-825c-4cea-bb58-bf7688c6317a" }); } [Test] @@ -77,11 +77,11 @@ namespace NzbDrone.Core.Test.MusicTests.ArtistRepositoryTests Mocker.Resolve().Insert(profile); Mocker.Resolve().Insert(metaProfile); - var artist = Builder.CreateNew().BuildNew(); - artist.QualityProfileId = profile.Id; - artist.MetadataProfileId = metaProfile.Id; + var author = Builder.CreateNew().BuildNew(); + author.QualityProfileId = profile.Id; + author.MetadataProfileId = metaProfile.Id; - Subject.Insert(artist); + Subject.Insert(author); StoredModel.QualityProfile.Should().NotBeNull(); StoredModel.MetadataProfile.Should().NotBeNull(); @@ -89,42 +89,42 @@ namespace NzbDrone.Core.Test.MusicTests.ArtistRepositoryTests [TestCase("The Black Eyed Peas")] [TestCase("The Black Keys")] - public void should_find_artist_in_db_by_name(string name) + public void should_find_author_in_db_by_name(string name) { - GivenArtists(); - var artist = _artistRepo.FindByName(Parser.Parser.CleanAuthorName(name)); + GivenAuthors(); + var author = _authorRepo.FindByName(Parser.Parser.CleanAuthorName(name)); - artist.Should().NotBeNull(); - artist.Name.Should().Be(name); + author.Should().NotBeNull(); + author.Name.Should().Be(name); } [Test] - public void should_find_artist_in_by_id() + public void should_find_author_in_by_id() { - GivenArtists(); - var artist = _artistRepo.FindById("d5be5333-4171-427e-8e12-732087c6b78e"); + GivenAuthors(); + var author = _authorRepo.FindById("d5be5333-4171-427e-8e12-732087c6b78e"); - artist.Should().NotBeNull(); - artist.ForeignAuthorId.Should().Be("d5be5333-4171-427e-8e12-732087c6b78e"); + author.Should().NotBeNull(); + author.ForeignAuthorId.Should().Be("d5be5333-4171-427e-8e12-732087c6b78e"); } [Test] - public void should_not_find_artist_if_multiple_artists_have_same_name() + public void should_not_find_author_if_multiple_authors_have_same_name() { - GivenArtists(); + GivenAuthors(); string name = "Alice Cooper"; - AddArtist(name, "ee58c59f-8e7f-4430-b8ca-236c4d3745ae"); - AddArtist(name, "4d7928cd-7ed2-4282-8c29-c0c9f966f1bd"); + AddAuthor(name, "ee58c59f-8e7f-4430-b8ca-236c4d3745ae"); + AddAuthor(name, "4d7928cd-7ed2-4282-8c29-c0c9f966f1bd"); - _artistRepo.All().Should().HaveCount(4); + _authorRepo.All().Should().HaveCount(4); - var artist = _artistRepo.FindByName(Parser.Parser.CleanAuthorName(name)); - artist.Should().BeNull(); + var author = _authorRepo.FindByName(Parser.Parser.CleanAuthorName(name)); + author.Should().BeNull(); } [Test] - public void should_throw_sql_exception_adding_duplicate_artist() + public void should_throw_sql_exception_adding_duplicate_author() { var name = "test"; var metadata = Builder.CreateNew() @@ -132,19 +132,19 @@ namespace NzbDrone.Core.Test.MusicTests.ArtistRepositoryTests .With(a => a.Name = name) .BuildNew(); - var artist1 = Builder.CreateNew() + var author1 = Builder.CreateNew() .With(a => a.Id = 0) .With(a => a.Metadata = metadata) .With(a => a.CleanName = Parser.Parser.CleanAuthorName(name)) .BuildNew(); - var artist2 = artist1.JsonClone(); - artist2.Metadata = metadata; + var author2 = author1.JsonClone(); + author2.Metadata = metadata; - _artistMetadataRepo.Insert(metadata); - _artistRepo.Insert(artist1); + _authorMetadataRepo.Insert(metadata); + _authorRepo.Insert(author1); - Action insertDupe = () => _artistRepo.Insert(artist2); + Action insertDupe = () => _authorRepo.Insert(author2); insertDupe.Should().Throw(); } } diff --git a/src/NzbDrone.Core.Test/MusicTests/ArtistServiceTests/FindByNameInexactFixture.cs b/src/NzbDrone.Core.Test/MusicTests/ArtistServiceTests/FindByNameInexactFixture.cs index fca328d64..4efe12068 100644 --- a/src/NzbDrone.Core.Test/MusicTests/ArtistServiceTests/FindByNameInexactFixture.cs +++ b/src/NzbDrone.Core.Test/MusicTests/ArtistServiceTests/FindByNameInexactFixture.cs @@ -5,15 +5,15 @@ using NUnit.Framework; using NzbDrone.Core.Books; using NzbDrone.Core.Test.Framework; -namespace NzbDrone.Core.Test.MusicTests.ArtistServiceTests +namespace NzbDrone.Core.Test.MusicTests.AuthorServiceTests { [TestFixture] public class FindByNameInexactFixture : CoreTest { - private List _artists; + private List _authors; - private Author CreateArtist(string name) + private Author CreateAuthor(string name) { return Builder.CreateNew() .With(a => a.Name = name) @@ -25,47 +25,47 @@ namespace NzbDrone.Core.Test.MusicTests.ArtistServiceTests [SetUp] public void Setup() { - _artists = new List(); - _artists.Add(CreateArtist("The Black Eyed Peas")); - _artists.Add(CreateArtist("The Black Keys")); + _authors = new List(); + _authors.Add(CreateAuthor("The Black Eyed Peas")); + _authors.Add(CreateAuthor("The Black Keys")); Mocker.GetMock() .Setup(s => s.All()) - .Returns(_artists); + .Returns(_authors); } [TestCase("The Black Eyde Peas", "The Black Eyed Peas")] [TestCase("Black Eyed Peas", "The Black Eyed Peas")] [TestCase("The Black eys", "The Black Keys")] [TestCase("Black Keys", "The Black Keys")] - public void should_find_artist_in_db_by_name_inexact(string name, string expected) + public void should_find_author_in_db_by_name_inexact(string name, string expected) { - var artist = Subject.FindByNameInexact(name); + var author = Subject.FindByNameInexact(name); - artist.Should().NotBeNull(); - artist.Name.Should().Be(expected); + author.Should().NotBeNull(); + author.Name.Should().Be(expected); } [Test] - public void should_find_artist_when_the_is_omitted_from_start() + public void should_find_author_when_the_is_omitted_from_start() { - _artists = new List(); - _artists.Add(CreateArtist("Black Keys")); - _artists.Add(CreateArtist("The Black Eyed Peas")); + _authors = new List(); + _authors.Add(CreateAuthor("Black Keys")); + _authors.Add(CreateAuthor("The Black Eyed Peas")); Mocker.GetMock() .Setup(s => s.All()) - .Returns(_artists); + .Returns(_authors); Subject.FindByNameInexact("The Black Keys").Should().NotBeNull(); } [TestCase("The Black Peas")] - public void should_not_find_artist_in_db_by_ambiguous_name(string name) + public void should_not_find_author_in_db_by_ambiguous_name(string name) { - var artist = Subject.FindByNameInexact(name); + var author = Subject.FindByNameInexact(name); - artist.Should().BeNull(); + author.Should().BeNull(); } } } diff --git a/src/NzbDrone.Core.Test/MusicTests/ArtistServiceTests/UpdateMultipleArtistFixture.cs b/src/NzbDrone.Core.Test/MusicTests/ArtistServiceTests/UpdateMultipleArtistFixture.cs index 985f520cc..d267e451e 100644 --- a/src/NzbDrone.Core.Test/MusicTests/ArtistServiceTests/UpdateMultipleArtistFixture.cs +++ b/src/NzbDrone.Core.Test/MusicTests/ArtistServiceTests/UpdateMultipleArtistFixture.cs @@ -10,17 +10,17 @@ using NzbDrone.Core.Organizer; using NzbDrone.Core.Test.Framework; using NzbDrone.Test.Common; -namespace NzbDrone.Core.Test.MusicTests.ArtistServiceTests +namespace NzbDrone.Core.Test.MusicTests.AuthorServiceTests { [TestFixture] - public class UpdateMultipleArtistFixture : CoreTest + public class UpdateMultipleAuthorFixture : CoreTest { - private List _artists; + private List _authors; [SetUp] public void Setup() { - _artists = Builder.CreateListOfSize(5) + _authors = Builder.CreateListOfSize(5) .All() .With(s => s.QualityProfileId = 1) .With(s => s.Monitored) @@ -32,9 +32,9 @@ namespace NzbDrone.Core.Test.MusicTests.ArtistServiceTests [Test] public void should_call_repo_updateMany() { - Subject.UpdateAuthors(_artists, false); + Subject.UpdateAuthors(_authors, false); - Mocker.GetMock().Verify(v => v.UpdateMany(_artists), Times.Once()); + Mocker.GetMock().Verify(v => v.UpdateMany(_authors), Times.Once()); } [Test] @@ -45,29 +45,29 @@ namespace NzbDrone.Core.Test.MusicTests.ArtistServiceTests .Returns((c, n) => c.Name); var newRoot = @"C:\Test\Music2".AsOsAgnostic(); - _artists.ForEach(s => s.RootFolderPath = newRoot); + _authors.ForEach(s => s.RootFolderPath = newRoot); Mocker.GetMock() .Setup(s => s.BuildPath(It.IsAny(), false)) .Returns((s, u) => Path.Combine(s.RootFolderPath, s.Name)); - Subject.UpdateAuthors(_artists, false).ForEach(s => s.Path.Should().StartWith(newRoot)); + Subject.UpdateAuthors(_authors, false).ForEach(s => s.Path.Should().StartWith(newRoot)); } [Test] public void should_not_update_path_when_rootFolderPath_is_empty() { - Subject.UpdateAuthors(_artists, false).ForEach(s => + Subject.UpdateAuthors(_authors, false).ForEach(s => { - var expectedPath = _artists.Single(ser => ser.Id == s.Id).Path; + var expectedPath = _authors.Single(ser => ser.Id == s.Id).Path; s.Path.Should().Be(expectedPath); }); } [Test] - public void should_be_able_to_update_many_artist() + public void should_be_able_to_update_many_author() { - var artist = Builder.CreateListOfSize(50) + var author = Builder.CreateListOfSize(50) .All() .With(s => s.Path = (@"C:\Test\Music\" + s.Path).AsOsAgnostic()) .Build() @@ -78,9 +78,9 @@ namespace NzbDrone.Core.Test.MusicTests.ArtistServiceTests .Returns((c, n) => c.Name); var newRoot = @"C:\Test\Music2".AsOsAgnostic(); - artist.ForEach(s => s.RootFolderPath = newRoot); + author.ForEach(s => s.RootFolderPath = newRoot); - Subject.UpdateAuthors(artist, false); + Subject.UpdateAuthors(author, false); } } } diff --git a/src/NzbDrone.Core.Test/MusicTests/EntityFixture.cs b/src/NzbDrone.Core.Test/MusicTests/EntityFixture.cs index 30908d5a1..9ec372d60 100644 --- a/src/NzbDrone.Core.Test/MusicTests/EntityFixture.cs +++ b/src/NzbDrone.Core.Test/MusicTests/EntityFixture.cs @@ -51,7 +51,7 @@ namespace NzbDrone.Core.Test.MusicTests } [Test] - public void two_equivalent_artist_metadata_should_be_equal() + public void two_equivalent_author_metadata_should_be_equal() { var item1 = _fixture.Create(); var item2 = item1.JsonClone(); @@ -62,7 +62,7 @@ namespace NzbDrone.Core.Test.MusicTests [Test] [TestCaseSource(typeof(EqualityPropertySource), "TestCases")] - public void two_different_artist_metadata_should_not_be_equal(PropertyInfo prop) + public void two_different_author_metadata_should_not_be_equal(PropertyInfo prop) { var item1 = _fixture.Create(); var item2 = item1.JsonClone(); @@ -77,7 +77,7 @@ namespace NzbDrone.Core.Test.MusicTests } [Test] - public void metadata_and_db_fields_should_replicate_artist_metadata() + public void metadata_and_db_fields_should_replicate_author_metadata() { var item1 = _fixture.Create(); var item2 = _fixture.Create(); @@ -89,7 +89,7 @@ namespace NzbDrone.Core.Test.MusicTests item1.Should().Be(item2); } - private Book GivenAlbum() + private Book GivenBook() { return _fixture.Build() .Without(x => x.AuthorMetadata) @@ -99,9 +99,9 @@ namespace NzbDrone.Core.Test.MusicTests } [Test] - public void two_equivalent_albums_should_be_equal() + public void two_equivalent_books_should_be_equal() { - var item1 = GivenAlbum(); + var item1 = GivenBook(); var item2 = item1.JsonClone(); item1.Should().NotBeSameAs(item2); @@ -110,11 +110,11 @@ namespace NzbDrone.Core.Test.MusicTests [Test] [TestCaseSource(typeof(EqualityPropertySource), "TestCases")] - public void two_different_albums_should_not_be_equal(PropertyInfo prop) + public void two_different_books_should_not_be_equal(PropertyInfo prop) { - var item1 = GivenAlbum(); + var item1 = GivenBook(); var item2 = item1.JsonClone(); - var different = GivenAlbum(); + var different = GivenBook(); // make item2 different in the property under consideration if (prop.PropertyType == typeof(bool)) @@ -131,10 +131,10 @@ namespace NzbDrone.Core.Test.MusicTests } [Test] - public void metadata_and_db_fields_should_replicate_album() + public void metadata_and_db_fields_should_replicate_book() { - var item1 = GivenAlbum(); - var item2 = GivenAlbum(); + var item1 = GivenBook(); + var item2 = GivenBook(); item1.Should().NotBe(item2); @@ -196,7 +196,7 @@ namespace NzbDrone.Core.Test.MusicTests item1.Should().Be(item2); } - private Author GivenArtist() + private Author GivenAuthor() { return _fixture.Build() .With(x => x.Metadata, new LazyLoaded(_fixture.Create())) @@ -209,9 +209,9 @@ namespace NzbDrone.Core.Test.MusicTests } [Test] - public void two_equivalent_artists_should_be_equal() + public void two_equivalent_authors_should_be_equal() { - var item1 = GivenArtist(); + var item1 = GivenAuthor(); var item2 = item1.JsonClone(); item1.Should().NotBeSameAs(item2); @@ -220,11 +220,11 @@ namespace NzbDrone.Core.Test.MusicTests [Test] [TestCaseSource(typeof(EqualityPropertySource), "TestCases")] - public void two_different_artists_should_not_be_equal(PropertyInfo prop) + public void two_different_authors_should_not_be_equal(PropertyInfo prop) { - var item1 = GivenArtist(); + var item1 = GivenAuthor(); var item2 = item1.JsonClone(); - var different = GivenArtist(); + var different = GivenAuthor(); // make item2 different in the property under consideration if (prop.PropertyType == typeof(bool)) @@ -241,10 +241,10 @@ namespace NzbDrone.Core.Test.MusicTests } [Test] - public void metadata_and_db_fields_should_replicate_artist() + public void metadata_and_db_fields_should_replicate_author() { - var item1 = GivenArtist(); - var item2 = GivenArtist(); + var item1 = GivenAuthor(); + var item2 = GivenAuthor(); item1.Should().NotBe(item2); diff --git a/src/NzbDrone.Core.Test/MusicTests/MoveArtistServiceFixture.cs b/src/NzbDrone.Core.Test/MusicTests/MoveArtistServiceFixture.cs index ce0149f62..a61767f7b 100644 --- a/src/NzbDrone.Core.Test/MusicTests/MoveArtistServiceFixture.cs +++ b/src/NzbDrone.Core.Test/MusicTests/MoveArtistServiceFixture.cs @@ -14,24 +14,24 @@ using NzbDrone.Test.Common; namespace NzbDrone.Core.Test.MusicTests { [TestFixture] - public class MoveArtistServiceFixture : CoreTest + public class MoveAuthorServiceFixture : CoreTest { - private Author _artist; + private Author _author; private MoveAuthorCommand _command; private BulkMoveAuthorCommand _bulkCommand; [SetUp] public void Setup() { - _artist = Builder + _author = Builder .CreateNew() .Build(); _command = new MoveAuthorCommand { AuthorId = 1, - SourcePath = @"C:\Test\Music\Artist".AsOsAgnostic(), - DestinationPath = @"C:\Test\Music2\Artist".AsOsAgnostic() + SourcePath = @"C:\Test\Music\Author".AsOsAgnostic(), + DestinationPath = @"C:\Test\Music2\Author".AsOsAgnostic() }; _bulkCommand = new BulkMoveAuthorCommand @@ -41,7 +41,7 @@ namespace NzbDrone.Core.Test.MusicTests new BulkMoveAuthor { AuthorId = 1, - SourcePath = @"C:\Test\Music\Artist".AsOsAgnostic() + SourcePath = @"C:\Test\Music\Author".AsOsAgnostic() } }, DestinationRootFolder = @"C:\Test\Music2".AsOsAgnostic() @@ -49,7 +49,7 @@ namespace NzbDrone.Core.Test.MusicTests Mocker.GetMock() .Setup(s => s.GetAuthor(It.IsAny())) - .Returns(_artist); + .Returns(_author); Mocker.GetMock() .Setup(s => s.FolderExists(It.IsAny())) @@ -74,7 +74,7 @@ namespace NzbDrone.Core.Test.MusicTests } [Test] - public void should_revert_artist_path_on_error() + public void should_revert_author_path_on_error() { GivenFailedMove(); @@ -105,12 +105,12 @@ namespace NzbDrone.Core.Test.MusicTests [Test] public void should_build_new_path_when_root_folder_is_provided() { - var artistFolder = "Artist"; - var expectedPath = Path.Combine(_bulkCommand.DestinationRootFolder, artistFolder); + var authorFolder = "Author"; + var expectedPath = Path.Combine(_bulkCommand.DestinationRootFolder, authorFolder); Mocker.GetMock() .Setup(s => s.GetAuthorFolder(It.IsAny(), null)) - .Returns(artistFolder); + .Returns(authorFolder); Subject.Execute(_bulkCommand); @@ -123,7 +123,7 @@ namespace NzbDrone.Core.Test.MusicTests } [Test] - public void should_skip_artist_folder_if_it_does_not_exist() + public void should_skip_author_folder_if_it_does_not_exist() { Mocker.GetMock() .Setup(s => s.FolderExists(It.IsAny())) diff --git a/src/NzbDrone.Core.Test/MusicTests/RefreshArtistServiceFixture.cs b/src/NzbDrone.Core.Test/MusicTests/RefreshArtistServiceFixture.cs index 2f5a709ba..eedf849cb 100644 --- a/src/NzbDrone.Core.Test/MusicTests/RefreshArtistServiceFixture.cs +++ b/src/NzbDrone.Core.Test/MusicTests/RefreshArtistServiceFixture.cs @@ -19,54 +19,54 @@ using NzbDrone.Test.Common; namespace NzbDrone.Core.Test.MusicTests { [TestFixture] - public class RefreshArtistServiceFixture : CoreTest + public class RefreshAuthorServiceFixture : CoreTest { - private Author _artist; - private Book _album1; - private Book _album2; - private List _albums; + private Author _author; + private Book _book1; + private Book _book2; + private List _books; private List _remoteBooks; [SetUp] public void Setup() { - _album1 = Builder.CreateNew() + _book1 = Builder.CreateNew() .With(s => s.ForeignBookId = "1") .Build(); - _album2 = Builder.CreateNew() + _book2 = Builder.CreateNew() .With(s => s.ForeignBookId = "2") .Build(); - _albums = new List { _album1, _album2 }; + _books = new List { _book1, _book2 }; - _remoteBooks = _albums.JsonClone(); + _remoteBooks = _books.JsonClone(); _remoteBooks.ForEach(x => x.Id = 0); var metadata = Builder.CreateNew().Build(); var series = Builder.CreateListOfSize(1).BuildList(); var profile = Builder.CreateNew().Build(); - _artist = Builder.CreateNew() + _author = Builder.CreateNew() .With(a => a.Metadata = metadata) .With(a => a.Series = series) .With(a => a.MetadataProfile = profile) .Build(); Mocker.GetMock(MockBehavior.Strict) - .Setup(s => s.GetAuthors(new List { _artist.Id })) - .Returns(new List { _artist }); + .Setup(s => s.GetAuthors(new List { _author.Id })) + .Returns(new List { _author }); Mocker.GetMock(MockBehavior.Strict) .Setup(s => s.InsertMany(It.IsAny>())); Mocker.GetMock() .Setup(s => s.FilterBooks(It.IsAny(), It.IsAny())) - .Returns(_albums); + .Returns(_books); Mocker.GetMock() .Setup(s => s.GetAuthorAndBooks(It.IsAny(), It.IsAny())) - .Callback(() => { throw new AuthorNotFoundException(_artist.ForeignAuthorId); }); + .Callback(() => { throw new AuthorNotFoundException(_author.ForeignAuthorId); }); Mocker.GetMock() .Setup(x => x.GetFilesByAuthor(It.IsAny())) @@ -85,28 +85,28 @@ namespace NzbDrone.Core.Test.MusicTests .Returns(new List()); } - private void GivenNewArtistInfo(Author artist) + private void GivenNewAuthorInfo(Author author) { Mocker.GetMock() - .Setup(s => s.GetAuthorAndBooks(_artist.ForeignAuthorId, It.IsAny())) - .Returns(artist); + .Setup(s => s.GetAuthorAndBooks(_author.ForeignAuthorId, It.IsAny())) + .Returns(author); } - private void GivenArtistFiles() + private void GivenAuthorFiles() { Mocker.GetMock() .Setup(x => x.GetFilesByAuthor(It.IsAny())) .Returns(Builder.CreateListOfSize(1).BuildList()); } - private void GivenAlbumsForRefresh(List albums) + private void GivenBooksForRefresh(List books) { Mocker.GetMock(MockBehavior.Strict) .Setup(s => s.GetBooksForRefresh(It.IsAny(), It.IsAny>())) - .Returns(albums); + .Returns(books); } - private void AllowArtistUpdate() + private void AllowAuthorUpdate() { Mocker.GetMock(MockBehavior.Strict) .Setup(x => x.UpdateAuthor(It.IsAny())) @@ -114,50 +114,50 @@ namespace NzbDrone.Core.Test.MusicTests } [Test] - public void should_not_publish_artist_updated_event_if_metadata_not_updated() + public void should_not_publish_author_updated_event_if_metadata_not_updated() { - var newArtistInfo = _artist.JsonClone(); - newArtistInfo.Metadata = _artist.Metadata.Value.JsonClone(); - newArtistInfo.Books = _remoteBooks; + var newAuthorInfo = _author.JsonClone(); + newAuthorInfo.Metadata = _author.Metadata.Value.JsonClone(); + newAuthorInfo.Books = _remoteBooks; - GivenNewArtistInfo(newArtistInfo); - GivenAlbumsForRefresh(_albums); - AllowArtistUpdate(); + GivenNewAuthorInfo(newAuthorInfo); + GivenBooksForRefresh(_books); + AllowAuthorUpdate(); - Subject.Execute(new RefreshAuthorCommand(_artist.Id)); + Subject.Execute(new RefreshAuthorCommand(_author.Id)); VerifyEventNotPublished(); VerifyEventPublished(); } [Test] - public void should_publish_artist_updated_event_if_metadata_updated() + public void should_publish_author_updated_event_if_metadata_updated() { - var newArtistInfo = _artist.JsonClone(); - newArtistInfo.Metadata = _artist.Metadata.Value.JsonClone(); - newArtistInfo.Metadata.Value.Images = new List + var newAuthorInfo = _author.JsonClone(); + newAuthorInfo.Metadata = _author.Metadata.Value.JsonClone(); + newAuthorInfo.Metadata.Value.Images = new List { new MediaCover.MediaCover(MediaCover.MediaCoverTypes.Logo, "dummy") }; - newArtistInfo.Books = _remoteBooks; + newAuthorInfo.Books = _remoteBooks; - GivenNewArtistInfo(newArtistInfo); - GivenAlbumsForRefresh(new List()); - AllowArtistUpdate(); + GivenNewAuthorInfo(newAuthorInfo); + GivenBooksForRefresh(new List()); + AllowAuthorUpdate(); - Subject.Execute(new RefreshAuthorCommand(_artist.Id)); + Subject.Execute(new RefreshAuthorCommand(_author.Id)); VerifyEventPublished(); VerifyEventPublished(); } [Test] - public void should_log_error_and_delete_if_musicbrainz_id_not_found_and_artist_has_no_files() + public void should_log_error_and_delete_if_musicbrainz_id_not_found_and_author_has_no_files() { Mocker.GetMock() .Setup(x => x.DeleteAuthor(It.IsAny(), It.IsAny(), It.IsAny())); - Subject.Execute(new RefreshAuthorCommand(_artist.Id)); + Subject.Execute(new RefreshAuthorCommand(_author.Id)); Mocker.GetMock() .Verify(v => v.UpdateAuthor(It.IsAny()), Times.Never()); @@ -170,12 +170,12 @@ namespace NzbDrone.Core.Test.MusicTests } [Test] - public void should_log_error_but_not_delete_if_musicbrainz_id_not_found_and_artist_has_files() + public void should_log_error_but_not_delete_if_musicbrainz_id_not_found_and_author_has_files() { - GivenArtistFiles(); - GivenAlbumsForRefresh(new List()); + GivenAuthorFiles(); + GivenBooksForRefresh(new List()); - Subject.Execute(new RefreshAuthorCommand(_artist.Id)); + Subject.Execute(new RefreshAuthorCommand(_author.Id)); Mocker.GetMock() .Verify(v => v.UpdateAuthor(It.IsAny()), Times.Never()); @@ -189,21 +189,21 @@ namespace NzbDrone.Core.Test.MusicTests [Test] public void should_update_if_musicbrainz_id_changed_and_no_clash() { - var newArtistInfo = _artist.JsonClone(); - newArtistInfo.Metadata = _artist.Metadata.Value.JsonClone(); - newArtistInfo.Books = _remoteBooks; - newArtistInfo.ForeignAuthorId = _artist.ForeignAuthorId + 1; - newArtistInfo.Metadata.Value.Id = 100; + var newAuthorInfo = _author.JsonClone(); + newAuthorInfo.Metadata = _author.Metadata.Value.JsonClone(); + newAuthorInfo.Books = _remoteBooks; + newAuthorInfo.ForeignAuthorId = _author.ForeignAuthorId + 1; + newAuthorInfo.Metadata.Value.Id = 100; - GivenNewArtistInfo(newArtistInfo); + GivenNewAuthorInfo(newAuthorInfo); var seq = new MockSequence(); Mocker.GetMock(MockBehavior.Strict) - .Setup(x => x.FindById(newArtistInfo.ForeignAuthorId)) + .Setup(x => x.FindById(newAuthorInfo.ForeignAuthorId)) .Returns(default(Author)); - // Make sure that the artist is updated before we refresh the albums + // Make sure that the author is updated before we refresh the books Mocker.GetMock(MockBehavior.Strict) .InSequence(seq) .Setup(x => x.UpdateAuthor(It.IsAny())) @@ -220,19 +220,19 @@ namespace NzbDrone.Core.Test.MusicTests .Setup(x => x.UpdateAuthor(It.IsAny())) .Returns((Author a) => a); - Subject.Execute(new RefreshAuthorCommand(_artist.Id)); + Subject.Execute(new RefreshAuthorCommand(_author.Id)); Mocker.GetMock() - .Verify(v => v.UpdateAuthor(It.Is(s => s.AuthorMetadataId == 100 && s.ForeignAuthorId == newArtistInfo.ForeignAuthorId)), + .Verify(v => v.UpdateAuthor(It.Is(s => s.AuthorMetadataId == 100 && s.ForeignAuthorId == newAuthorInfo.ForeignAuthorId)), Times.Exactly(2)); } [Test] public void should_merge_if_musicbrainz_id_changed_and_new_id_already_exists() { - var existing = _artist; + var existing = _author; - var clash = _artist.JsonClone(); + var clash = _author.JsonClone(); clash.Id = 100; clash.Metadata = existing.Metadata.Value.JsonClone(); clash.Metadata.Value.Id = 101; @@ -242,19 +242,19 @@ namespace NzbDrone.Core.Test.MusicTests .Setup(x => x.FindById(clash.Metadata.Value.ForeignAuthorId)) .Returns(clash); - var newArtistInfo = clash.JsonClone(); - newArtistInfo.Metadata = clash.Metadata.Value.JsonClone(); - newArtistInfo.Books = _remoteBooks; + var newAuthorInfo = clash.JsonClone(); + newAuthorInfo.Metadata = clash.Metadata.Value.JsonClone(); + newAuthorInfo.Books = _remoteBooks; - GivenNewArtistInfo(newArtistInfo); + GivenNewAuthorInfo(newAuthorInfo); var seq = new MockSequence(); - // Make sure that the artist is updated before we refresh the albums + // Make sure that the author is updated before we refresh the books Mocker.GetMock(MockBehavior.Strict) .InSequence(seq) .Setup(x => x.GetBooksByAuthor(existing.Id)) - .Returns(_albums); + .Returns(_books); Mocker.GetMock(MockBehavior.Strict) .InSequence(seq) @@ -272,7 +272,7 @@ namespace NzbDrone.Core.Test.MusicTests Mocker.GetMock(MockBehavior.Strict) .InSequence(seq) .Setup(x => x.GetBooksForRefresh(clash.AuthorMetadataId, It.IsAny>())) - .Returns(_albums); + .Returns(_books); // Update called twice for a move/merge Mocker.GetMock(MockBehavior.Strict) @@ -280,9 +280,9 @@ namespace NzbDrone.Core.Test.MusicTests .Setup(x => x.UpdateAuthor(It.IsAny())) .Returns((Author a) => a); - Subject.Execute(new RefreshAuthorCommand(_artist.Id)); + Subject.Execute(new RefreshAuthorCommand(_author.Id)); - // the retained artist gets updated + // the retained author gets updated Mocker.GetMock() .Verify(v => v.UpdateAuthor(It.Is(s => s.Id == clash.Id)), Times.Exactly(2)); @@ -291,7 +291,7 @@ namespace NzbDrone.Core.Test.MusicTests .Verify(v => v.DeleteAuthor(existing.Id, false, false)); Mocker.GetMock() - .Verify(v => v.UpdateMany(It.Is>(x => x.Count == _albums.Count))); + .Verify(v => v.UpdateMany(It.Is>(x => x.Count == _books.Count))); ExceptionVerification.ExpectedWarns(1); } diff --git a/src/NzbDrone.Core.Test/MusicTests/ShouldRefreshAlbumFixture.cs b/src/NzbDrone.Core.Test/MusicTests/ShouldRefreshAlbumFixture.cs index 0e11fb218..d17f7d4bc 100644 --- a/src/NzbDrone.Core.Test/MusicTests/ShouldRefreshAlbumFixture.cs +++ b/src/NzbDrone.Core.Test/MusicTests/ShouldRefreshAlbumFixture.cs @@ -8,95 +8,95 @@ using NzbDrone.Test.Common; namespace NzbDrone.Core.Test.MusicTests { [TestFixture] - public class ShouldRefreshAlbumFixture : TestBase + public class ShouldRefreshBookFixture : TestBase { - private Book _album; + private Book _book; [SetUp] public void Setup() { - _album = Builder.CreateNew() + _book = Builder.CreateNew() .With(e => e.ReleaseDate = DateTime.Today.AddDays(-100)) .Build(); } - private void GivenAlbumLastRefreshedMonthsAgo() + private void GivenBookLastRefreshedMonthsAgo() { - _album.LastInfoSync = DateTime.UtcNow.AddDays(-90); + _book.LastInfoSync = DateTime.UtcNow.AddDays(-90); } - private void GivenAlbumLastRefreshedYesterday() + private void GivenBookLastRefreshedYesterday() { - _album.LastInfoSync = DateTime.UtcNow.AddDays(-1); + _book.LastInfoSync = DateTime.UtcNow.AddDays(-1); } - private void GivenAlbumLastRefreshedRecently() + private void GivenBookLastRefreshedRecently() { - _album.LastInfoSync = DateTime.UtcNow.AddHours(-7); + _book.LastInfoSync = DateTime.UtcNow.AddHours(-7); } private void GivenRecentlyReleased() { - _album.ReleaseDate = DateTime.Today.AddDays(-7); + _book.ReleaseDate = DateTime.Today.AddDays(-7); } private void GivenFutureRelease() { - _album.ReleaseDate = DateTime.Today.AddDays(7); + _book.ReleaseDate = DateTime.Today.AddDays(7); } [Test] - public void should_return_false_if_album_last_refreshed_less_than_12_hours_ago() + public void should_return_false_if_book_last_refreshed_less_than_12_hours_ago() { - GivenAlbumLastRefreshedRecently(); + GivenBookLastRefreshedRecently(); - Subject.ShouldRefresh(_album).Should().BeFalse(); + Subject.ShouldRefresh(_book).Should().BeFalse(); } [Test] - public void should_return_true_if_album_last_refreshed_more_than_30_days_ago() + public void should_return_true_if_book_last_refreshed_more_than_30_days_ago() { - GivenAlbumLastRefreshedMonthsAgo(); + GivenBookLastRefreshedMonthsAgo(); - Subject.ShouldRefresh(_album).Should().BeTrue(); + Subject.ShouldRefresh(_book).Should().BeTrue(); } [Test] - public void should_return_true_if_album_released_in_last_30_days() + public void should_return_true_if_book_released_in_last_30_days() { - GivenAlbumLastRefreshedYesterday(); + GivenBookLastRefreshedYesterday(); GivenRecentlyReleased(); - Subject.ShouldRefresh(_album).Should().BeTrue(); + Subject.ShouldRefresh(_book).Should().BeTrue(); } [Test] - public void should_return_true_if_album_releases_in_future() + public void should_return_true_if_book_releases_in_future() { - GivenAlbumLastRefreshedYesterday(); + GivenBookLastRefreshedYesterday(); GivenFutureRelease(); - Subject.ShouldRefresh(_album).Should().BeTrue(); + Subject.ShouldRefresh(_book).Should().BeTrue(); } [Test] - public void should_return_false_when_recently_refreshed_album_released_over_30_days_ago() + public void should_return_false_when_recently_refreshed_book_released_over_30_days_ago() { - GivenAlbumLastRefreshedYesterday(); + GivenBookLastRefreshedYesterday(); - Subject.ShouldRefresh(_album).Should().BeFalse(); + Subject.ShouldRefresh(_book).Should().BeFalse(); } [Test] - public void should_return_false_when_recently_refreshed_album_released_in_last_30_days() + public void should_return_false_when_recently_refreshed_book_released_in_last_30_days() { - GivenAlbumLastRefreshedRecently(); + GivenBookLastRefreshedRecently(); GivenRecentlyReleased(); - Subject.ShouldRefresh(_album).Should().BeFalse(); + Subject.ShouldRefresh(_book).Should().BeFalse(); } } } diff --git a/src/NzbDrone.Core.Test/MusicTests/ShouldRefreshArtistFixture.cs b/src/NzbDrone.Core.Test/MusicTests/ShouldRefreshArtistFixture.cs index 7f9352206..d29010f85 100644 --- a/src/NzbDrone.Core.Test/MusicTests/ShouldRefreshArtistFixture.cs +++ b/src/NzbDrone.Core.Test/MusicTests/ShouldRefreshArtistFixture.cs @@ -9,19 +9,19 @@ using NzbDrone.Test.Common; namespace NzbDrone.Core.Test.MusicTests { [TestFixture] - public class ShouldRefreshArtistFixture : TestBase + public class ShouldRefreshAuthorFixture : TestBase { - private Author _artist; + private Author _author; [SetUp] public void Setup() { - _artist = Builder.CreateNew() + _author = Builder.CreateNew() .With(v => v.Metadata.Value.Status == AuthorStatusType.Continuing) .Build(); Mocker.GetMock() - .Setup(s => s.GetBooksByAuthor(_artist.Id)) + .Setup(s => s.GetBooksByAuthor(_author.Id)) .Returns(Builder.CreateListOfSize(2) .All() .With(e => e.ReleaseDate = DateTime.Today.AddDays(-100)) @@ -29,35 +29,35 @@ namespace NzbDrone.Core.Test.MusicTests .ToList()); } - private void GivenArtistIsEnded() + private void GivenAuthorIsEnded() { - _artist.Metadata.Value.Status = AuthorStatusType.Ended; + _author.Metadata.Value.Status = AuthorStatusType.Ended; } - private void GivenArtistLastRefreshedMonthsAgo() + private void GivenAuthorLastRefreshedMonthsAgo() { - _artist.LastInfoSync = DateTime.UtcNow.AddDays(-90); + _author.LastInfoSync = DateTime.UtcNow.AddDays(-90); } - private void GivenArtistLastRefreshedYesterday() + private void GivenAuthorLastRefreshedYesterday() { - _artist.LastInfoSync = DateTime.UtcNow.AddDays(-1); + _author.LastInfoSync = DateTime.UtcNow.AddDays(-1); } - private void GivenArtistLastRefreshedThreeDaysAgo() + private void GivenAuthorLastRefreshedThreeDaysAgo() { - _artist.LastInfoSync = DateTime.UtcNow.AddDays(-3); + _author.LastInfoSync = DateTime.UtcNow.AddDays(-3); } - private void GivenArtistLastRefreshedRecently() + private void GivenAuthorLastRefreshedRecently() { - _artist.LastInfoSync = DateTime.UtcNow.AddHours(-7); + _author.LastInfoSync = DateTime.UtcNow.AddHours(-7); } private void GivenRecentlyAired() { Mocker.GetMock() - .Setup(s => s.GetBooksByAuthor(_artist.Id)) + .Setup(s => s.GetBooksByAuthor(_author.Id)) .Returns(Builder.CreateListOfSize(2) .TheFirst(1) .With(e => e.ReleaseDate = DateTime.Today.AddDays(-7)) @@ -68,68 +68,68 @@ namespace NzbDrone.Core.Test.MusicTests } [Test] - public void should_return_true_if_running_artist_last_refreshed_more_than_24_hours_ago() + public void should_return_true_if_running_author_last_refreshed_more_than_24_hours_ago() { - GivenArtistLastRefreshedThreeDaysAgo(); + GivenAuthorLastRefreshedThreeDaysAgo(); - Subject.ShouldRefresh(_artist).Should().BeTrue(); + Subject.ShouldRefresh(_author).Should().BeTrue(); } [Test] - public void should_return_false_if_running_artist_last_refreshed_less_than_12_hours_ago() + public void should_return_false_if_running_author_last_refreshed_less_than_12_hours_ago() { - GivenArtistLastRefreshedRecently(); + GivenAuthorLastRefreshedRecently(); - Subject.ShouldRefresh(_artist).Should().BeFalse(); + Subject.ShouldRefresh(_author).Should().BeFalse(); } [Test] - public void should_return_false_if_ended_artist_last_refreshed_yesterday() + public void should_return_false_if_ended_author_last_refreshed_yesterday() { - GivenArtistIsEnded(); - GivenArtistLastRefreshedYesterday(); + GivenAuthorIsEnded(); + GivenAuthorLastRefreshedYesterday(); - Subject.ShouldRefresh(_artist).Should().BeFalse(); + Subject.ShouldRefresh(_author).Should().BeFalse(); } [Test] - public void should_return_true_if_artist_last_refreshed_more_than_30_days_ago() + public void should_return_true_if_author_last_refreshed_more_than_30_days_ago() { - GivenArtistIsEnded(); - GivenArtistLastRefreshedMonthsAgo(); + GivenAuthorIsEnded(); + GivenAuthorLastRefreshedMonthsAgo(); - Subject.ShouldRefresh(_artist).Should().BeTrue(); + Subject.ShouldRefresh(_author).Should().BeTrue(); } [Test] - public void should_return_true_if_album_released_in_last_30_days() + public void should_return_true_if_book_released_in_last_30_days() { - GivenArtistIsEnded(); - GivenArtistLastRefreshedYesterday(); + GivenAuthorIsEnded(); + GivenAuthorLastRefreshedYesterday(); GivenRecentlyAired(); - Subject.ShouldRefresh(_artist).Should().BeTrue(); + Subject.ShouldRefresh(_author).Should().BeTrue(); } [Test] public void should_return_false_when_recently_refreshed_ended_show_has_not_aired_for_30_days() { - GivenArtistIsEnded(); - GivenArtistLastRefreshedYesterday(); + GivenAuthorIsEnded(); + GivenAuthorLastRefreshedYesterday(); - Subject.ShouldRefresh(_artist).Should().BeFalse(); + Subject.ShouldRefresh(_author).Should().BeFalse(); } [Test] public void should_return_false_when_recently_refreshed_ended_show_aired_in_last_30_days() { - GivenArtistIsEnded(); - GivenArtistLastRefreshedRecently(); + GivenAuthorIsEnded(); + GivenAuthorLastRefreshedRecently(); GivenRecentlyAired(); - Subject.ShouldRefresh(_artist).Should().BeFalse(); + Subject.ShouldRefresh(_author).Should().BeFalse(); } } } diff --git a/src/NzbDrone.Core.Test/NotificationTests/NotificationBaseFixture.cs b/src/NzbDrone.Core.Test/NotificationTests/NotificationBaseFixture.cs index 71cc855b5..3926e3044 100644 --- a/src/NzbDrone.Core.Test/NotificationTests/NotificationBaseFixture.cs +++ b/src/NzbDrone.Core.Test/NotificationTests/NotificationBaseFixture.cs @@ -57,12 +57,12 @@ namespace NzbDrone.Core.Test.NotificationTests TestLogger.Info("OnDownload was called"); } - public override void OnRename(Author artist) + public override void OnRename(Author author) { TestLogger.Info("OnRename was called"); } - public override void OnHealthIssue(NzbDrone.Core.HealthCheck.HealthCheck artist) + public override void OnHealthIssue(NzbDrone.Core.HealthCheck.HealthCheck author) { TestLogger.Info("OnHealthIssue was called"); } diff --git a/src/NzbDrone.Core.Test/NotificationTests/SynologyIndexerFixture.cs b/src/NzbDrone.Core.Test/NotificationTests/SynologyIndexerFixture.cs index 86fc1c506..ce5569a75 100644 --- a/src/NzbDrone.Core.Test/NotificationTests/SynologyIndexerFixture.cs +++ b/src/NzbDrone.Core.Test/NotificationTests/SynologyIndexerFixture.cs @@ -14,21 +14,21 @@ namespace NzbDrone.Core.Test.NotificationTests [TestFixture] public class SynologyIndexerFixture : CoreTest { - private Author _artist; + private Author _author; private BookDownloadMessage _upgrade; private string _rootPath = @"C:\Test\".AsOsAgnostic(); [SetUp] public void SetUp() { - _artist = new Author() + _author = new Author() { Path = _rootPath, }; _upgrade = new BookDownloadMessage() { - Author = _artist, + Author = _author, BookFiles = new List { @@ -65,10 +65,10 @@ namespace NzbDrone.Core.Test.NotificationTests { (Subject.Definition.Settings as SynologyIndexerSettings).UpdateLibrary = false; - Subject.OnRename(_artist); + Subject.OnRename(_author); Mocker.GetMock() - .Verify(v => v.UpdateFolder(_artist.Path), Times.Never()); + .Verify(v => v.UpdateFolder(_author.Path), Times.Never()); } [Test] @@ -95,7 +95,7 @@ namespace NzbDrone.Core.Test.NotificationTests [Test] public void should_update_entire_series_folder_on_rename() { - Subject.OnRename(_artist); + Subject.OnRename(_author); Mocker.GetMock() .Verify(v => v.UpdateFolder(@"C:\Test\".AsOsAgnostic()), Times.Once()); diff --git a/src/NzbDrone.Core.Test/OrganizerTests/BuildFilePathFixture.cs b/src/NzbDrone.Core.Test/OrganizerTests/BuildFilePathFixture.cs index 060d347ee..c3ed57e6f 100644 --- a/src/NzbDrone.Core.Test/OrganizerTests/BuildFilePathFixture.cs +++ b/src/NzbDrone.Core.Test/OrganizerTests/BuildFilePathFixture.cs @@ -9,7 +9,7 @@ using NzbDrone.Test.Common; namespace NzbDrone.Core.Test.OrganizerTests { [TestFixture] - [Ignore("Don't use album folder in readarr")] + [Ignore("Don't use book folder in readarr")] public class BuildFilePathFixture : CoreTest { private NamingConfig _namingConfig; @@ -24,27 +24,27 @@ namespace NzbDrone.Core.Test.OrganizerTests } [Test] - public void should_clean_album_folder_when_it_contains_illegal_characters_in_album_or_artist_title() + public void should_clean_book_folder_when_it_contains_illegal_characters_in_book_or_author_title() { var filename = @"bookfile"; var expectedPath = @"C:\Test\Fake- The Author\Fake- The Book\bookfile.mobi"; - var fakeArtist = Builder.CreateNew() + var fakeAuthor = Builder.CreateNew() .With(s => s.Name = "Fake: The Author") .With(s => s.Path = @"C:\Test\Fake- The Author".AsOsAgnostic()) .Build(); - var fakeAlbum = Builder.CreateNew() + var fakeBook = Builder.CreateNew() .With(s => s.Title = "Fake: Book") .Build(); var fakeEdition = Builder .CreateNew() - .With(s => s.Title = fakeAlbum.Title) - .With(s => s.Book = fakeAlbum) + .With(s => s.Title = fakeBook.Title) + .With(s => s.Book = fakeBook) .Build(); - Subject.BuildBookFilePath(fakeArtist, fakeEdition, filename, ".mobi").Should().Be(expectedPath.AsOsAgnostic()); + Subject.BuildBookFilePath(fakeAuthor, fakeEdition, filename, ".mobi").Should().Be(expectedPath.AsOsAgnostic()); } } } diff --git a/src/NzbDrone.Core.Test/OrganizerTests/FileNameBuilderTests/CleanTitleFixture.cs b/src/NzbDrone.Core.Test/OrganizerTests/FileNameBuilderTests/CleanTitleFixture.cs index 256eb66e6..6226609f4 100644 --- a/src/NzbDrone.Core.Test/OrganizerTests/FileNameBuilderTests/CleanTitleFixture.cs +++ b/src/NzbDrone.Core.Test/OrganizerTests/FileNameBuilderTests/CleanTitleFixture.cs @@ -14,8 +14,8 @@ namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests [TestFixture] public class CleanTitleFixture : CoreTest { - private Author _artist; - private Book _album; + private Author _author; + private Book _book; private Edition _edition; private BookFile _trackFile; private NamingConfig _namingConfig; @@ -23,20 +23,20 @@ namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests [SetUp] public void Setup() { - _artist = Builder + _author = Builder .CreateNew() .With(s => s.Name = "Avenged Sevenfold") .Build(); - _album = Builder + _book = Builder .CreateNew() .With(s => s.Title = "Hail to the King") .Build(); _edition = Builder .CreateNew() - .With(s => s.Title = _album.Title) - .With(s => s.Book = _album) + .With(s => s.Title = _book.Title) + .With(s => s.Book = _book) .Build(); _trackFile = new BookFile { Quality = new QualityModel(Quality.MP3_320), ReleaseGroup = "ReadarrTest" }; @@ -72,10 +72,10 @@ namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests [TestCase("I'm the Boss", "Im the Boss")] public void should_get_expected_title_back(string name, string expected) { - _artist.Name = name; + _author.Name = name; _namingConfig.StandardBookFormat = "{Author CleanName}"; - Subject.BuildBookFileName(_artist, _edition, _trackFile) + Subject.BuildBookFileName(_author, _edition, _trackFile) .Should().Be(expected); } } diff --git a/src/NzbDrone.Core.Test/OrganizerTests/FileNameBuilderTests/FileNameBuilderFixture.cs b/src/NzbDrone.Core.Test/OrganizerTests/FileNameBuilderTests/FileNameBuilderFixture.cs index 69a24a3a0..181ad5cb1 100644 --- a/src/NzbDrone.Core.Test/OrganizerTests/FileNameBuilderTests/FileNameBuilderFixture.cs +++ b/src/NzbDrone.Core.Test/OrganizerTests/FileNameBuilderTests/FileNameBuilderFixture.cs @@ -16,8 +16,8 @@ namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests public class FileNameBuilderFixture : CoreTest { - private Author _artist; - private Book _album; + private Author _author; + private Book _book; private Edition _edition; private BookFile _trackFile; private NamingConfig _namingConfig; @@ -25,7 +25,7 @@ namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests [SetUp] public void Setup() { - _artist = Builder + _author = Builder .CreateNew() .With(s => s.Name = "Linkin Park") .With(s => s.Metadata = new AuthorMetadata @@ -35,16 +35,16 @@ namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests }) .Build(); - _album = Builder + _book = Builder .CreateNew() .With(s => s.Title = "Hybrid Theory") .Build(); _edition = Builder .CreateNew() - .With(s => s.Title = _album.Title) - .With(s => s.Disambiguation = "The Best Album") - .With(s => s.Book = _album) + .With(s => s.Title = _book.Title) + .With(s => s.Disambiguation = "The Best Book") + .With(s => s.Book = _book) .Build(); _namingConfig = NamingConfig.Default; @@ -81,38 +81,38 @@ namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests } [Test] - public void should_replace_Artist_space_Name() + public void should_replace_Author_space_Name() { _namingConfig.StandardBookFormat = "{Author Name}"; - Subject.BuildBookFileName(_artist, _edition, _trackFile) + Subject.BuildBookFileName(_author, _edition, _trackFile) .Should().Be("Linkin Park"); } [Test] - public void should_replace_Artist_underscore_Name() + public void should_replace_Author_underscore_Name() { _namingConfig.StandardBookFormat = "{Author_Name}"; - Subject.BuildBookFileName(_artist, _edition, _trackFile) + Subject.BuildBookFileName(_author, _edition, _trackFile) .Should().Be("Linkin_Park"); } [Test] - public void should_replace_Artist_dot_Name() + public void should_replace_Author_dot_Name() { _namingConfig.StandardBookFormat = "{Author.Name}"; - Subject.BuildBookFileName(_artist, _edition, _trackFile) + Subject.BuildBookFileName(_author, _edition, _trackFile) .Should().Be("Linkin.Park"); } [Test] - public void should_replace_Artist_dash_Name() + public void should_replace_Author_dash_Name() { _namingConfig.StandardBookFormat = "{Author-Name}"; - Subject.BuildBookFileName(_artist, _edition, _trackFile) + Subject.BuildBookFileName(_author, _edition, _trackFile) .Should().Be("Linkin-Park"); } @@ -121,7 +121,7 @@ namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests { _namingConfig.StandardBookFormat = "{AUTHOR NAME}"; - Subject.BuildBookFileName(_artist, _edition, _trackFile) + Subject.BuildBookFileName(_author, _edition, _trackFile) .Should().Be("LINKIN PARK"); } @@ -130,35 +130,35 @@ namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests { _namingConfig.StandardBookFormat = "{aUtHoR-nAmE}"; - Subject.BuildBookFileName(_artist, _edition, _trackFile) - .Should().Be(_artist.Name.Replace(' ', '-')); + Subject.BuildBookFileName(_author, _edition, _trackFile) + .Should().Be(_author.Name.Replace(' ', '-')); } [Test] - public void should_replace_artist_name_with_all_lower_case() + public void should_replace_author_name_with_all_lower_case() { _namingConfig.StandardBookFormat = "{author name}"; - Subject.BuildBookFileName(_artist, _edition, _trackFile) + Subject.BuildBookFileName(_author, _edition, _trackFile) .Should().Be("linkin park"); } [Test] - public void should_cleanup_Artist_Name() + public void should_cleanup_Author_Name() { _namingConfig.StandardBookFormat = "{Author.CleanName}"; - _artist.Name = "Linkin Park (1997)"; + _author.Name = "Linkin Park (1997)"; - Subject.BuildBookFileName(_artist, _edition, _trackFile) + Subject.BuildBookFileName(_author, _edition, _trackFile) .Should().Be("Linkin.Park.1997"); } [Test] - public void should_replace_Artist_Disambiguation() + public void should_replace_Author_Disambiguation() { _namingConfig.StandardBookFormat = "{Author Disambiguation}"; - Subject.BuildBookFileName(_artist, _edition, _trackFile) + Subject.BuildBookFileName(_author, _edition, _trackFile) .Should().Be("US Rock Band"); } @@ -167,43 +167,43 @@ namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests { _namingConfig.StandardBookFormat = "{Book Title}"; - Subject.BuildBookFileName(_artist, _edition, _trackFile) + Subject.BuildBookFileName(_author, _edition, _trackFile) .Should().Be("Hybrid Theory"); } [Test] - public void should_replace_Album_Disambiguation() + public void should_replace_Book_Disambiguation() { _namingConfig.StandardBookFormat = "{Book Disambiguation}"; - Subject.BuildBookFileName(_artist, _edition, _trackFile) - .Should().Be("The Best Album"); + Subject.BuildBookFileName(_author, _edition, _trackFile) + .Should().Be("The Best Book"); } [Test] - public void should_replace_Album_underscore_Title() + public void should_replace_Book_underscore_Title() { _namingConfig.StandardBookFormat = "{Book_Title}"; - Subject.BuildBookFileName(_artist, _edition, _trackFile) + Subject.BuildBookFileName(_author, _edition, _trackFile) .Should().Be("Hybrid_Theory"); } [Test] - public void should_replace_Album_dot_Title() + public void should_replace_Book_dot_Title() { _namingConfig.StandardBookFormat = "{Book.Title}"; - Subject.BuildBookFileName(_artist, _edition, _trackFile) + Subject.BuildBookFileName(_author, _edition, _trackFile) .Should().Be("Hybrid.Theory"); } [Test] - public void should_replace_Album_dash_Title() + public void should_replace_Book_dash_Title() { _namingConfig.StandardBookFormat = "{Book-Title}"; - Subject.BuildBookFileName(_artist, _edition, _trackFile) + Subject.BuildBookFileName(_author, _edition, _trackFile) .Should().Be("Hybrid-Theory"); } @@ -212,7 +212,7 @@ namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests { _namingConfig.StandardBookFormat = "{BOOK TITLE}"; - Subject.BuildBookFileName(_artist, _edition, _trackFile) + Subject.BuildBookFileName(_author, _edition, _trackFile) .Should().Be("HYBRID THEORY"); } @@ -221,26 +221,26 @@ namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests { _namingConfig.StandardBookFormat = "{bOoK-tItLE}"; - Subject.BuildBookFileName(_artist, _edition, _trackFile) - .Should().Be(_album.Title.Replace(' ', '-')); + Subject.BuildBookFileName(_author, _edition, _trackFile) + .Should().Be(_book.Title.Replace(' ', '-')); } [Test] - public void should_replace_album_title_with_all_lower_case() + public void should_replace_book_title_with_all_lower_case() { _namingConfig.StandardBookFormat = "{book title}"; - Subject.BuildBookFileName(_artist, _edition, _trackFile) + Subject.BuildBookFileName(_author, _edition, _trackFile) .Should().Be("hybrid theory"); } [Test] - public void should_cleanup_Album_Title() + public void should_cleanup_Book_Title() { _namingConfig.StandardBookFormat = "{Author.CleanName}"; - _artist.Name = "Hybrid Theory (2000)"; + _author.Name = "Hybrid Theory (2000)"; - Subject.BuildBookFileName(_artist, _edition, _trackFile) + Subject.BuildBookFileName(_author, _edition, _trackFile) .Should().Be("Hybrid.Theory.2000"); } @@ -249,7 +249,7 @@ namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests { _namingConfig.StandardBookFormat = "{Quality Title}"; - Subject.BuildBookFileName(_artist, _edition, _trackFile) + Subject.BuildBookFileName(_author, _edition, _trackFile) .Should().Be("MP3-320"); } @@ -258,7 +258,7 @@ namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests { _namingConfig.StandardBookFormat = "{MediaInfo AudioCodec}"; - Subject.BuildBookFileName(_artist, _edition, _trackFile) + Subject.BuildBookFileName(_author, _edition, _trackFile) .Should().Be("FLAC"); } @@ -267,7 +267,7 @@ namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests { _namingConfig.StandardBookFormat = "{MediaInfo AudioBitRate}"; - Subject.BuildBookFileName(_artist, _edition, _trackFile) + Subject.BuildBookFileName(_author, _edition, _trackFile) .Should().Be("320 kbps"); } @@ -276,7 +276,7 @@ namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests { _namingConfig.StandardBookFormat = "{MediaInfo AudioChannels}"; - Subject.BuildBookFileName(_artist, _edition, _trackFile) + Subject.BuildBookFileName(_author, _edition, _trackFile) .Should().Be("2.0"); } @@ -285,7 +285,7 @@ namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests { _namingConfig.StandardBookFormat = "{MediaInfo AudioBitsPerSample}"; - Subject.BuildBookFileName(_artist, _edition, _trackFile) + Subject.BuildBookFileName(_author, _edition, _trackFile) .Should().Be("16bit"); } @@ -294,7 +294,7 @@ namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests { _namingConfig.StandardBookFormat = "{MediaInfo AudioSampleRate}"; - Subject.BuildBookFileName(_artist, _edition, _trackFile) + Subject.BuildBookFileName(_author, _edition, _trackFile) .Should().Be("44.1kHz"); } @@ -303,7 +303,7 @@ namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests { _namingConfig.StandardBookFormat = "{Author Name} - {Book Title} - [{Quality Title}]"; - Subject.BuildBookFileName(_artist, _edition, _trackFile) + Subject.BuildBookFileName(_author, _edition, _trackFile) .Should().Be("Linkin Park - Hybrid Theory - [MP3-320]"); } @@ -313,7 +313,7 @@ namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests _namingConfig.RenameBooks = false; _trackFile.Path = "Linkin Park - 06 - Test"; - Subject.BuildBookFileName(_artist, _edition, _trackFile) + Subject.BuildBookFileName(_author, _edition, _trackFile) .Should().Be(Path.GetFileNameWithoutExtension(_trackFile.Path)); } @@ -324,7 +324,7 @@ namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests _trackFile.Path = "Linkin Park - 06 - Test"; _trackFile.SceneName = "SceneName"; - Subject.BuildBookFileName(_artist, _edition, _trackFile) + Subject.BuildBookFileName(_author, _edition, _trackFile) .Should().Be(Path.GetFileNameWithoutExtension(_trackFile.Path)); } @@ -332,9 +332,9 @@ namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests public void use_path_when_sceneName_and_relative_path_are_null() { _namingConfig.RenameBooks = false; - _trackFile.Path = @"C:\Test\Unsorted\Artist - 01 - Test"; + _trackFile.Path = @"C:\Test\Unsorted\Author - 01 - Test"; - Subject.BuildBookFileName(_artist, _edition, _trackFile) + Subject.BuildBookFileName(_author, _edition, _trackFile) .Should().Be(Path.GetFileNameWithoutExtension(_trackFile.Path)); } @@ -343,20 +343,20 @@ namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests { _namingConfig.StandardBookFormat = "{Release Group}"; - Subject.BuildBookFileName(_artist, _edition, _trackFile) + Subject.BuildBookFileName(_author, _edition, _trackFile) .Should().Be(_trackFile.ReleaseGroup); } [Test] public void should_be_able_to_use_original_title() { - _artist.Name = "Linkin Park"; + _author.Name = "Linkin Park"; _namingConfig.StandardBookFormat = "{Author Name} - {Original Title}"; _trackFile.SceneName = "Linkin.Park.Meteora.320-LOL"; _trackFile.Path = "30 Rock - 01 - Test"; - Subject.BuildBookFileName(_artist, _edition, _trackFile) + Subject.BuildBookFileName(_author, _edition, _trackFile) .Should().Be("Linkin Park - Linkin.Park.Meteora.320-LOL"); } @@ -383,7 +383,7 @@ namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests { _namingConfig.StandardBookFormat = "{Author.Name}{_Book.Title_}{Quality.Title}"; - Subject.BuildBookFileName(_artist, _edition, _trackFile) + Subject.BuildBookFileName(_author, _edition, _trackFile) .Should().Be("Linkin.Park_Hybrid.Theory_MP3-320"); } @@ -392,17 +392,17 @@ namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests { _namingConfig.StandardBookFormat = "{Author.Name}{_Book.Title_}"; - Subject.BuildBookFileName(_artist, _edition, _trackFile) + Subject.BuildBookFileName(_author, _edition, _trackFile) .Should().Be("Linkin.Park_Hybrid.Theory"); } [Test] public void should_remove_duplicate_non_word_characters() { - _artist.Name = "Venture Bros."; + _author.Name = "Venture Bros."; _namingConfig.StandardBookFormat = "{Author.Name}.{Book.Title}"; - Subject.BuildBookFileName(_artist, _edition, _trackFile) + Subject.BuildBookFileName(_author, _edition, _trackFile) .Should().Be("Venture.Bros.Hybrid.Theory"); } @@ -415,20 +415,20 @@ namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests _trackFile.SceneName = null; _trackFile.Path = "existing.file.mkv"; - Subject.BuildBookFileName(_artist, _edition, _trackFile) + Subject.BuildBookFileName(_author, _edition, _trackFile) .Should().Be(Path.GetFileNameWithoutExtension(_trackFile.Path)); } [Test] public void should_be_able_to_use_only_original_title() { - _artist.Name = "30 Rock"; + _author.Name = "30 Rock"; _namingConfig.StandardBookFormat = "{Original Title}"; _trackFile.SceneName = "30.Rock.S01E01.xvid-LOL"; _trackFile.Path = "30 Rock - S01E01 - Test"; - Subject.BuildBookFileName(_artist, _edition, _trackFile) + Subject.BuildBookFileName(_author, _edition, _trackFile) .Should().Be("30.Rock.S01E01.xvid-LOL"); } @@ -437,7 +437,7 @@ namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests { _namingConfig.StandardBookFormat = "{Quality Title} {Quality Proper}"; - Subject.BuildBookFileName(_artist, _edition, _trackFile) + Subject.BuildBookFileName(_author, _edition, _trackFile) .Should().Be("MP3-320"); } @@ -446,7 +446,7 @@ namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests { _namingConfig.StandardBookFormat = "{Author Name} - {Book Title} [{Quality Title}] {[Quality Proper]}"; - Subject.BuildBookFileName(_artist, _edition, _trackFile) + Subject.BuildBookFileName(_author, _edition, _trackFile) .Should().Be("Linkin Park - Hybrid Theory [MP3-320]"); } @@ -455,7 +455,7 @@ namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests { _namingConfig.StandardBookFormat = "{Author Name} - {Book Title} [{Quality Full}]"; - Subject.BuildBookFileName(_artist, _edition, _trackFile) + Subject.BuildBookFileName(_author, _edition, _trackFile) .Should().Be("Linkin Park - Hybrid Theory [MP3-320]"); } @@ -467,7 +467,7 @@ namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests { _namingConfig.StandardBookFormat = string.Format("{{Quality{0}Title}}{0}{{Quality{0}Proper}}", separator); - Subject.BuildBookFileName(_artist, _edition, _trackFile) + Subject.BuildBookFileName(_author, _edition, _trackFile) .Should().Be("MP3-320"); } @@ -479,33 +479,33 @@ namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests { _namingConfig.StandardBookFormat = string.Format("{{Quality{0}Title}}{0}{{Quality{0}Proper}}{0}{{Book{0}Title}}", separator); - Subject.BuildBookFileName(_artist, _edition, _trackFile) + Subject.BuildBookFileName(_author, _edition, _trackFile) .Should().Be(string.Format("MP3-320{0}Hybrid{0}Theory", separator)); } [Test] public void should_be_able_to_use_original_filename() { - _artist.Name = "30 Rock"; + _author.Name = "30 Rock"; _namingConfig.StandardBookFormat = "{Author Name} - {Original Filename}"; _trackFile.SceneName = "30.Rock.S01E01.xvid-LOL"; _trackFile.Path = "30 Rock - S01E01 - Test"; - Subject.BuildBookFileName(_artist, _edition, _trackFile) + Subject.BuildBookFileName(_author, _edition, _trackFile) .Should().Be("30 Rock - 30 Rock - S01E01 - Test"); } [Test] public void should_be_able_to_use_original_filename_only() { - _artist.Name = "30 Rock"; + _author.Name = "30 Rock"; _namingConfig.StandardBookFormat = "{Original Filename}"; _trackFile.SceneName = "30.Rock.S01E01.xvid-LOL"; _trackFile.Path = "30 Rock - S01E01 - Test"; - Subject.BuildBookFileName(_artist, _edition, _trackFile) + Subject.BuildBookFileName(_author, _edition, _trackFile) .Should().Be("30 Rock - S01E01 - Test"); } @@ -515,7 +515,7 @@ namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests _trackFile.ReleaseGroup = null; _namingConfig.StandardBookFormat = "{Release Group}"; - Subject.BuildBookFileName(_artist, _edition, _trackFile) + Subject.BuildBookFileName(_author, _edition, _trackFile) .Should().Be("Readarr"); } @@ -527,7 +527,7 @@ namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests _trackFile.ReleaseGroup = null; _namingConfig.StandardBookFormat = pattern; - Subject.BuildBookFileName(_artist, _edition, _trackFile) + Subject.BuildBookFileName(_author, _edition, _trackFile) .Should().Be(expectedFileName); } @@ -539,7 +539,7 @@ namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests _trackFile.ReleaseGroup = releaseGroup; _namingConfig.StandardBookFormat = "{Release Group}"; - Subject.BuildBookFileName(_artist, _edition, _trackFile) + Subject.BuildBookFileName(_author, _edition, _trackFile) .Should().Be(releaseGroup); } } diff --git a/src/NzbDrone.Core.Test/OrganizerTests/FileNameBuilderTests/TitleTheFixture.cs b/src/NzbDrone.Core.Test/OrganizerTests/FileNameBuilderTests/TitleTheFixture.cs index 5c5f9158b..775eb948c 100644 --- a/src/NzbDrone.Core.Test/OrganizerTests/FileNameBuilderTests/TitleTheFixture.cs +++ b/src/NzbDrone.Core.Test/OrganizerTests/FileNameBuilderTests/TitleTheFixture.cs @@ -14,8 +14,8 @@ namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests [TestFixture] public class TitleTheFixture : CoreTest { - private Author _artist; - private Book _album; + private Author _author; + private Book _book; private Edition _edition; private BookFile _trackFile; private NamingConfig _namingConfig; @@ -23,20 +23,20 @@ namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests [SetUp] public void Setup() { - _artist = Builder + _author = Builder .CreateNew() .With(s => s.Name = "Alien Ant Farm") .Build(); - _album = Builder + _book = Builder .CreateNew() .With(s => s.Title = "Anthology") .Build(); _edition = Builder .CreateNew() - .With(s => s.Title = _album.Title) - .With(s => s.Book = _album) + .With(s => s.Title = _book.Title) + .With(s => s.Book = _book) .Build(); _trackFile = new BookFile { Quality = new QualityModel(Quality.MP3_320), ReleaseGroup = "ReadarrTest" }; @@ -66,10 +66,10 @@ namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests //[TestCase("", "")] public void should_get_expected_title_back(string name, string expected) { - _artist.Name = name; + _author.Name = name; _namingConfig.StandardBookFormat = "{Author NameThe}"; - Subject.BuildBookFileName(_artist, _edition, _trackFile) + Subject.BuildBookFileName(_author, _edition, _trackFile) .Should().Be(expected); } @@ -79,10 +79,10 @@ namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests [TestCase("3%")] public void should_not_change_title(string name) { - _artist.Name = name; + _author.Name = name; _namingConfig.StandardBookFormat = "{Author NameThe}"; - Subject.BuildBookFileName(_artist, _edition, _trackFile) + Subject.BuildBookFileName(_author, _edition, _trackFile) .Should().Be(name); } } diff --git a/src/NzbDrone.Core.Test/ParserTests/ArtistTitleInfoFixture.cs b/src/NzbDrone.Core.Test/ParserTests/ArtistTitleInfoFixture.cs index cb34c06cb..f55bb5962 100644 --- a/src/NzbDrone.Core.Test/ParserTests/ArtistTitleInfoFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/ArtistTitleInfoFixture.cs @@ -5,11 +5,11 @@ using NzbDrone.Core.Test.Framework; namespace NzbDrone.Core.Test.ParserTests { [TestFixture] - public class ArtistTitleInfoFixture : CoreTest + public class AuthorTitleInfoFixture : CoreTest { - // TODO: Redo this test and parsed info for Albums which do have a year association + // TODO: Redo this test and parsed info for Books which do have a year association [Test] - [Ignore("Artist Don't have year association thus we dont use this currently")] + [Ignore("Author Don't have year association thus we dont use this currently")] public void should_have_year_zero_when_title_doesnt_have_a_year() { const string title = "Alien Ant Farm - TruAnt [Flac]"; @@ -20,7 +20,7 @@ namespace NzbDrone.Core.Test.ParserTests } [Test] - [Ignore("Artist Don't have year association thus we dont use this currently")] + [Ignore("Author Don't have year association thus we dont use this currently")] public void should_have_same_title_for_title_and_title_without_year_when_title_doesnt_have_a_year() { const string title = "Alien Ant Farm - TruAnt [Flac]"; @@ -31,7 +31,7 @@ namespace NzbDrone.Core.Test.ParserTests } [Test] - [Ignore("Artist Don't have year association thus we dont use this currently")] + [Ignore("Author Don't have year association thus we dont use this currently")] public void should_have_year_when_title_has_a_year() { const string title = "Alien Ant Farm - TruAnt [Flac]"; @@ -42,7 +42,7 @@ namespace NzbDrone.Core.Test.ParserTests } [Test] - [Ignore("Artist Don't have year association thus we dont use this currently")] + [Ignore("Author Don't have year association thus we dont use this currently")] public void should_have_year_in_title_when_title_has_a_year() { const string title = "Alien Ant Farm - TruAnt [Flac]"; @@ -53,7 +53,7 @@ namespace NzbDrone.Core.Test.ParserTests } [Test] - [Ignore("Artist Don't have year association thus we dont use this currently")] + [Ignore("Author Don't have year association thus we dont use this currently")] public void should_title_without_year_should_not_contain_year() { const string title = "Alien Ant Farm - TruAnt [Flac]"; diff --git a/src/NzbDrone.Core.Test/ParserTests/MusicParserFixture.cs b/src/NzbDrone.Core.Test/ParserTests/MusicParserFixture.cs index 16996e080..8fd3254e0 100644 --- a/src/NzbDrone.Core.Test/ParserTests/MusicParserFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/MusicParserFixture.cs @@ -28,9 +28,9 @@ namespace NzbDrone.Core.Test.ParserTests //[TestCase("Zog Bogbean - From The Marcy Playground")] // TODO: Rewrite this test to something that makes sense. - public void should_parse_artist_names(string title) + public void should_parse_author_names(string title) { - Parser.Parser.ParseTitle(title).ArtistTitle.Should().Be(title); + Parser.Parser.ParseTitle(title).AuthorTitle.Should().Be(title); ExceptionVerification.IgnoreWarns(); } } diff --git a/src/NzbDrone.Core.Test/ParserTests/NormalizeTitleFixture.cs b/src/NzbDrone.Core.Test/ParserTests/NormalizeTitleFixture.cs index 826b66c98..e58ce4184 100644 --- a/src/NzbDrone.Core.Test/ParserTests/NormalizeTitleFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/NormalizeTitleFixture.cs @@ -12,10 +12,10 @@ namespace NzbDrone.Core.Test.ParserTests [TestCase("Castle (2009)", "castle2009")] [TestCase("Parenthood.2010", "parenthood2010")] [TestCase("Law_and_Order_SVU", "lawordersvu")] - public void should_normalize_artist_title(string parsedArtistName, string artistName) + public void should_normalize_author_title(string parsedAuthorName, string authorName) { - var result = parsedArtistName.CleanAuthorName(); - result.Should().Be(artistName); + var result = parsedAuthorName.CleanAuthorName(); + result.Should().Be(authorName); } [TestCase("CaPitAl", "capital")] @@ -99,10 +99,10 @@ namespace NzbDrone.Core.Test.ParserTests [TestCase("The Office", "theoffice")] [TestCase("The Tonight Show With Jay Leno", "thetonightshowwithjayleno")] [TestCase("The.Daily.Show", "thedailyshow")] - public void should_not_remove_from_the_beginning_of_the_title(string parsedArtistName, string artistName) + public void should_not_remove_from_the_beginning_of_the_title(string parsedAuthorName, string authorName) { - var result = parsedArtistName.CleanAuthorName(); - result.Should().Be(artistName); + var result = parsedAuthorName.CleanAuthorName(); + result.Should().Be(authorName); } [TestCase("the")] diff --git a/src/NzbDrone.Core.Test/ParserTests/ParserFixture.cs b/src/NzbDrone.Core.Test/ParserTests/ParserFixture.cs index 6f108137a..2456156f4 100644 --- a/src/NzbDrone.Core.Test/ParserTests/ParserFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/ParserFixture.cs @@ -12,32 +12,32 @@ namespace NzbDrone.Core.Test.ParserTests [TestFixture] public class ParserFixture : CoreTest { - private Author _artist = new Author(); - private List _albums = new List { new Book() }; + private Author _author = new Author(); + private List _books = new List { new Book() }; [SetUp] public void Setup() { - _artist = Builder + _author = Builder .CreateNew() .Build(); - _albums = Builder> + _books = Builder> .CreateNew() .Build(); } - private void GivenSearchCriteria(string artistName, string albumTitle) + private void GivenSearchCriteria(string authorName, string bookTitle) { - _artist.Name = artistName; + _author.Name = authorName; var a = new Book(); - a.Title = albumTitle; - _albums.Add(a); + a.Title = bookTitle; + _books.Add(a); } [TestCase("Bad Format", "badformat")] - public void should_parse_artist_name(string postTitle, string title) + public void should_parse_author_name(string postTitle, string title) { - var result = Parser.Parser.ParseArtistName(postTitle).CleanAuthorName(); + var result = Parser.Parser.ParseAuthorName(postTitle).CleanAuthorName(); result.Should().Be(title.CleanAuthorName()); } @@ -53,14 +53,14 @@ namespace NzbDrone.Core.Test.ParserTests [TestCase("Songs of Experience (iTunes Deluxe Edition)", "Songs of Experience")] [TestCase("Songs of Experience [Super Special Edition]", "Songs of Experience")] [TestCase("Mr. Bad Guy [Special Edition]", "Mr. Bad Guy")] - [TestCase("Sweet Dreams (Album)", "Sweet Dreams")] + [TestCase("Sweet Dreams (Book)", "Sweet Dreams")] [TestCase("Now What?! (Limited Edition)", "Now What?!")] - [TestCase("Random Album Title (Promo CD)", "Random Album Title")] + [TestCase("Random Book Title (Promo CD)", "Random Book Title")] [TestCase("Hello, I Must Be Going (2016 Remastered)", "Hello, I Must Be Going")] [TestCase("Limited Edition", "Limited Edition")] - public void should_remove_common_tags_from_album_title(string title, string correct) + public void should_remove_common_tags_from_book_title(string title, string correct) { - var result = Parser.Parser.CleanAlbumTitle(title); + var result = Parser.Parser.CleanBookTitle(title); result.Should().Be(correct); } @@ -89,8 +89,8 @@ namespace NzbDrone.Core.Test.ParserTests Parser.Parser.ParseBookTitle(postTitle).AuthorName.Should().Be(title); } - [TestCase("02 Unchained.flac")] // This isn't valid on any regex we have. We must always have an artist - [TestCase("Fall Out Boy - 02 - Title.wav")] // This isn't valid on any regex we have. We don't support Artist - Track - TrackName + [TestCase("02 Unchained.flac")] // This isn't valid on any regex we have. We must always have an author + [TestCase("Fall Out Boy - 02 - Title.wav")] // This isn't valid on any regex we have. We don't support Author - Track - TrackName [Ignore("Ignore Test until track parsing rework")] public void should_parse_quality_from_extension(string title) { @@ -110,7 +110,7 @@ namespace NzbDrone.Core.Test.ParserTests [TestCase("Gary Clark Jr - Live North America 2016 (2017) MP3 192kbps", "Gary Clark Jr", "Live North America 2016")] //[TestCase("Beyoncé Lemonade [320] 2016 Beyonce Lemonade [320] 2016", "Beyoncé", "Lemonade")] - [TestCase("Childish Gambino - Awaken, My Love Album 2016 mp3 320 Kbps", "Childish Gambino", "Awaken, My Love Album")] + [TestCase("Childish Gambino - Awaken, My Love Book 2016 mp3 320 Kbps", "Childish Gambino", "Awaken, My Love Book")] //[TestCase("Maluma – Felices Los 4 MP3 320 Kbps 2017 Download", "Maluma", "Felices Los 4")] [TestCase("Ricardo Arjona - APNEA (Single 2014) (320 kbps)", "Ricardo Arjona", "APNEA")] @@ -119,7 +119,7 @@ namespace NzbDrone.Core.Test.ParserTests [TestCase("Caetano Veloso Discografia Completa MP3 @256", "Caetano Veloso", "Discography", true)] [TestCase("Little Mix - Salute [Deluxe Edition] [2013] [M4A-256]-V3nom [GLT", "Little Mix", "Salute")] [TestCase("Ricky Martin - A Quien Quiera Escuchar (2015) 256 kbps [GloDLS]", "Ricky Martin", "A Quien Quiera Escuchar")] - [TestCase("Jake Bugg - Jake Bugg (Album) [2012] {MP3 256 kbps}", "Jake Bugg", "Jake Bugg")] + [TestCase("Jake Bugg - Jake Bugg (Book) [2012] {MP3 256 kbps}", "Jake Bugg", "Jake Bugg")] [TestCase("Milky Chance - Sadnecessary [256 Kbps] [M4A]", "Milky Chance", "Sadnecessary")] [TestCase("Clean Bandit - New Eyes [2014] [Mp3-256]-V3nom [GLT]", "Clean Bandit", "New Eyes")] [TestCase("Armin van Buuren - A State Of Trance 810 (20.04.2017) 256 kbps", "Armin van Buuren", "A State Of Trance 810")] @@ -152,7 +152,7 @@ namespace NzbDrone.Core.Test.ParserTests [TestCase("New.Edition-One.Love-CD-FLAC-2017-MrFlac", "New Edition", "One Love")] [TestCase("David_Gray-The_Best_of_David_Gray-(Deluxe_Edition)-2CD-2016-MTD", "David Gray", "The Best of David Gray")] [TestCase("Shinedown-Us and Them-NMR-2005-NMR", "Shinedown", "Us and Them")] - [TestCase("Led Zeppelin - Studio Discography 1969-1982 (10 albums)(flac)", "Led Zeppelin", "Discography", true)] + [TestCase("Led Zeppelin - Studio Discography 1969-1982 (10 books)(flac)", "Led Zeppelin", "Discography", true)] [TestCase("Minor Threat - Complete Discography [1989] [Anthology]", "Minor Threat", "Discography", true)] [TestCase("Captain-Discography_1998_-_2001-CD-FLAC-2007-UTP", "Captain", "Discography", true)] [TestCase("Coolio - Gangsta's Paradise (1995) (FLAC Lossless)", "Coolio", "Gangsta's Paradise")] @@ -164,7 +164,7 @@ namespace NzbDrone.Core.Test.ParserTests [TestCase("(Folk Rock / Pop) Aztec Two-Step - Naked - 2017, MP3, 320 kbps", "Aztec Two-Step", "Naked")] [TestCase("(Zeuhl / Progressive Rock) [WEB] Dai Kaht - Dai Kaht - 2017, FLAC (tracks), lossless", "Dai Kaht", "Dai Kaht")] - //[TestCase("(Industrial Folk) Bumblebee(Shmely, AntiVirus) - Discography, 23 albums - 1998-2011, FLAC(image + .cue), lossless")] + //[TestCase("(Industrial Folk) Bumblebee(Shmely, AntiVirus) - Discography, 23 books - 1998-2011, FLAC(image + .cue), lossless")] //[TestCase("(Heavy Metal) Sergey Mavrin(Mavrik) - Discography(14 CD) [1998-2010], FLAC(image + .cue), lossless")] [TestCase("(Heavy Metal) [CD] Black Obelisk - Discography - 1991-2015 (36 releases, 32 CDs), FLAC(image + .cue), lossless", "Black Obelisk", "Discography", true)] @@ -173,9 +173,9 @@ namespace NzbDrone.Core.Test.ParserTests [TestCase("(Heavy Metal) [CD] Forces United - Discography(6 CDs), 2014-2016, FLAC(image + .cue), lossless", "Forces United", "Discography", true)] [TestCase("Gorillaz - The now now - 2018 [FLAC]", "Gorillaz", "The now now")] - //Regex Works on below, but ParseAlbumMatchCollection cleans the "..." and converts it to spaces + //Regex Works on below, but ParseBookMatchCollection cleans the "..." and converts it to spaces // [TestCase("Metallica - ...And Justice for All (1988) [FLAC Lossless]", "Metallica", "...And Justice for All")] - public void should_parse_artist_name_and_album_title(string postTitle, string name, string title, bool discography = false) + public void should_parse_author_name_and_book_title(string postTitle, string name, string title, bool discography = false) { var parseResult = Parser.Parser.ParseBookTitle(postTitle); parseResult.AuthorName.Should().Be(name); @@ -189,17 +189,17 @@ namespace NzbDrone.Core.Test.ParserTests [TestCase("Black Sabbath FLAC Black Sabbath")] [TestCase("Black.Sabbath-FLAC-Black.Sabbath")] [TestCase("Black_Sabbath-FLAC-Black_Sabbath")] - public void should_parse_artist_name_and_album_title_by_search_criteria(string releaseTitle) + public void should_parse_author_name_and_book_title_by_search_criteria(string releaseTitle) { GivenSearchCriteria("Black Sabbath", "Black Sabbath"); - var parseResult = Parser.Parser.ParseBookTitleWithSearchCriteria(releaseTitle, _artist, _albums); + var parseResult = Parser.Parser.ParseBookTitleWithSearchCriteria(releaseTitle, _author, _books); parseResult.AuthorName.ToLowerInvariant().Should().Be("black sabbath"); parseResult.BookTitle.ToLowerInvariant().Should().Be("black sabbath"); } [TestCase("Captain-Discography_1998_-_2001-CD-FLAC-2007-UTP", 1998, 2001)] [TestCase("(Heavy Metal) Aria - Discography(46 CD) [1985 - 2015]", 1985, 2015)] - [TestCase("Led Zeppelin - Studio Discography 1969-1982 (10 albums)(flac)", 1969, 1982)] + [TestCase("Led Zeppelin - Studio Discography 1969-1982 (10 books)(flac)", 1969, 1982)] [TestCase("Minor Threat - Complete Discography [1989] [Anthology]", 0, 1989)] [TestCase("Caetano Veloso Discografia Completa MP3 @256", 0, 0)] public void should_parse_year_or_year_range_from_discography(string releaseTitle, int startyear, int endyear) @@ -211,10 +211,10 @@ namespace NzbDrone.Core.Test.ParserTests } [Test] - public void should_not_parse_artist_name_and_album_title_by_incorrect_search_criteria() + public void should_not_parse_author_name_and_book_title_by_incorrect_search_criteria() { GivenSearchCriteria("Abba", "Abba"); - var parseResult = Parser.Parser.ParseBookTitleWithSearchCriteria("Black Sabbath Black Sabbath FLAC", _artist, _albums); + var parseResult = Parser.Parser.ParseBookTitleWithSearchCriteria("Black Sabbath Black Sabbath FLAC", _author, _books); parseResult.Should().BeNull(); } @@ -225,35 +225,35 @@ namespace NzbDrone.Core.Test.ParserTests //[TestCase("Glasvegas", @"EUPHORIC /// HEARTBREAK \\\", @"EUPHORIC /// HEARTBREAK \\\ FLAC")] // slashes not being escaped properly [TestCase("XXXTENTACION", "?", "XXXTENTACION ? FLAC")] [TestCase("Hey", "BŁYSK", "Hey - BŁYSK FLAC")] - public void should_escape_albums(string artist, string album, string releaseTitle) + public void should_escape_books(string author, string book, string releaseTitle) { - GivenSearchCriteria(artist, album); - var parseResult = Parser.Parser.ParseBookTitleWithSearchCriteria(releaseTitle, _artist, _albums); - parseResult.BookTitle.Should().Be(album); + GivenSearchCriteria(author, book); + var parseResult = Parser.Parser.ParseBookTitleWithSearchCriteria(releaseTitle, _author, _books); + parseResult.BookTitle.Should().Be(book); } - [TestCase("???", "Album", "??? Album FLAC")] - [TestCase("+", "Album", "+ Album FLAC")] - [TestCase(@"/\", "Album", @"/\ Album FLAC")] + [TestCase("???", "Book", "??? Book FLAC")] + [TestCase("+", "Book", "+ Book FLAC")] + [TestCase(@"/\", "Book", @"/\ Book FLAC")] [TestCase("+44", "When Your Heart Stops Beating", "+44 When Your Heart Stops Beating FLAC")] - public void should_escape_artists(string artist, string album, string releaseTitle) + public void should_escape_authors(string author, string book, string releaseTitle) { - GivenSearchCriteria(artist, album); - var parseResult = Parser.Parser.ParseBookTitleWithSearchCriteria(releaseTitle, _artist, _albums); - parseResult.AuthorName.Should().Be(artist); + GivenSearchCriteria(author, book); + var parseResult = Parser.Parser.ParseBookTitleWithSearchCriteria(releaseTitle, _author, _books); + parseResult.AuthorName.Should().Be(author); } [TestCase("Michael Bubl\u00E9", "Michael Bubl\u00E9", @"Michael Buble Michael Buble CD FLAC 2003 PERFECT")] - public void should_match_with_accent_in_artist_and_album(string artist, string album, string releaseTitle) + public void should_match_with_accent_in_author_and_book(string author, string book, string releaseTitle) { - GivenSearchCriteria(artist, album); - var parseResult = Parser.Parser.ParseBookTitleWithSearchCriteria(releaseTitle, _artist, _albums); + GivenSearchCriteria(author, book); + var parseResult = Parser.Parser.ParseBookTitleWithSearchCriteria(releaseTitle, _author, _books); parseResult.AuthorName.Should().Be("Michael Buble"); parseResult.BookTitle.Should().Be("Michael Buble"); } [Test] - public void should_find_result_if_multiple_albums_in_searchcriteria() + public void should_find_result_if_multiple_books_in_searchcriteria() { GivenSearchCriteria("Michael Bubl\u00E9", "Call Me Irresponsible"); GivenSearchCriteria("Michael Bubl\u00E9", "Michael Bubl\u00E9"); @@ -261,7 +261,7 @@ namespace NzbDrone.Core.Test.ParserTests GivenSearchCriteria("Michael Bubl\u00E9", "Christmas"); GivenSearchCriteria("Michael Bubl\u00E9", "To Be Loved"); var parseResult = Parser.Parser.ParseBookTitleWithSearchCriteria( - "Michael Buble Christmas (Deluxe Special Edition) CD FLAC 2012 UNDERTONE iNT", _artist, _albums); + "Michael Buble Christmas (Deluxe Special Edition) CD FLAC 2012 UNDERTONE iNT", _author, _books); parseResult.AuthorName.Should().Be("Michael Buble"); parseResult.BookTitle.Should().Be("Christmas"); } diff --git a/src/NzbDrone.Core.Test/ParserTests/ParsingServiceTests/GetAlbumsFixture.cs b/src/NzbDrone.Core.Test/ParserTests/ParsingServiceTests/GetAlbumsFixture.cs index 109d4d629..037a4396a 100644 --- a/src/NzbDrone.Core.Test/ParserTests/ParsingServiceTests/GetAlbumsFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/ParsingServiceTests/GetAlbumsFixture.cs @@ -13,17 +13,17 @@ using NzbDrone.Core.Test.Framework; namespace NzbDrone.Core.Test.ParserTests.ParsingServiceTests { [TestFixture] - public class GetAlbumsFixture : CoreTest + public class GetBooksFixture : CoreTest { [Test] - public void should_not_fail_if_search_criteria_contains_multiple_albums_with_the_same_name() + public void should_not_fail_if_search_criteria_contains_multiple_books_with_the_same_name() { - var artist = Builder.CreateNew().Build(); - var albums = Builder.CreateListOfSize(2).All().With(x => x.Title = "IdenticalTitle").Build().ToList(); + var author = Builder.CreateNew().Build(); + var books = Builder.CreateListOfSize(2).All().With(x => x.Title = "IdenticalTitle").Build().ToList(); var criteria = new BookSearchCriteria { - Author = artist, - Books = albums + Author = author, + Books = books }; var parsed = new ParsedBookInfo @@ -31,10 +31,10 @@ namespace NzbDrone.Core.Test.ParserTests.ParsingServiceTests BookTitle = "IdenticalTitle" }; - Subject.GetAlbums(parsed, artist, criteria).Should().BeEquivalentTo(new List()); + Subject.GetBooks(parsed, author, criteria).Should().BeEquivalentTo(new List()); Mocker.GetMock() - .Verify(s => s.FindByTitle(artist.AuthorMetadataId, "IdenticalTitle"), Times.Once()); + .Verify(s => s.FindByTitle(author.AuthorMetadataId, "IdenticalTitle"), Times.Once()); } } } diff --git a/src/NzbDrone.Core.Test/ParserTests/ParsingServiceTests/GetArtistFixture.cs b/src/NzbDrone.Core.Test/ParserTests/ParsingServiceTests/GetArtistFixture.cs index 75794f770..c9eea2551 100644 --- a/src/NzbDrone.Core.Test/ParserTests/ParsingServiceTests/GetArtistFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/ParsingServiceTests/GetArtistFixture.cs @@ -7,25 +7,25 @@ using NzbDrone.Core.Test.Framework; namespace NzbDrone.Core.Test.ParserTests.ParsingServiceTests { [TestFixture] - public class GetArtistFixture : CoreTest + public class GetAuthorFixture : CoreTest { [Test] public void should_use_passed_in_title_when_it_cannot_be_parsed() { const string title = "30 Rock"; - Subject.GetArtist(title); + Subject.GetAuthor(title); Mocker.GetMock() .Verify(s => s.FindByName(title), Times.Once()); } [Test] - public void should_use_parsed_artist_title() + public void should_use_parsed_author_title() { const string title = "30 Rock - Get Some [FLAC]"; - Subject.GetArtist(title); + Subject.GetAuthor(title); Mocker.GetMock() .Verify(s => s.FindByName(Parser.Parser.ParseBookTitle(title).AuthorName), Times.Once()); diff --git a/src/NzbDrone.Core.Test/ParserTests/QualityParserFixture.cs b/src/NzbDrone.Core.Test/ParserTests/QualityParserFixture.cs index 685201063..be8b87df1 100644 --- a/src/NzbDrone.Core.Test/ParserTests/QualityParserFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/QualityParserFixture.cs @@ -28,10 +28,10 @@ namespace NzbDrone.Core.Test.ParserTests [TestCase("Some Song [192][2014][MP3]")] [TestCase("Other Song (192)[2014][MP3]")] [TestCase("Caetano Veloso Discografia Completa MP3 @256")] - [TestCase("Jake Bugg - Jake Bugg (Album) [2012] {MP3 256 kbps}")] + [TestCase("Jake Bugg - Jake Bugg (Book) [2012] {MP3 256 kbps}")] [TestCase("Clean Bandit - New Eyes [2014] [Mp3-256]-V3nom [GLT]")] [TestCase("PJ Harvey - Let England Shake [mp3-256-2011][trfkad]")] - [TestCase("Childish Gambino - Awaken, My Love Album 2016 mp3 320 Kbps")] + [TestCase("Childish Gambino - Awaken, My Love Book 2016 mp3 320 Kbps")] [TestCase("Maluma – Felices Los 4 MP3 320 Kbps 2017 Download")] [TestCase("Sia - This Is Acting (Standard Edition) [2016-Web-MP3-V0(VBR)]")] [TestCase("Mount Eerie - A Crow Looked at Me (2017) [MP3 V0 VBR)]")] @@ -75,7 +75,7 @@ namespace NzbDrone.Core.Test.ParserTests [TestCaseSource(nameof(SelfQualityParserCases))] public void parsing_our_own_quality_enum_name(Quality quality) { - var fileName = string.Format("Some album [{0}]", quality.Name); + var fileName = string.Format("Some book [{0}]", quality.Name); var result = QualityParser.ParseQuality(fileName); result.Quality.Should().Be(quality); } @@ -92,9 +92,9 @@ namespace NzbDrone.Core.Test.ParserTests QualityParser.ParseCodec(null, null).Should().Be(Codec.Unknown); } - [TestCase("Artist Title - Album Title 2017 REPACK FLAC aAF", true)] - [TestCase("Artist Title - Album Title 2017 RERIP FLAC aAF", true)] - [TestCase("Artist Title - Album Title 2017 PROPER FLAC aAF", false)] + [TestCase("Author Title - Book Title 2017 REPACK FLAC aAF", true)] + [TestCase("Author Title - Book Title 2017 RERIP FLAC aAF", true)] + [TestCase("Author Title - Book Title 2017 PROPER FLAC aAF", false)] public void should_be_able_to_parse_repack(string title, bool isRepack) { var result = QualityParser.ParseQuality(title); diff --git a/src/NzbDrone.Core.Test/Profiles/Metadata/MetadataProfileServiceFixture.cs b/src/NzbDrone.Core.Test/Profiles/Metadata/MetadataProfileServiceFixture.cs index 2784dedae..7dcb714ec 100644 --- a/src/NzbDrone.Core.Test/Profiles/Metadata/MetadataProfileServiceFixture.cs +++ b/src/NzbDrone.Core.Test/Profiles/Metadata/MetadataProfileServiceFixture.cs @@ -99,13 +99,13 @@ namespace NzbDrone.Core.Test.Profiles.Metadata } [Test] - public void should_not_be_able_to_delete_profile_if_assigned_to_artist() + public void should_not_be_able_to_delete_profile_if_assigned_to_author() { var profile = Builder.CreateNew() .With(p => p.Id = 2) .Build(); - var artistList = Builder.CreateListOfSize(3) + var authorList = Builder.CreateListOfSize(3) .Random(1) .With(c => c.MetadataProfileId = profile.Id) .Build().ToList(); @@ -120,7 +120,7 @@ namespace NzbDrone.Core.Test.Profiles.Metadata .With(f => f.DefaultMetadataProfileId = 1) .BuildList(); - Mocker.GetMock().Setup(c => c.GetAllAuthors()).Returns(artistList); + Mocker.GetMock().Setup(c => c.GetAllAuthors()).Returns(authorList); Mocker.GetMock().Setup(c => c.All()).Returns(importLists); Mocker.GetMock().Setup(c => c.All()).Returns(rootFolders); Mocker.GetMock().Setup(c => c.Get(profile.Id)).Returns(profile); @@ -137,7 +137,7 @@ namespace NzbDrone.Core.Test.Profiles.Metadata .With(p => p.Id = 2) .Build(); - var artistList = Builder.CreateListOfSize(3) + var authorList = Builder.CreateListOfSize(3) .All() .With(c => c.MetadataProfileId = 1) .Build().ToList(); @@ -152,7 +152,7 @@ namespace NzbDrone.Core.Test.Profiles.Metadata .With(f => f.DefaultMetadataProfileId = 1) .BuildList(); - Mocker.GetMock().Setup(c => c.GetAllAuthors()).Returns(artistList); + Mocker.GetMock().Setup(c => c.GetAllAuthors()).Returns(authorList); Mocker.GetMock().Setup(c => c.All()).Returns(importLists); Mocker.GetMock().Setup(c => c.All()).Returns(rootFolders); Mocker.GetMock().Setup(c => c.Get(profile.Id)).Returns(profile); @@ -169,7 +169,7 @@ namespace NzbDrone.Core.Test.Profiles.Metadata .With(p => p.Id = 2) .Build(); - var artistList = Builder.CreateListOfSize(3) + var authorList = Builder.CreateListOfSize(3) .All() .With(c => c.MetadataProfileId = 1) .Build().ToList(); @@ -184,7 +184,7 @@ namespace NzbDrone.Core.Test.Profiles.Metadata .With(f => f.DefaultMetadataProfileId = profile.Id) .BuildList(); - Mocker.GetMock().Setup(c => c.GetAllAuthors()).Returns(artistList); + Mocker.GetMock().Setup(c => c.GetAllAuthors()).Returns(authorList); Mocker.GetMock().Setup(c => c.All()).Returns(importLists); Mocker.GetMock().Setup(c => c.All()).Returns(rootFolders); Mocker.GetMock().Setup(c => c.Get(profile.Id)).Returns(profile); @@ -195,13 +195,13 @@ namespace NzbDrone.Core.Test.Profiles.Metadata } [Test] - public void should_delete_profile_if_not_assigned_to_artist_import_list_or_root_folder() + public void should_delete_profile_if_not_assigned_to_author_import_list_or_root_folder() { var profile = Builder.CreateNew() .With(p => p.Id = 1) .Build(); - var artistList = Builder.CreateListOfSize(3) + var authorList = Builder.CreateListOfSize(3) .All() .With(c => c.MetadataProfileId = 2) .Build().ToList(); @@ -216,7 +216,7 @@ namespace NzbDrone.Core.Test.Profiles.Metadata .With(f => f.DefaultMetadataProfileId = 2) .BuildList(); - Mocker.GetMock().Setup(c => c.GetAllAuthors()).Returns(artistList); + Mocker.GetMock().Setup(c => c.GetAllAuthors()).Returns(authorList); Mocker.GetMock().Setup(c => c.All()).Returns(importLists); Mocker.GetMock().Setup(c => c.All()).Returns(rootFolders); Mocker.GetMock().Setup(c => c.Get(profile.Id)).Returns(profile); diff --git a/src/NzbDrone.Core.Test/Profiles/ProfileServiceFixture.cs b/src/NzbDrone.Core.Test/Profiles/ProfileServiceFixture.cs index 135ee494d..d61174dc4 100644 --- a/src/NzbDrone.Core.Test/Profiles/ProfileServiceFixture.cs +++ b/src/NzbDrone.Core.Test/Profiles/ProfileServiceFixture.cs @@ -41,13 +41,13 @@ namespace NzbDrone.Core.Test.Profiles } [Test] - public void should_not_be_able_to_delete_profile_if_assigned_to_artist() + public void should_not_be_able_to_delete_profile_if_assigned_to_author() { var profile = Builder.CreateNew() .With(p => p.Id = 2) .Build(); - var artistList = Builder.CreateListOfSize(3) + var authorList = Builder.CreateListOfSize(3) .Random(1) .With(c => c.QualityProfileId = profile.Id) .Build().ToList(); @@ -62,7 +62,7 @@ namespace NzbDrone.Core.Test.Profiles .With(f => f.DefaultQualityProfileId = 1) .BuildList(); - Mocker.GetMock().Setup(c => c.GetAllAuthors()).Returns(artistList); + Mocker.GetMock().Setup(c => c.GetAllAuthors()).Returns(authorList); Mocker.GetMock().Setup(c => c.All()).Returns(importLists); Mocker.GetMock().Setup(c => c.All()).Returns(rootFolders); Mocker.GetMock().Setup(c => c.Get(profile.Id)).Returns(profile); @@ -79,7 +79,7 @@ namespace NzbDrone.Core.Test.Profiles .With(p => p.Id = 2) .Build(); - var artistList = Builder.CreateListOfSize(3) + var authorList = Builder.CreateListOfSize(3) .All() .With(c => c.QualityProfileId = 1) .Build().ToList(); @@ -94,7 +94,7 @@ namespace NzbDrone.Core.Test.Profiles .With(f => f.DefaultQualityProfileId = 1) .BuildList(); - Mocker.GetMock().Setup(c => c.GetAllAuthors()).Returns(artistList); + Mocker.GetMock().Setup(c => c.GetAllAuthors()).Returns(authorList); Mocker.GetMock().Setup(c => c.All()).Returns(importLists); Mocker.GetMock().Setup(c => c.All()).Returns(rootFolders); Mocker.GetMock().Setup(c => c.Get(profile.Id)).Returns(profile); @@ -111,7 +111,7 @@ namespace NzbDrone.Core.Test.Profiles .With(p => p.Id = 2) .Build(); - var artistList = Builder.CreateListOfSize(3) + var authorList = Builder.CreateListOfSize(3) .All() .With(c => c.QualityProfileId = 1) .Build().ToList(); @@ -126,7 +126,7 @@ namespace NzbDrone.Core.Test.Profiles .With(f => f.DefaultQualityProfileId = profile.Id) .BuildList(); - Mocker.GetMock().Setup(c => c.GetAllAuthors()).Returns(artistList); + Mocker.GetMock().Setup(c => c.GetAllAuthors()).Returns(authorList); Mocker.GetMock().Setup(c => c.All()).Returns(importLists); Mocker.GetMock().Setup(c => c.All()).Returns(rootFolders); Mocker.GetMock().Setup(c => c.Get(profile.Id)).Returns(profile); @@ -137,9 +137,9 @@ namespace NzbDrone.Core.Test.Profiles } [Test] - public void should_delete_profile_if_not_assigned_to_artist_import_list_or_root_folder() + public void should_delete_profile_if_not_assigned_to_author_import_list_or_root_folder() { - var artistList = Builder.CreateListOfSize(3) + var authorList = Builder.CreateListOfSize(3) .All() .With(c => c.QualityProfileId = 2) .Build().ToList(); @@ -154,7 +154,7 @@ namespace NzbDrone.Core.Test.Profiles .With(f => f.DefaultQualityProfileId = 2) .BuildList(); - Mocker.GetMock().Setup(c => c.GetAllAuthors()).Returns(artistList); + Mocker.GetMock().Setup(c => c.GetAllAuthors()).Returns(authorList); Mocker.GetMock().Setup(c => c.All()).Returns(importLists); Mocker.GetMock().Setup(c => c.All()).Returns(rootFolders); diff --git a/src/NzbDrone.Core.Test/Profiles/Releases/PreferredWordService/CalculateFixture.cs b/src/NzbDrone.Core.Test/Profiles/Releases/PreferredWordService/CalculateFixture.cs index 6329b9a36..dddca96d0 100644 --- a/src/NzbDrone.Core.Test/Profiles/Releases/PreferredWordService/CalculateFixture.cs +++ b/src/NzbDrone.Core.Test/Profiles/Releases/PreferredWordService/CalculateFixture.cs @@ -13,14 +13,14 @@ namespace NzbDrone.Core.Test.Profiles.Releases.PreferredWordService [TestFixture] public class CalculateFixture : CoreTest { - private Author _artist = null; + private Author _author = null; private List _releaseProfiles = null; - private string _title = "Artist.Name-Album.Title.2018.FLAC.24bit-Readarr"; + private string _title = "Author.Name-Book.Title.2018.FLAC.24bit-Readarr"; [SetUp] public void Setup() { - _artist = Builder.CreateNew() + _author = Builder.CreateNew() .With(s => s.Tags = new HashSet(new[] { 1, 2 })) .Build(); @@ -54,7 +54,7 @@ namespace NzbDrone.Core.Test.Profiles.Releases.PreferredWordService .Setup(s => s.EnabledForTags(It.IsAny>(), It.IsAny())) .Returns(new List()); - Subject.Calculate(_artist, _title, 0).Should().Be(0); + Subject.Calculate(_author, _title, 0).Should().Be(0); } [Test] @@ -62,7 +62,7 @@ namespace NzbDrone.Core.Test.Profiles.Releases.PreferredWordService { GivenMatchingTerms(); - Subject.Calculate(_artist, _title, 0).Should().Be(0); + Subject.Calculate(_author, _title, 0).Should().Be(0); } [Test] @@ -70,7 +70,7 @@ namespace NzbDrone.Core.Test.Profiles.Releases.PreferredWordService { GivenMatchingTerms("24bit"); - Subject.Calculate(_artist, _title, 0).Should().Be(5); + Subject.Calculate(_author, _title, 0).Should().Be(5); } [Test] @@ -78,7 +78,7 @@ namespace NzbDrone.Core.Test.Profiles.Releases.PreferredWordService { GivenMatchingTerms("16bit"); - Subject.Calculate(_artist, _title, 0).Should().Be(-10); + Subject.Calculate(_author, _title, 0).Should().Be(-10); } [Test] @@ -88,7 +88,7 @@ namespace NzbDrone.Core.Test.Profiles.Releases.PreferredWordService GivenMatchingTerms("24bit"); - Subject.Calculate(_artist, _title, 0).Should().Be(10); + Subject.Calculate(_author, _title, 0).Should().Be(10); } } } diff --git a/src/NzbDrone.Core.Test/Profiles/Releases/PreferredWordService/GetMatchingPreferredWordsFixture.cs b/src/NzbDrone.Core.Test/Profiles/Releases/PreferredWordService/GetMatchingPreferredWordsFixture.cs index 4ba68414f..d49018d12 100644 --- a/src/NzbDrone.Core.Test/Profiles/Releases/PreferredWordService/GetMatchingPreferredWordsFixture.cs +++ b/src/NzbDrone.Core.Test/Profiles/Releases/PreferredWordService/GetMatchingPreferredWordsFixture.cs @@ -13,14 +13,14 @@ namespace NzbDrone.Core.Test.Profiles.Releases.PreferredWordService [TestFixture] public class GetMatchingPreferredWordsFixture : CoreTest { - private Author _artist = null; + private Author _author = null; private List _releaseProfiles = null; - private string _title = "Artist.Name-Album.Name-2018-Flac-Vinyl-Readarr"; + private string _title = "Author.Name-Book.Name-2018-Flac-Vinyl-Readarr"; [SetUp] public void Setup() { - _artist = Builder.CreateNew() + _author = Builder.CreateNew() .With(s => s.Tags = new HashSet(new[] { 1, 2 })) .Build(); @@ -54,7 +54,7 @@ namespace NzbDrone.Core.Test.Profiles.Releases.PreferredWordService .Setup(s => s.EnabledForTags(It.IsAny>(), It.IsAny())) .Returns(new List()); - Subject.GetMatchingPreferredWords(_artist, _title).Should().BeEmpty(); + Subject.GetMatchingPreferredWords(_author, _title).Should().BeEmpty(); } [Test] @@ -63,7 +63,7 @@ namespace NzbDrone.Core.Test.Profiles.Releases.PreferredWordService _releaseProfiles.First().Preferred.RemoveAt(0); GivenReleaseProfile(); - Subject.GetMatchingPreferredWords(_artist, _title).Should().BeEmpty(); + Subject.GetMatchingPreferredWords(_author, _title).Should().BeEmpty(); } [Test] @@ -71,7 +71,7 @@ namespace NzbDrone.Core.Test.Profiles.Releases.PreferredWordService { GivenReleaseProfile(); - Subject.GetMatchingPreferredWords(_artist, _title).Should().Contain(new[] { "Vinyl" }); + Subject.GetMatchingPreferredWords(_author, _title).Should().Contain(new[] { "Vinyl" }); } } } diff --git a/src/NzbDrone.Core.Test/QueueTests/QueueServiceFixture.cs b/src/NzbDrone.Core.Test/QueueTests/QueueServiceFixture.cs index 1e155bc39..64959f8d7 100644 --- a/src/NzbDrone.Core.Test/QueueTests/QueueServiceFixture.cs +++ b/src/NzbDrone.Core.Test/QueueTests/QueueServiceFixture.cs @@ -30,17 +30,17 @@ namespace NzbDrone.Core.Test.QueueTests .With(v => v.DownloadClientInfo = downloadClientInfo) .Build(); - var artist = Builder.CreateNew() + var author = Builder.CreateNew() .Build(); - var albums = Builder.CreateListOfSize(3) + var books = Builder.CreateListOfSize(3) .All() - .With(e => e.AuthorId = artist.Id) + .With(e => e.AuthorId = author.Id) .Build(); var remoteBook = Builder.CreateNew() - .With(r => r.Author = artist) - .With(r => r.Books = new List(albums)) + .With(r => r.Author = author) + .With(r => r.Books = new List(books)) .With(r => r.ParsedBookInfo = new ParsedBookInfo()) .Build(); diff --git a/src/NzbDrone.Core.Test/ValidationTests/SystemFolderValidatorFixture.cs b/src/NzbDrone.Core.Test/ValidationTests/SystemFolderValidatorFixture.cs index 71d39a36b..975c559d2 100644 --- a/src/NzbDrone.Core.Test/ValidationTests/SystemFolderValidatorFixture.cs +++ b/src/NzbDrone.Core.Test/ValidationTests/SystemFolderValidatorFixture.cs @@ -29,11 +29,11 @@ namespace NzbDrone.Core.Test.ValidationTests { WindowsOnly(); - var artist = Builder.CreateNew() + var author = Builder.CreateNew() .With(s => s.Path = Environment.GetFolderPath(Environment.SpecialFolder.Windows)) .Build(); - _validator.Validate(artist).IsValid.Should().BeFalse(); + _validator.Validate(author).IsValid.Should().BeFalse(); } [Test] @@ -41,11 +41,11 @@ namespace NzbDrone.Core.Test.ValidationTests { WindowsOnly(); - var artist = Builder.CreateNew() + var author = Builder.CreateNew() .With(s => s.Path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Windows), "Test")) .Build(); - _validator.Validate(artist).IsValid.Should().BeFalse(); + _validator.Validate(author).IsValid.Should().BeFalse(); } [Test] @@ -54,11 +54,11 @@ namespace NzbDrone.Core.Test.ValidationTests PosixOnly(); var bin = OsInfo.IsOsx ? "/System" : "/bin"; - var artist = Builder.CreateNew() + var author = Builder.CreateNew() .With(s => s.Path = bin) .Build(); - _validator.Validate(artist).IsValid.Should().BeFalse(); + _validator.Validate(author).IsValid.Should().BeFalse(); } [Test] @@ -67,11 +67,11 @@ namespace NzbDrone.Core.Test.ValidationTests PosixOnly(); var bin = OsInfo.IsOsx ? "/System" : "/bin"; - var artist = Builder.CreateNew() + var author = Builder.CreateNew() .With(s => s.Path = Path.Combine(bin, "test")) .Build(); - _validator.Validate(artist).IsValid.Should().BeFalse(); + _validator.Validate(author).IsValid.Should().BeFalse(); } } } diff --git a/src/NzbDrone.Core/AuthorStats/AuthorStatisticsService.cs b/src/NzbDrone.Core/AuthorStats/AuthorStatisticsService.cs index a986d6880..39c5e5f42 100644 --- a/src/NzbDrone.Core/AuthorStats/AuthorStatisticsService.cs +++ b/src/NzbDrone.Core/AuthorStats/AuthorStatisticsService.cs @@ -37,7 +37,7 @@ namespace NzbDrone.Core.AuthorStats { var bookStatistics = _cache.Get("AllAuthors", () => _authorStatisticsRepository.AuthorStatistics()); - return bookStatistics.GroupBy(s => s.AuthorId).Select(s => MapArtistStatistics(s.ToList())).ToList(); + return bookStatistics.GroupBy(s => s.AuthorId).Select(s => MapAuthorStatistics(s.ToList())).ToList(); } public AuthorStatistics AuthorStatistics(int authorId) @@ -49,10 +49,10 @@ namespace NzbDrone.Core.AuthorStats return new AuthorStatistics(); } - return MapArtistStatistics(stats); + return MapAuthorStatistics(stats); } - private AuthorStatistics MapArtistStatistics(List bookStatistics) + private AuthorStatistics MapAuthorStatistics(List bookStatistics) { var authorStatistics = new AuthorStatistics { diff --git a/src/NzbDrone.Core/Blacklisting/BlacklistRepository.cs b/src/NzbDrone.Core/Blacklisting/BlacklistRepository.cs index 4384ccf00..8063e4428 100644 --- a/src/NzbDrone.Core/Blacklisting/BlacklistRepository.cs +++ b/src/NzbDrone.Core/Blacklisting/BlacklistRepository.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System.Collections.Generic; +using NzbDrone.Core.Books; using NzbDrone.Core.Datastore; using NzbDrone.Core.Messaging.Events; @@ -8,7 +9,7 @@ namespace NzbDrone.Core.Blacklisting { List BlacklistedByTitle(int authorId, string sourceTitle); List BlacklistedByTorrentInfoHash(int authorId, string torrentInfoHash); - List BlacklistedByArtist(int authorId); + List BlacklistedByAuthor(int authorId); } public class BlacklistRepository : BasicRepository, IBlacklistRepository @@ -28,7 +29,7 @@ namespace NzbDrone.Core.Blacklisting return Query(e => e.AuthorId == authorId && e.TorrentInfoHash.Contains(torrentInfoHash)); } - public List BlacklistedByArtist(int authorId) + public List BlacklistedByAuthor(int authorId) { return Query(b => b.AuthorId == authorId); } diff --git a/src/NzbDrone.Core/Blacklisting/BlacklistService.cs b/src/NzbDrone.Core/Blacklisting/BlacklistService.cs index 0cd0a7d8b..b3585a4a1 100644 --- a/src/NzbDrone.Core/Blacklisting/BlacklistService.cs +++ b/src/NzbDrone.Core/Blacklisting/BlacklistService.cs @@ -163,7 +163,7 @@ namespace NzbDrone.Core.Blacklisting public void HandleAsync(AuthorDeletedEvent message) { - var blacklisted = _blacklistRepository.BlacklistedByArtist(message.Author.Id); + var blacklisted = _blacklistRepository.BlacklistedByAuthor(message.Author.Id); _blacklistRepository.DeleteMany(blacklisted); } diff --git a/src/NzbDrone.Core/Books/Handlers/AuthorEditedHandler.cs b/src/NzbDrone.Core/Books/Handlers/AuthorEditedHandler.cs index 2fd8660c3..0dae018f2 100644 --- a/src/NzbDrone.Core/Books/Handlers/AuthorEditedHandler.cs +++ b/src/NzbDrone.Core/Books/Handlers/AuthorEditedHandler.cs @@ -16,7 +16,7 @@ namespace NzbDrone.Core.Books public void Handle(AuthorEditedEvent message) { - // Refresh Author is we change AlbumType Preferences + // Refresh Author is we change BookType Preferences if (message.Author.MetadataProfileId != message.OldAuthor.MetadataProfileId) { _commandQueueManager.Push(new RefreshAuthorCommand(message.Author.Id, false)); diff --git a/src/NzbDrone.Core/Books/Model/Author.cs b/src/NzbDrone.Core/Books/Model/Author.cs index 0d22382db..930261369 100644 --- a/src/NzbDrone.Core/Books/Model/Author.cs +++ b/src/NzbDrone.Core/Books/Model/Author.cs @@ -16,7 +16,7 @@ namespace NzbDrone.Core.Books Metadata = new AuthorMetadata(); } - // These correspond to columns in the Artists table + // These correspond to columns in the Authors table public int AuthorMetadataId { get; set; } public string CleanName { get; set; } public string SortName { get; set; } diff --git a/src/NzbDrone.Core/Books/Model/Book.cs b/src/NzbDrone.Core/Books/Model/Book.cs index 26bf4712d..960ace724 100644 --- a/src/NzbDrone.Core/Books/Model/Book.cs +++ b/src/NzbDrone.Core/Books/Model/Book.cs @@ -19,7 +19,7 @@ namespace NzbDrone.Core.Books AddOptions = new AddBookOptions(); } - // These correspond to columns in the Albums table + // These correspond to columns in the Books table // These are metadata entries public int AuthorMetadataId { get; set; } public string ForeignBookId { get; set; } @@ -51,7 +51,7 @@ namespace NzbDrone.Core.Books [MemberwiseEqualityIgnore] public LazyLoaded> SeriesLinks { get; set; } - //compatibility properties with old version of Album + //compatibility properties with old version of Book [MemberwiseEqualityIgnore] [JsonIgnore] public int AuthorId diff --git a/src/NzbDrone.Core/Books/Model/Edition.cs b/src/NzbDrone.Core/Books/Model/Edition.cs index fc9d40dae..657f70a7c 100644 --- a/src/NzbDrone.Core/Books/Model/Edition.cs +++ b/src/NzbDrone.Core/Books/Model/Edition.cs @@ -18,7 +18,7 @@ namespace NzbDrone.Core.Books Ratings = new Ratings(); } - // These correspond to columns in the Albums table + // These correspond to columns in the Books table // These are metadata entries public int BookId { get; set; } public string ForeignEditionId { get; set; } diff --git a/src/NzbDrone.Core/Books/Repositories/BookRepository.cs b/src/NzbDrone.Core/Books/Repositories/BookRepository.cs index 46aba94ac..a4dc07ed6 100644 --- a/src/NzbDrone.Core/Books/Repositories/BookRepository.cs +++ b/src/NzbDrone.Core/Books/Repositories/BookRepository.cs @@ -89,7 +89,7 @@ namespace NzbDrone.Core.Books //x.Id == null is converted to SQL, so warning incorrect #pragma warning disable CS0472 - private SqlBuilder AlbumsWithoutFilesBuilder(DateTime currentTime) => Builder() + private SqlBuilder BooksWithoutFilesBuilder(DateTime currentTime) => Builder() .Join((l, r) => l.AuthorMetadataId == r.AuthorMetadataId) .Join((b, e) => b.Id == e.BookId) .LeftJoin((t, f) => t.Id == f.EditionId) @@ -101,13 +101,13 @@ namespace NzbDrone.Core.Books { var currentTime = DateTime.UtcNow; - pagingSpec.Records = GetPagedRecords(AlbumsWithoutFilesBuilder(currentTime), pagingSpec, PagedQuery); - pagingSpec.TotalRecords = GetPagedRecordCount(AlbumsWithoutFilesBuilder(currentTime).SelectCountDistinct(x => x.Id), pagingSpec); + pagingSpec.Records = GetPagedRecords(BooksWithoutFilesBuilder(currentTime), pagingSpec, PagedQuery); + pagingSpec.TotalRecords = GetPagedRecordCount(BooksWithoutFilesBuilder(currentTime).SelectCountDistinct(x => x.Id), pagingSpec); return pagingSpec; } - private SqlBuilder AlbumsWhereCutoffUnmetBuilder(List qualitiesBelowCutoff) => Builder() + private SqlBuilder BooksWhereCutoffUnmetBuilder(List qualitiesBelowCutoff) => Builder() .Join((l, r) => l.AuthorMetadataId == r.AuthorMetadataId) .Join((b, e) => b.Id == e.BookId) .LeftJoin((t, f) => t.Id == f.EditionId) @@ -130,10 +130,10 @@ namespace NzbDrone.Core.Books public PagingSpec BooksWhereCutoffUnmet(PagingSpec pagingSpec, List qualitiesBelowCutoff) { - pagingSpec.Records = GetPagedRecords(AlbumsWhereCutoffUnmetBuilder(qualitiesBelowCutoff), pagingSpec, PagedQuery); + pagingSpec.Records = GetPagedRecords(BooksWhereCutoffUnmetBuilder(qualitiesBelowCutoff), pagingSpec, PagedQuery); var countTemplate = $"SELECT COUNT(*) FROM (SELECT /**select**/ FROM {TableMapping.Mapper.TableNameMapping(typeof(Book))} /**join**/ /**innerjoin**/ /**leftjoin**/ /**where**/ /**groupby**/ /**having**/)"; - pagingSpec.TotalRecords = GetPagedRecordCount(AlbumsWhereCutoffUnmetBuilder(qualitiesBelowCutoff).Select(typeof(Book)), pagingSpec, countTemplate); + pagingSpec.TotalRecords = GetPagedRecordCount(BooksWhereCutoffUnmetBuilder(qualitiesBelowCutoff).Select(typeof(Book)), pagingSpec, countTemplate); return pagingSpec; } @@ -176,8 +176,8 @@ namespace NzbDrone.Core.Books public void SetMonitored(IEnumerable ids, bool monitored) { - var albums = ids.Select(x => new Book { Id = x, Monitored = monitored }).ToList(); - SetFields(albums, p => p.Monitored); + var books = ids.Select(x => new Book { Id = x, Monitored = monitored }).ToList(); + SetFields(books, p => p.Monitored); } public Book FindByTitle(int authorMetadataId, string title) diff --git a/src/NzbDrone.Core/Books/Repositories/EditionRepository.cs b/src/NzbDrone.Core/Books/Repositories/EditionRepository.cs index 1e6186184..ba01413da 100644 --- a/src/NzbDrone.Core/Books/Repositories/EditionRepository.cs +++ b/src/NzbDrone.Core/Books/Repositories/EditionRepository.cs @@ -12,7 +12,7 @@ namespace NzbDrone.Core.Books Edition FindByForeignEditionId(string foreignEditionId); List FindByBook(int id); List FindByAuthor(int id); - List GetEditionsForRefresh(int albumId, IEnumerable foreignEditionIds); + List GetEditionsForRefresh(int bookId, IEnumerable foreignEditionIds); List SetMonitored(Edition edition); } @@ -30,14 +30,14 @@ namespace NzbDrone.Core.Books return edition; } - public List GetEditionsForRefresh(int albumId, IEnumerable foreignEditionIds) + public List GetEditionsForRefresh(int bookId, IEnumerable foreignEditionIds) { - return Query(r => r.BookId == albumId || foreignEditionIds.Contains(r.ForeignEditionId)); + return Query(r => r.BookId == bookId || foreignEditionIds.Contains(r.ForeignEditionId)); } public List FindByBook(int id) { - // populate the albums and artist metadata also + // populate the books and author metadata also // this hopefully speeds up the track matching a lot var builder = new SqlBuilder() .LeftJoin((e, b) => e.BookId == b.Id) diff --git a/src/NzbDrone.Core/Books/Services/BookService.cs b/src/NzbDrone.Core/Books/Services/BookService.cs index 2ba5e6776..319566b48 100644 --- a/src/NzbDrone.Core/Books/Services/BookService.cs +++ b/src/NzbDrone.Core/Books/Services/BookService.cs @@ -21,7 +21,7 @@ namespace NzbDrone.Core.Books List GetBooksByAuthorMetadataId(int authorMetadataId); List GetBooksForRefresh(int authorMetadataId, IEnumerable foreignIds); List GetBooksByFileIds(IEnumerable fileIds); - Book AddBook(Book newAlbum, bool doRefresh = true); + Book AddBook(Book newBook, bool doRefresh = true); Book FindById(string foreignId); Book FindBySlug(string titleSlug); Book FindByTitle(int authorMetadataId, string title); @@ -153,7 +153,7 @@ namespace NzbDrone.Core.Books var sortedBooks = books.Select(s => new { MatchProb = scoreFunction(s, title), - Album = s + Book = s }) .ToList() .OrderByDescending(s => s.MatchProb) @@ -161,7 +161,7 @@ namespace NzbDrone.Core.Books return sortedBooks.TakeWhile((x, i) => i == 0 || sortedBooks[i - 1].MatchProb - x.MatchProb < fuzzGap) .TakeWhile((x, i) => x.MatchProb > fuzzThreshold || (i > 0 && sortedBooks[i - 1].MatchProb > fuzzThreshold)) - .Select(x => x.Album) + .Select(x => x.Book) .ToList(); } diff --git a/src/NzbDrone.Core/Books/Services/EditionService.cs b/src/NzbDrone.Core/Books/Services/EditionService.cs index 608804476..6e2048736 100644 --- a/src/NzbDrone.Core/Books/Services/EditionService.cs +++ b/src/NzbDrone.Core/Books/Services/EditionService.cs @@ -13,7 +13,7 @@ namespace NzbDrone.Core.Books void InsertMany(List editions); void UpdateMany(List editions); void DeleteMany(List editions); - List GetEditionsForRefresh(int albumId, IEnumerable foreignEditionIds); + List GetEditionsForRefresh(int bookId, IEnumerable foreignEditionIds); List GetEditionsByBook(int bookId); List GetEditionsByAuthor(int authorId); List SetMonitored(Edition edition); @@ -66,9 +66,9 @@ namespace NzbDrone.Core.Books } } - public List GetEditionsForRefresh(int albumId, IEnumerable foreignEditionIds) + public List GetEditionsForRefresh(int bookId, IEnumerable foreignEditionIds) { - return _editionRepository.GetEditionsForRefresh(albumId, foreignEditionIds); + return _editionRepository.GetEditionsForRefresh(bookId, foreignEditionIds); } public List GetEditionsByBook(int bookId) diff --git a/src/NzbDrone.Core/Books/Services/MoveAuthorService.cs b/src/NzbDrone.Core/Books/Services/MoveAuthorService.cs index 5bef3065f..c3413997a 100644 --- a/src/NzbDrone.Core/Books/Services/MoveAuthorService.cs +++ b/src/NzbDrone.Core/Books/Services/MoveAuthorService.cs @@ -38,7 +38,7 @@ namespace NzbDrone.Core.Books _logger = logger; } - private void MoveSingleArtist(Author author, string sourcePath, string destinationPath, int? index = null, int? total = null) + private void MoveSingleAuthor(Author author, string sourcePath, string destinationPath, int? index = null, int? total = null) { if (!_diskProvider.FolderExists(sourcePath)) { @@ -84,7 +84,7 @@ namespace NzbDrone.Core.Books public void Execute(MoveAuthorCommand message) { var author = _authorService.GetAuthor(message.AuthorId); - MoveSingleArtist(author, message.SourcePath, message.DestinationPath); + MoveSingleAuthor(author, message.SourcePath, message.DestinationPath); } public void Execute(BulkMoveAuthorCommand message) @@ -100,7 +100,7 @@ namespace NzbDrone.Core.Books var author = _authorService.GetAuthor(s.AuthorId); var destinationPath = Path.Combine(destinationRootFolder, _filenameBuilder.GetAuthorFolder(author)); - MoveSingleArtist(author, s.SourcePath, destinationPath, index, authorToMove.Count); + MoveSingleAuthor(author, s.SourcePath, destinationPath, index, authorToMove.Count); } _logger.ProgressInfo("Finished moving {0} author to '{1}'", authorToMove.Count, destinationRootFolder); diff --git a/src/NzbDrone.Core/Books/Services/RefreshAuthorService.cs b/src/NzbDrone.Core/Books/Services/RefreshAuthorService.cs index 7cd1f6e76..895ec0ab5 100644 --- a/src/NzbDrone.Core/Books/Services/RefreshAuthorService.cs +++ b/src/NzbDrone.Core/Books/Services/RefreshAuthorService.cs @@ -327,7 +327,7 @@ namespace NzbDrone.Core.Books } } - private void RefreshSelectedArtists(List authorIds, bool isNew, CommandTrigger trigger) + private void RefreshSelectedAuthors(List authorIds, bool isNew, CommandTrigger trigger) { var updated = false; var authors = _authorService.GetAuthors(authorIds); @@ -350,7 +350,7 @@ namespace NzbDrone.Core.Books public void Execute(BulkRefreshAuthorCommand message) { - RefreshSelectedArtists(message.AuthorIds, message.AreNewAuthors, message.Trigger); + RefreshSelectedAuthors(message.AuthorIds, message.AreNewAuthors, message.Trigger); } public void Execute(RefreshAuthorCommand message) @@ -360,7 +360,7 @@ namespace NzbDrone.Core.Books if (message.AuthorId.HasValue) { - RefreshSelectedArtists(new List { message.AuthorId.Value }, isNew, trigger); + RefreshSelectedAuthors(new List { message.AuthorId.Value }, isNew, trigger); } else { @@ -372,7 +372,7 @@ namespace NzbDrone.Core.Books if (message.LastExecutionTime.HasValue && message.LastExecutionTime.Value.AddDays(14) > DateTime.UtcNow) { - updatedGoodreadsAuthors = _authorInfo.GetChangedArtists(message.LastStartTime.Value); + updatedGoodreadsAuthors = _authorInfo.GetChangedAuthors(message.LastStartTime.Value); } foreach (var author in authors) diff --git a/src/NzbDrone.Core/Books/Services/RefreshBookService.cs b/src/NzbDrone.Core/Books/Services/RefreshBookService.cs index f4c2d48f7..cf1f8a56c 100644 --- a/src/NzbDrone.Core/Books/Services/RefreshBookService.cs +++ b/src/NzbDrone.Core/Books/Services/RefreshBookService.cs @@ -137,7 +137,7 @@ namespace NzbDrone.Core.Books if (newAuthor == null) { var oldAuthor = local.Author.Value; - var addArtist = new Author + var addAuthor = new Author { Metadata = remote.AuthorMetadata.Value, MetadataProfileId = oldAuthor.MetadataProfileId, @@ -146,8 +146,8 @@ namespace NzbDrone.Core.Books Monitored = oldAuthor.Monitored, Tags = oldAuthor.Tags }; - _logger.Debug($"Adding missing parent author {addArtist}"); - _addAuthorService.AddAuthor(addArtist); + _logger.Debug($"Adding missing parent author {addAuthor}"); + _addAuthorService.AddAuthor(addAuthor); } } @@ -192,7 +192,7 @@ namespace NzbDrone.Core.Books // Force update and fetch covers if images have changed so that we can write them into tags // if (remote.Images.Any() && !local.Images.SequenceEqual(remote.Images)) // { - // _mediaCoverService.EnsureAlbumCovers(remote); + // _mediaCoverService.EnsureBookCovers(remote); // result = UpdateResult.UpdateTags; // } local.UseMetadataFrom(remote); @@ -328,7 +328,7 @@ namespace NzbDrone.Core.Books _eventAggregator.PublishEvent(new BookUpdatedEvent(_bookService.GetBook(entity.Id))); } - public bool RefreshBookInfo(List books, List remoteBooks, Author remoteData, bool forceAlbumRefresh, bool forceUpdateFileTags, DateTime? lastUpdate) + public bool RefreshBookInfo(List books, List remoteBooks, Author remoteData, bool forceBookRefresh, bool forceUpdateFileTags, DateTime? lastUpdate) { var updated = false; @@ -341,7 +341,7 @@ namespace NzbDrone.Core.Books foreach (var book in books) { - if (forceAlbumRefresh || + if (forceBookRefresh || (updatedGoodreadsBooks == null && _checkIfBookShouldBeRefreshed.ShouldRefresh(book)) || (updatedGoodreadsBooks != null && updatedGoodreadsBooks.Contains(book.ForeignBookId))) { diff --git a/src/NzbDrone.Core/Books/Services/RefreshEntityServiceBase.cs b/src/NzbDrone.Core/Books/Services/RefreshEntityServiceBase.cs index 9bcd1a555..a5d4e199e 100644 --- a/src/NzbDrone.Core/Books/Services/RefreshEntityServiceBase.cs +++ b/src/NzbDrone.Core/Books/Services/RefreshEntityServiceBase.cs @@ -134,7 +134,7 @@ namespace NzbDrone.Core.Books if (data.Metadata != null) { - var metadataResult = UpdateArtistMetadata(data.Metadata); + var metadataResult = UpdateAuthorMetadata(data.Metadata); updated |= metadataResult >= UpdateResult.Standard; forceUpdateFileTags |= metadataResult == UpdateResult.UpdateTags; } @@ -206,7 +206,7 @@ namespace NzbDrone.Core.Books return updated; } - public UpdateResult UpdateArtistMetadata(List data) + public UpdateResult UpdateAuthorMetadata(List data) { var remoteMetadata = data.DistinctBy(x => x.ForeignAuthorId).ToList(); var updated = _authorMetadataService.UpsertMany(remoteMetadata); diff --git a/src/NzbDrone.Core/Books/Services/RefreshSeriesService.cs b/src/NzbDrone.Core/Books/Services/RefreshSeriesService.cs index 23f668b32..450335284 100644 --- a/src/NzbDrone.Core/Books/Services/RefreshSeriesService.cs +++ b/src/NzbDrone.Core/Books/Services/RefreshSeriesService.cs @@ -9,7 +9,7 @@ namespace NzbDrone.Core.Books { public interface IRefreshSeriesService { - bool RefreshSeriesInfo(int authorMetadataId, List remoteBooks, Author remoteData, bool forceAlbumRefresh, bool forceUpdateFileTags, DateTime? lastUpdate); + bool RefreshSeriesInfo(int authorMetadataId, List remoteBooks, Author remoteData, bool forceBookRefresh, bool forceUpdateFileTags, DateTime? lastUpdate); } public class RefreshSeriesService : RefreshEntityServiceBase, IRefreshSeriesService @@ -120,7 +120,7 @@ namespace NzbDrone.Core.Books return _refreshLinkService.RefreshSeriesBookLinkInfo(localChildren.Added, localChildren.Updated, localChildren.Merged, localChildren.Deleted, localChildren.UpToDate, remoteChildren, forceUpdateFileTags); } - public bool RefreshSeriesInfo(int authorMetadataId, List remoteSeries, Author remoteData, bool forceAlbumRefresh, bool forceUpdateFileTags, DateTime? lastUpdate) + public bool RefreshSeriesInfo(int authorMetadataId, List remoteSeries, Author remoteData, bool forceBookRefresh, bool forceUpdateFileTags, DateTime? lastUpdate) { var updated = false; diff --git a/src/NzbDrone.Core/Books/Utilities/ShouldRefreshAuthor.cs b/src/NzbDrone.Core/Books/Utilities/ShouldRefreshAuthor.cs index 523cccf3a..ddf1537b6 100644 --- a/src/NzbDrone.Core/Books/Utilities/ShouldRefreshAuthor.cs +++ b/src/NzbDrone.Core/Books/Utilities/ShouldRefreshAuthor.cs @@ -40,9 +40,9 @@ namespace NzbDrone.Core.Books return true; } - var lastAlbum = _bookService.GetBooksByAuthor(author.Id).OrderByDescending(e => e.ReleaseDate).FirstOrDefault(); + var lastBook = _bookService.GetBooksByAuthor(author.Id).OrderByDescending(e => e.ReleaseDate).FirstOrDefault(); - if (lastAlbum != null && lastAlbum.ReleaseDate > DateTime.UtcNow.AddDays(-30)) + if (lastBook != null && lastBook.ReleaseDate > DateTime.UtcNow.AddDays(-30)) { _logger.Trace("Last book in {0} released less than 30 days ago, should refresh.", author.Name); return true; diff --git a/src/NzbDrone.Core/Configuration/ConfigService.cs b/src/NzbDrone.Core/Configuration/ConfigService.cs index 86408e2d7..4e2e123e5 100644 --- a/src/NzbDrone.Core/Configuration/ConfigService.cs +++ b/src/NzbDrone.Core/Configuration/ConfigService.cs @@ -15,7 +15,7 @@ namespace NzbDrone.Core.Configuration { public enum ConfigKey { - DownloadedAlbumsFolder + DownloadedBooksFolder } public class ConfigService : IConfigService diff --git a/src/NzbDrone.Core/Datastore/Migration/006_remove_chown_and_folderchmod_config.cs b/src/NzbDrone.Core/Datastore/Migration/006_remove_chown_and_folderchmod_config.cs index a1ead826d..8ae941761 100644 --- a/src/NzbDrone.Core/Datastore/Migration/006_remove_chown_and_folderchmod_config.cs +++ b/src/NzbDrone.Core/Datastore/Migration/006_remove_chown_and_folderchmod_config.cs @@ -53,4 +53,4 @@ namespace NzbDrone.Core.Datastore.Migration } } } -} \ No newline at end of file +} diff --git a/src/NzbDrone.Core/DecisionEngine/DownloadDecisionMaker.cs b/src/NzbDrone.Core/DecisionEngine/DownloadDecisionMaker.cs index f1a7da30f..cc2f99956 100644 --- a/src/NzbDrone.Core/DecisionEngine/DownloadDecisionMaker.cs +++ b/src/NzbDrone.Core/DecisionEngine/DownloadDecisionMaker.cs @@ -81,7 +81,7 @@ namespace NzbDrone.Core.DecisionEngine else { // try parsing fuzzy - parsedBookInfo = _parsingService.ParseAlbumTitleFuzzy(report.Title); + parsedBookInfo = _parsingService.ParseBookTitleFuzzy(report.Title); } } @@ -156,23 +156,23 @@ namespace NzbDrone.Core.DecisionEngine if (searchCriteria != null) { - if (parsedAlbumInfo == null) + if (parsedBookInfo == null) { - parsedAlbumInfo = new ParsedAlbumInfo + parsedBookInfo = new ParsedBookInfo { - Quality = QualityParser.ParseQuality(report.Title, null, 0) + Quality = QualityParser.ParseQuality(report.Title, null) }; } - if (parsedAlbumInfo.ArtistName.IsNullOrWhiteSpace()) + if (parsedBookInfo.AuthorName.IsNullOrWhiteSpace()) { - var remoteAlbum = new RemoteAlbum + var remoteBook = new RemoteBook { Release = report, - ParsedAlbumInfo = parsedAlbumInfo + ParsedBookInfo = parsedBookInfo }; - decision = new DownloadDecision(remoteAlbum, new Rejection("Unable to parse release")); + decision = new DownloadDecision(remoteBook, new Rejection("Unable to parse release")); } } } diff --git a/src/NzbDrone.Core/DecisionEngine/Specifications/AcceptableSizeSpecification.cs b/src/NzbDrone.Core/DecisionEngine/Specifications/AcceptableSizeSpecification.cs index 399a18477..801216ebc 100644 --- a/src/NzbDrone.Core/DecisionEngine/Specifications/AcceptableSizeSpecification.cs +++ b/src/NzbDrone.Core/DecisionEngine/Specifications/AcceptableSizeSpecification.cs @@ -29,7 +29,7 @@ namespace NzbDrone.Core.DecisionEngine.Specifications /* _logger.Debug("Beginning size check for: {0}", subject); - var quality = subject.ParsedAlbumInfo.Quality.Quality; + var quality = subject.ParsedBookInfo.Quality.Quality; if (subject.Release.Size == 0) { diff --git a/src/NzbDrone.Core/DecisionEngine/Specifications/AlreadyImportedSpecification.cs b/src/NzbDrone.Core/DecisionEngine/Specifications/AlreadyImportedSpecification.cs index c80fddb4d..093be0366 100644 --- a/src/NzbDrone.Core/DecisionEngine/Specifications/AlreadyImportedSpecification.cs +++ b/src/NzbDrone.Core/DecisionEngine/Specifications/AlreadyImportedSpecification.cs @@ -52,15 +52,15 @@ namespace NzbDrone.Core.DecisionEngine.Specifications continue; } - var historyForAlbum = _historyService.GetByBook(book.Id, null); - var lastGrabbed = historyForAlbum.FirstOrDefault(h => h.EventType == HistoryEventType.Grabbed); + var historyForBook = _historyService.GetByBook(book.Id, null); + var lastGrabbed = historyForBook.FirstOrDefault(h => h.EventType == HistoryEventType.Grabbed); if (lastGrabbed == null) { continue; } - var imported = historyForAlbum.FirstOrDefault(h => + var imported = historyForBook.FirstOrDefault(h => h.EventType == HistoryEventType.DownloadImported && h.DownloadId == lastGrabbed.DownloadId); diff --git a/src/NzbDrone.Core/DecisionEngine/Specifications/DiscographySpecification.cs b/src/NzbDrone.Core/DecisionEngine/Specifications/DiscographySpecification.cs index 48d82a27e..945c58c3c 100644 --- a/src/NzbDrone.Core/DecisionEngine/Specifications/DiscographySpecification.cs +++ b/src/NzbDrone.Core/DecisionEngine/Specifications/DiscographySpecification.cs @@ -23,12 +23,12 @@ namespace NzbDrone.Core.DecisionEngine.Specifications { if (subject.ParsedBookInfo.Discography) { - _logger.Debug("Checking if all albums in discography release have released. {0}", subject.Release.Title); + _logger.Debug("Checking if all books in discography release have released. {0}", subject.Release.Title); if (subject.Books.Any(e => !e.ReleaseDate.HasValue || e.ReleaseDate.Value.After(DateTime.UtcNow))) { - _logger.Debug("Discography release {0} rejected. All albums haven't released yet.", subject.Release.Title); - return Decision.Reject("Discography release rejected. All albums haven't released yet."); + _logger.Debug("Discography release {0} rejected. All books haven't released yet.", subject.Release.Title); + return Decision.Reject("Discography release rejected. All books haven't released yet."); } } diff --git a/src/NzbDrone.Core/DecisionEngine/Specifications/QueueSpecification.cs b/src/NzbDrone.Core/DecisionEngine/Specifications/QueueSpecification.cs index b1a53db2d..cda39ad91 100644 --- a/src/NzbDrone.Core/DecisionEngine/Specifications/QueueSpecification.cs +++ b/src/NzbDrone.Core/DecisionEngine/Specifications/QueueSpecification.cs @@ -34,12 +34,12 @@ namespace NzbDrone.Core.DecisionEngine.Specifications public Decision IsSatisfiedBy(RemoteBook subject, SearchCriteriaBase searchCriteria) { var queue = _queueService.GetQueue(); - var matchingAlbum = queue.Where(q => q.RemoteBook?.Author != null && + var matchingBook = queue.Where(q => q.RemoteBook?.Author != null && q.RemoteBook.Author.Id == subject.Author.Id && q.RemoteBook.Books.Select(e => e.Id).Intersect(subject.Books.Select(e => e.Id)).Any()) .ToList(); - foreach (var queueItem in matchingAlbum) + foreach (var queueItem in matchingBook) { var remoteBook = queueItem.RemoteBook; var qualityProfile = subject.Author.QualityProfile.Value; @@ -68,7 +68,7 @@ namespace NzbDrone.Core.DecisionEngine.Specifications _logger.Debug("Checking if release is higher quality than queued release. Queued: {0}", remoteBook.ParsedBookInfo.Quality); if (!_upgradableSpecification.IsUpgradable(qualityProfile, - new List { remoteBook.ParsedBookInfo.Quality }, + remoteBook.ParsedBookInfo.Quality, queuedItemPreferredWordScore, subject.ParsedBookInfo.Quality, subject.PreferredWordScore)) @@ -79,7 +79,7 @@ namespace NzbDrone.Core.DecisionEngine.Specifications _logger.Debug("Checking if profiles allow upgrading. Queued: {0}", remoteBook.ParsedBookInfo.Quality); if (!_upgradableSpecification.IsUpgradeAllowed(qualityProfile, - new List { remoteBook.ParsedBookInfo.Quality }, + remoteBook.ParsedBookInfo.Quality, subject.ParsedBookInfo.Quality)) { return Decision.Reject("Another release is queued and the Quality profile does not allow upgrades"); diff --git a/src/NzbDrone.Core/DecisionEngine/Specifications/RssSync/HistorySpecification.cs b/src/NzbDrone.Core/DecisionEngine/Specifications/RssSync/HistorySpecification.cs index 7b700696a..0c5557362 100644 --- a/src/NzbDrone.Core/DecisionEngine/Specifications/RssSync/HistorySpecification.cs +++ b/src/NzbDrone.Core/DecisionEngine/Specifications/RssSync/HistorySpecification.cs @@ -60,8 +60,8 @@ namespace NzbDrone.Core.DecisionEngine.Specifications.RssSync continue; } - // The artist will be the same as the one in history since it's the same album. - // Instead of fetching the artist from the DB reuse the known artist. + // The author will be the same as the one in history since it's the same book. + // Instead of fetching the author from the DB reuse the known author. var preferredWordScore = _preferredWordServiceCalculator.Calculate(subject.Author, mostRecent.SourceTitle, subject.Release?.IndexerId ?? 0); var cutoffUnmet = _upgradableSpecification.CutoffNotMet( @@ -73,7 +73,7 @@ namespace NzbDrone.Core.DecisionEngine.Specifications.RssSync var upgradeable = _upgradableSpecification.IsUpgradable( subject.Author.QualityProfile, - new List { mostRecent.Quality }, + mostRecent.Quality, preferredWordScore, subject.ParsedBookInfo.Quality, subject.PreferredWordScore); diff --git a/src/NzbDrone.Core/DecisionEngine/Specifications/UpgradableSpecification.cs b/src/NzbDrone.Core/DecisionEngine/Specifications/UpgradableSpecification.cs index a471d1028..ca76e5a8b 100644 --- a/src/NzbDrone.Core/DecisionEngine/Specifications/UpgradableSpecification.cs +++ b/src/NzbDrone.Core/DecisionEngine/Specifications/UpgradableSpecification.cs @@ -9,11 +9,11 @@ namespace NzbDrone.Core.DecisionEngine.Specifications { public interface IUpgradableSpecification { - bool IsUpgradable(QualityProfile profile, List currentQualities, int currentScore, QualityModel newQuality, int newScore); + bool IsUpgradable(QualityProfile profile, QualityModel currentQualities, int currentScore, QualityModel newQuality, int newScore); bool QualityCutoffNotMet(QualityProfile profile, QualityModel currentQuality, QualityModel newQuality = null); bool CutoffNotMet(QualityProfile profile, List currentQualities, int currentScore, QualityModel newQuality = null, int newScore = 0); bool IsRevisionUpgrade(QualityModel currentQuality, QualityModel newQuality); - bool IsUpgradeAllowed(QualityProfile qualityProfile, List currentQualities, QualityModel newQuality); + bool IsUpgradeAllowed(QualityProfile qualityProfile, QualityModel currentQuality, QualityModel newQuality); } public class UpgradableSpecification : IUpgradableSpecification @@ -27,23 +27,20 @@ namespace NzbDrone.Core.DecisionEngine.Specifications _logger = logger; } - private ProfileComparisonResult IsQualityUpgradable(QualityProfile profile, List currentQualities, QualityModel newQuality = null) + private ProfileComparisonResult IsQualityUpgradable(QualityProfile profile, QualityModel currentQuality, QualityModel newQuality = null) { if (newQuality != null) { var totalCompare = 0; - foreach (var quality in currentQualities) - { - var compare = new QualityModelComparer(profile).Compare(newQuality, quality); + var compare = new QualityModelComparer(profile).Compare(newQuality, currentQuality); - totalCompare += compare; + totalCompare += compare; - if (compare < 0) - { - // Not upgradable if new quality is a downgrade for any current quality - return ProfileComparisonResult.Downgrade; - } + if (compare < 0) + { + // Not upgradable if new quality is a downgrade for any current quality + return ProfileComparisonResult.Downgrade; } // Not upgradable if new quality is equal to all current qualities @@ -52,12 +49,13 @@ namespace NzbDrone.Core.DecisionEngine.Specifications return ProfileComparisonResult.Equal; } - // Quality Treated as Equal if Propers are not Prefered + // Accept unless the user doesn't want to prefer propers, optionally they can + // use preferred words to prefer propers/repacks over non-propers/repacks. if (_configService.DownloadPropersAndRepacks == ProperDownloadTypes.DoNotPrefer && - newQuality.Revision.CompareTo(currentQualities.Min(q => q.Revision)) > 0) - { - return ProfileComparisonResult.Equal; - } + newQuality?.Revision.CompareTo(currentQuality.Revision) > 0) + { + return ProfileComparisonResult.Equal; + } } return ProfileComparisonResult.Upgrade; @@ -70,7 +68,7 @@ namespace NzbDrone.Core.DecisionEngine.Specifications return newScore > currentScore; } - public bool IsUpgradable(QualityProfile qualityProfile, List currentQualities, int currentScore, QualityModel newQuality, int newScore) + public bool IsUpgradable(QualityProfile qualityProfile, QualityModel currentQualities, int currentScore, QualityModel newQuality, int newScore) { var qualityUpgrade = IsQualityUpgradable(qualityProfile, currentQualities, newQuality); @@ -147,9 +145,9 @@ namespace NzbDrone.Core.DecisionEngine.Specifications return false; } - public bool IsUpgradeAllowed(QualityProfile qualityProfile, List currentQualities, QualityModel newQuality) + public bool IsUpgradeAllowed(QualityProfile qualityProfile, QualityModel currentQuality, QualityModel newQuality) { - var isQualityUpgrade = IsQualityUpgradable(qualityProfile, currentQualities, newQuality); + var isQualityUpgrade = IsQualityUpgradable(qualityProfile, currentQuality, newQuality); return CheckUpgradeAllowed(qualityProfile, isQualityUpgrade); } diff --git a/src/NzbDrone.Core/DecisionEngine/Specifications/UpgradeAllowedSpecification.cs b/src/NzbDrone.Core/DecisionEngine/Specifications/UpgradeAllowedSpecification.cs index 42ce9c70c..1d6828697 100644 --- a/src/NzbDrone.Core/DecisionEngine/Specifications/UpgradeAllowedSpecification.cs +++ b/src/NzbDrone.Core/DecisionEngine/Specifications/UpgradeAllowedSpecification.cs @@ -35,13 +35,10 @@ namespace NzbDrone.Core.DecisionEngine.Specifications continue; } - // Get a distinct list of all current track qualities for a given book - var currentQualities = new List { file.Quality }; - - _logger.Debug("Comparing file quality with report. Existing files contain {0}", currentQualities.ConcatToString()); + _logger.Debug("Comparing file quality with report. Existing files contain {0}", file.Quality); if (!_upgradableSpecification.IsUpgradeAllowed(qualityProfile, - currentQualities, + file.Quality, subject.ParsedBookInfo.Quality)) { _logger.Debug("Upgrading is not allowed by the quality profile"); diff --git a/src/NzbDrone.Core/DecisionEngine/Specifications/UpgradeDiskSpecification.cs b/src/NzbDrone.Core/DecisionEngine/Specifications/UpgradeDiskSpecification.cs index 11a64c7a0..03278fb02 100644 --- a/src/NzbDrone.Core/DecisionEngine/Specifications/UpgradeDiskSpecification.cs +++ b/src/NzbDrone.Core/DecisionEngine/Specifications/UpgradeDiskSpecification.cs @@ -32,18 +32,16 @@ namespace NzbDrone.Core.DecisionEngine.Specifications { if (file == null) { - _logger.Debug("File is no longer available, skipping this file."); - continue; + return Decision.Accept(); } - if (!_upgradableSpecification.IsUpgradable(subject.Author.QualityProfile, - currentQualities, - _preferredWordServiceCalculator.Calculate(subject.Author, file.GetSceneOrFileName(), subject.Release?.IndexerId ?? 0), - subject.ParsedBookInfo.Quality, - subject.PreferredWordScore)) - { - return Decision.Reject("Existing files on disk is of equal or higher preference: {0}", currentQualities.ConcatToString()); - } + if (!_upgradableSpecification.IsUpgradable(subject.Author.QualityProfile, + file.Quality, + _preferredWordServiceCalculator.Calculate(subject.Author, file.GetSceneOrFileName(), subject.Release?.IndexerId ?? 0), + subject.ParsedBookInfo.Quality, + subject.PreferredWordScore)) + { + return Decision.Reject("Existing files on disk is of equal or higher preference: {0}", file.Quality); } } diff --git a/src/NzbDrone.Core/Download/Aggregation/Aggregators/AggregatePreferredWordScore.cs b/src/NzbDrone.Core/Download/Aggregation/Aggregators/AggregatePreferredWordScore.cs index 92c09f7b8..3ae007811 100644 --- a/src/NzbDrone.Core/Download/Aggregation/Aggregators/AggregatePreferredWordScore.cs +++ b/src/NzbDrone.Core/Download/Aggregation/Aggregators/AggregatePreferredWordScore.cs @@ -14,7 +14,7 @@ namespace NzbDrone.Core.Download.Aggregation.Aggregators public RemoteBook Aggregate(RemoteBook remoteBook) { - remoteBook.PreferredWordScore = _preferredWordServiceCalculator.Calculate(remoteAlbum.Author, remoteBook.Release.Title, remoteBook.Release.IndexerId); + remoteBook.PreferredWordScore = _preferredWordServiceCalculator.Calculate(remoteBook.Author, remoteBook.Release.Title, remoteBook.Release.IndexerId); return remoteBook; } diff --git a/src/NzbDrone.Core/Download/Clients/Deluge/DelugeSettings.cs b/src/NzbDrone.Core/Download/Clients/Deluge/DelugeSettings.cs index a021ef252..e95c00d04 100644 --- a/src/NzbDrone.Core/Download/Clients/Deluge/DelugeSettings.cs +++ b/src/NzbDrone.Core/Download/Clients/Deluge/DelugeSettings.cs @@ -47,10 +47,10 @@ namespace NzbDrone.Core.Download.Clients.Deluge [FieldDefinition(5, Label = "Post-Import Category", Type = FieldType.Textbox, Advanced = true, HelpText = "Category for Readarr to set after it has imported the download. Readarr will not remove torrents in that category even if seeding finished. Leave blank to keep same category.")] public string MusicImportedCategory { get; set; } - [FieldDefinition(6, Label = "Recent Priority", Type = FieldType.Select, SelectOptions = typeof(DelugePriority), HelpText = "Priority to use when grabbing albums released within the last 14 days")] + [FieldDefinition(6, Label = "Recent Priority", Type = FieldType.Select, SelectOptions = typeof(DelugePriority), HelpText = "Priority to use when grabbing books released within the last 14 days")] public int RecentTvPriority { get; set; } - [FieldDefinition(7, Label = "Older Priority", Type = FieldType.Select, SelectOptions = typeof(DelugePriority), HelpText = "Priority to use when grabbing albums released over 14 days ago")] + [FieldDefinition(7, Label = "Older Priority", Type = FieldType.Select, SelectOptions = typeof(DelugePriority), HelpText = "Priority to use when grabbing books released over 14 days ago")] public int OlderTvPriority { get; set; } [FieldDefinition(8, Label = "Add Paused", Type = FieldType.Checkbox)] diff --git a/src/NzbDrone.Core/Download/Clients/NzbVortex/NzbVortexSettings.cs b/src/NzbDrone.Core/Download/Clients/NzbVortex/NzbVortexSettings.cs index f17dfd5d8..8cbb263ea 100644 --- a/src/NzbDrone.Core/Download/Clients/NzbVortex/NzbVortexSettings.cs +++ b/src/NzbDrone.Core/Download/Clients/NzbVortex/NzbVortexSettings.cs @@ -51,10 +51,10 @@ namespace NzbDrone.Core.Download.Clients.NzbVortex [FieldDefinition(4, Label = "Group", Type = FieldType.Textbox, HelpText = "Adding a category specific to Readarr avoids conflicts with unrelated downloads, but it's optional")] public string MusicCategory { get; set; } - [FieldDefinition(5, Label = "Recent Priority", Type = FieldType.Select, SelectOptions = typeof(NzbVortexPriority), HelpText = "Priority to use when grabbing albums released within the last 14 days")] + [FieldDefinition(5, Label = "Recent Priority", Type = FieldType.Select, SelectOptions = typeof(NzbVortexPriority), HelpText = "Priority to use when grabbing books released within the last 14 days")] public int RecentTvPriority { get; set; } - [FieldDefinition(6, Label = "Older Priority", Type = FieldType.Select, SelectOptions = typeof(NzbVortexPriority), HelpText = "Priority to use when grabbing albums released over 14 days ago")] + [FieldDefinition(6, Label = "Older Priority", Type = FieldType.Select, SelectOptions = typeof(NzbVortexPriority), HelpText = "Priority to use when grabbing books released over 14 days ago")] public int OlderTvPriority { get; set; } public NzbDroneValidationResult Validate() diff --git a/src/NzbDrone.Core/Download/Clients/Nzbget/NzbgetSettings.cs b/src/NzbDrone.Core/Download/Clients/Nzbget/NzbgetSettings.cs index 7480a42a3..88d8297f2 100644 --- a/src/NzbDrone.Core/Download/Clients/Nzbget/NzbgetSettings.cs +++ b/src/NzbDrone.Core/Download/Clients/Nzbget/NzbgetSettings.cs @@ -54,10 +54,10 @@ namespace NzbDrone.Core.Download.Clients.Nzbget [FieldDefinition(5, Label = "Category", Type = FieldType.Textbox, HelpText = "Adding a category specific to Readarr avoids conflicts with unrelated downloads, but it's optional")] public string MusicCategory { get; set; } - [FieldDefinition(6, Label = "Recent Priority", Type = FieldType.Select, SelectOptions = typeof(NzbgetPriority), HelpText = "Priority to use when grabbing albums released within the last 14 days")] + [FieldDefinition(6, Label = "Recent Priority", Type = FieldType.Select, SelectOptions = typeof(NzbgetPriority), HelpText = "Priority to use when grabbing books released within the last 14 days")] public int RecentTvPriority { get; set; } - [FieldDefinition(7, Label = "Older Priority", Type = FieldType.Select, SelectOptions = typeof(NzbgetPriority), HelpText = "Priority to use when grabbing albums released over 14 days ago")] + [FieldDefinition(7, Label = "Older Priority", Type = FieldType.Select, SelectOptions = typeof(NzbgetPriority), HelpText = "Priority to use when grabbing books released over 14 days ago")] public int OlderTvPriority { get; set; } [FieldDefinition(8, Label = "Add Paused", Type = FieldType.Checkbox, HelpText = "This option requires at least NzbGet version 16.0")] diff --git a/src/NzbDrone.Core/Download/Clients/QBittorrent/QBittorrentSettings.cs b/src/NzbDrone.Core/Download/Clients/QBittorrent/QBittorrentSettings.cs index a67cfea27..bf32c7062 100644 --- a/src/NzbDrone.Core/Download/Clients/QBittorrent/QBittorrentSettings.cs +++ b/src/NzbDrone.Core/Download/Clients/QBittorrent/QBittorrentSettings.cs @@ -51,10 +51,10 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent [FieldDefinition(6, Label = "Post-Import Category", Type = FieldType.Textbox, Advanced = true, HelpText = "Category for Readarr to set after it has imported the download. Readarr will not remove torrents in that category even if seeding finished. Leave blank to keep same category.")] public string MusicImportedCategory { get; set; } - [FieldDefinition(7, Label = "Recent Priority", Type = FieldType.Select, SelectOptions = typeof(QBittorrentPriority), HelpText = "Priority to use when grabbing albums released within the last 14 days")] + [FieldDefinition(7, Label = "Recent Priority", Type = FieldType.Select, SelectOptions = typeof(QBittorrentPriority), HelpText = "Priority to use when grabbing books released within the last 14 days")] public int RecentTvPriority { get; set; } - [FieldDefinition(8, Label = "Older Priority", Type = FieldType.Select, SelectOptions = typeof(QBittorrentPriority), HelpText = "Priority to use when grabbing albums released over 14 days ago")] + [FieldDefinition(8, Label = "Older Priority", Type = FieldType.Select, SelectOptions = typeof(QBittorrentPriority), HelpText = "Priority to use when grabbing books released over 14 days ago")] public int OlderTvPriority { get; set; } [FieldDefinition(9, Label = "Initial State", Type = FieldType.Select, SelectOptions = typeof(QBittorrentState), HelpText = "Initial state for torrents added to qBittorrent")] diff --git a/src/NzbDrone.Core/Download/Clients/Sabnzbd/SabnzbdSettings.cs b/src/NzbDrone.Core/Download/Clients/Sabnzbd/SabnzbdSettings.cs index 3628d8b78..ba3591563 100644 --- a/src/NzbDrone.Core/Download/Clients/Sabnzbd/SabnzbdSettings.cs +++ b/src/NzbDrone.Core/Download/Clients/Sabnzbd/SabnzbdSettings.cs @@ -66,10 +66,10 @@ namespace NzbDrone.Core.Download.Clients.Sabnzbd [FieldDefinition(6, Label = "Category", Type = FieldType.Textbox, HelpText = "Adding a category specific to Readarr avoids conflicts with unrelated downloads, but it's optional")] public string MusicCategory { get; set; } - [FieldDefinition(7, Label = "Recent Priority", Type = FieldType.Select, SelectOptions = typeof(SabnzbdPriority), HelpText = "Priority to use when grabbing albums released within the last 14 days")] + [FieldDefinition(7, Label = "Recent Priority", Type = FieldType.Select, SelectOptions = typeof(SabnzbdPriority), HelpText = "Priority to use when grabbing books released within the last 14 days")] public int RecentTvPriority { get; set; } - [FieldDefinition(8, Label = "Older Priority", Type = FieldType.Select, SelectOptions = typeof(SabnzbdPriority), HelpText = "Priority to use when grabbing albums released over 14 days ago")] + [FieldDefinition(8, Label = "Older Priority", Type = FieldType.Select, SelectOptions = typeof(SabnzbdPriority), HelpText = "Priority to use when grabbing books released over 14 days ago")] public int OlderTvPriority { get; set; } [FieldDefinition(9, Label = "Use SSL", Type = FieldType.Checkbox)] diff --git a/src/NzbDrone.Core/Download/Clients/Transmission/TransmissionSettings.cs b/src/NzbDrone.Core/Download/Clients/Transmission/TransmissionSettings.cs index 8da9bdf87..36ec499c9 100644 --- a/src/NzbDrone.Core/Download/Clients/Transmission/TransmissionSettings.cs +++ b/src/NzbDrone.Core/Download/Clients/Transmission/TransmissionSettings.cs @@ -56,10 +56,10 @@ namespace NzbDrone.Core.Download.Clients.Transmission [FieldDefinition(6, Label = "Directory", Type = FieldType.Textbox, Advanced = true, HelpText = "Optional location to put downloads in, leave blank to use the default Transmission location")] public string TvDirectory { get; set; } - [FieldDefinition(7, Label = "Recent Priority", Type = FieldType.Select, SelectOptions = typeof(TransmissionPriority), HelpText = "Priority to use when grabbing albums released within the last 14 days")] + [FieldDefinition(7, Label = "Recent Priority", Type = FieldType.Select, SelectOptions = typeof(TransmissionPriority), HelpText = "Priority to use when grabbing books released within the last 14 days")] public int RecentTvPriority { get; set; } - [FieldDefinition(8, Label = "Older Priority", Type = FieldType.Select, SelectOptions = typeof(TransmissionPriority), HelpText = "Priority to use when grabbing albums released over 14 days ago")] + [FieldDefinition(8, Label = "Older Priority", Type = FieldType.Select, SelectOptions = typeof(TransmissionPriority), HelpText = "Priority to use when grabbing books released over 14 days ago")] public int OlderTvPriority { get; set; } [FieldDefinition(9, Label = "Add Paused", Type = FieldType.Checkbox)] diff --git a/src/NzbDrone.Core/Download/Clients/rTorrent/RTorrentSettings.cs b/src/NzbDrone.Core/Download/Clients/rTorrent/RTorrentSettings.cs index c805a0212..a197f1e6e 100644 --- a/src/NzbDrone.Core/Download/Clients/rTorrent/RTorrentSettings.cs +++ b/src/NzbDrone.Core/Download/Clients/rTorrent/RTorrentSettings.cs @@ -58,10 +58,10 @@ namespace NzbDrone.Core.Download.Clients.RTorrent [FieldDefinition(8, Label = "Directory", Type = FieldType.Textbox, Advanced = true, HelpText = "Optional location to put downloads in, leave blank to use the default rTorrent location")] public string MusicDirectory { get; set; } - [FieldDefinition(9, Label = "Recent Priority", Type = FieldType.Select, SelectOptions = typeof(RTorrentPriority), HelpText = "Priority to use when grabbing albums released within the last 14 days")] + [FieldDefinition(9, Label = "Recent Priority", Type = FieldType.Select, SelectOptions = typeof(RTorrentPriority), HelpText = "Priority to use when grabbing books released within the last 14 days")] public int RecentTvPriority { get; set; } - [FieldDefinition(10, Label = "Older Priority", Type = FieldType.Select, SelectOptions = typeof(RTorrentPriority), HelpText = "Priority to use when grabbing albums released over 14 days ago")] + [FieldDefinition(10, Label = "Older Priority", Type = FieldType.Select, SelectOptions = typeof(RTorrentPriority), HelpText = "Priority to use when grabbing books released over 14 days ago")] public int OlderTvPriority { get; set; } [FieldDefinition(11, Label = "Add Stopped", Type = FieldType.Checkbox, HelpText = "Enabling will prevent magnets from downloading before downloading")] diff --git a/src/NzbDrone.Core/Download/Clients/uTorrent/UTorrentSettings.cs b/src/NzbDrone.Core/Download/Clients/uTorrent/UTorrentSettings.cs index 87d3d00dc..bb47c6e8c 100644 --- a/src/NzbDrone.Core/Download/Clients/uTorrent/UTorrentSettings.cs +++ b/src/NzbDrone.Core/Download/Clients/uTorrent/UTorrentSettings.cs @@ -49,10 +49,10 @@ namespace NzbDrone.Core.Download.Clients.UTorrent [FieldDefinition(6, Label = "Post-Import Category", Type = FieldType.Textbox, Advanced = true, HelpText = "Category for Readarr to set after it has imported the download. Readarr will not remove torrents in that category even if seeding finished. Leave blank to keep same category.")] public string MusicImportedCategory { get; set; } - [FieldDefinition(7, Label = "Recent Priority", Type = FieldType.Select, SelectOptions = typeof(UTorrentPriority), HelpText = "Priority to use when grabbing albums released within the last 14 days")] + [FieldDefinition(7, Label = "Recent Priority", Type = FieldType.Select, SelectOptions = typeof(UTorrentPriority), HelpText = "Priority to use when grabbing books released within the last 14 days")] public int RecentTvPriority { get; set; } - [FieldDefinition(8, Label = "Older Priority", Type = FieldType.Select, SelectOptions = typeof(UTorrentPriority), HelpText = "Priority to use when grabbing albums released over 14 days ago")] + [FieldDefinition(8, Label = "Older Priority", Type = FieldType.Select, SelectOptions = typeof(UTorrentPriority), HelpText = "Priority to use when grabbing books released over 14 days ago")] public int OlderTvPriority { get; set; } [FieldDefinition(9, Label = "Initial State", Type = FieldType.Select, SelectOptions = typeof(UTorrentState), HelpText = "Initial state for torrents added to uTorrent")] diff --git a/src/NzbDrone.Core/Download/DownloadService.cs b/src/NzbDrone.Core/Download/DownloadService.cs index 6abc6a91f..6355f1aac 100644 --- a/src/NzbDrone.Core/Download/DownloadService.cs +++ b/src/NzbDrone.Core/Download/DownloadService.cs @@ -82,7 +82,7 @@ namespace NzbDrone.Core.Download } catch (DownloadClientRejectedReleaseException) { - _logger.Trace("Release {0} rejected by download client, possible duplicate.", remoteAlbum); + _logger.Trace("Release {0} rejected by download client, possible duplicate.", remoteBook); throw; } catch (ReleaseDownloadException ex) @@ -100,16 +100,16 @@ namespace NzbDrone.Core.Download throw; } - var albumGrabbedEvent = new BookGrabbedEvent(remoteBook); - albumGrabbedEvent.DownloadClient = downloadClient.Name; + var bookGrabbedEvent = new BookGrabbedEvent(remoteBook); + bookGrabbedEvent.DownloadClient = downloadClient.Name; if (!string.IsNullOrWhiteSpace(downloadClientId)) { - albumGrabbedEvent.DownloadId = downloadClientId; + bookGrabbedEvent.DownloadId = downloadClientId; } _logger.ProgressInfo("Report sent to {0}. {1}", downloadClient.Definition.Name, downloadTitle); - _eventAggregator.PublishEvent(albumGrabbedEvent); + _eventAggregator.PublishEvent(bookGrabbedEvent); } } } diff --git a/src/NzbDrone.Core/Download/Pending/PendingReleaseService.cs b/src/NzbDrone.Core/Download/Pending/PendingReleaseService.cs index f0d3ac819..c2c2f7619 100644 --- a/src/NzbDrone.Core/Download/Pending/PendingReleaseService.cs +++ b/src/NzbDrone.Core/Download/Pending/PendingReleaseService.cs @@ -79,7 +79,7 @@ namespace NzbDrone.Core.Download.Pending var alreadyPending = _repository.AllByAuthorId(author.Id); alreadyPending = IncludeRemoteBooks(alreadyPending, authorDecisions.ToDictionaryIgnoreDuplicates(v => v.Item1.RemoteBook.Release.Title, v => v.Item1.RemoteBook)); - var alreadyPendingByAlbum = CreateBookLookup(alreadyPending); + var alreadyPendingByBook = CreateBookLookup(alreadyPending); foreach (var pair in authorDecisions) { @@ -88,7 +88,7 @@ namespace NzbDrone.Core.Download.Pending var bookIds = decision.RemoteBook.Books.Select(e => e.Id); - var existingReports = bookIds.SelectMany(v => alreadyPendingByAlbum[v] ?? Enumerable.Empty()) + var existingReports = bookIds.SelectMany(v => alreadyPendingByBook[v] ?? Enumerable.Empty()) .Distinct().ToList(); var matchingReports = existingReports.Where(MatchingReleasePredicate(decision.RemoteBook.Release)).ToList(); @@ -116,7 +116,7 @@ namespace NzbDrone.Core.Download.Pending { _repository.Delete(duplicate.Id); alreadyPending.Remove(duplicate); - alreadyPendingByAlbum = CreateBookLookup(alreadyPending); + alreadyPendingByBook = CreateBookLookup(alreadyPending); } } @@ -132,8 +132,8 @@ namespace NzbDrone.Core.Download.Pending private ILookup CreateBookLookup(IEnumerable alreadyPending) { return alreadyPending.SelectMany(v => v.RemoteBook.Books - .Select(d => new { Album = d, PendingRelease = v })) - .ToLookup(v => v.Album.Id, v => v.PendingRelease); + .Select(d => new { Book = d, PendingRelease = v })) + .ToLookup(v => v.Book.Id, v => v.PendingRelease); } public List GetPending() @@ -300,7 +300,7 @@ namespace NzbDrone.Core.Download.Pending } else { - books = _parsingService.GetAlbums(release.ParsedBookInfo, author); + books = _parsingService.GetBooks(release.ParsedBookInfo, author); } release.RemoteBook = new RemoteBook diff --git a/src/NzbDrone.Core/Download/ProcessDownloadDecisions.cs b/src/NzbDrone.Core/Download/ProcessDownloadDecisions.cs index 763efa23e..aa7ab3f70 100644 --- a/src/NzbDrone.Core/Download/ProcessDownloadDecisions.cs +++ b/src/NzbDrone.Core/Download/ProcessDownloadDecisions.cs @@ -54,7 +54,7 @@ namespace NzbDrone.Core.Download var downloadProtocol = report.RemoteBook.Release.DownloadProtocol; //Skip if already grabbed - if (IsAlbumProcessed(grabbed, report)) + if (IsBookProcessed(grabbed, report)) { continue; } @@ -120,7 +120,7 @@ namespace NzbDrone.Core.Download return decisions.Where(c => (c.Approved || c.TemporarilyRejected) && c.RemoteBook.Books.Any()).ToList(); } - private bool IsAlbumProcessed(List decisions, DownloadDecision report) + private bool IsBookProcessed(List decisions, DownloadDecision report) { var bookIds = report.RemoteBook.Books.Select(e => e.Id).ToList(); @@ -133,13 +133,13 @@ namespace NzbDrone.Core.Download private void PreparePending(List> queue, List grabbed, List pending, DownloadDecision report, PendingReleaseReason reason) { - // If a release was already grabbed with matching albums we should store it as a fallback + // If a release was already grabbed with matching books we should store it as a fallback // and filter it out the next time it is processed. // If a higher quality release failed to add to the download client, but a lower quality release // was sent to another client we still list it normally so it apparent that it'll grab next time. // Delayed is treated the same, but only the first is listed the subsequent items as stored as Fallback. - if (IsAlbumProcessed(grabbed, report) || - IsAlbumProcessed(pending, report)) + if (IsBookProcessed(grabbed, report) || + IsBookProcessed(pending, report)) { reason = PendingReleaseReason.Fallback; } diff --git a/src/NzbDrone.Core/Download/RedownloadFailedDownloadService.cs b/src/NzbDrone.Core/Download/RedownloadFailedDownloadService.cs index 1e8dbdf14..01efe79b2 100644 --- a/src/NzbDrone.Core/Download/RedownloadFailedDownloadService.cs +++ b/src/NzbDrone.Core/Download/RedownloadFailedDownloadService.cs @@ -50,9 +50,9 @@ namespace NzbDrone.Core.Download return; } - var albumsInArtist = _bookService.GetBooksByAuthor(message.AuthorId); + var booksInAuthor = _bookService.GetBooksByAuthor(message.AuthorId); - if (message.BookIds.Count == albumsInArtist.Count) + if (message.BookIds.Count == booksInAuthor.Count) { _logger.Debug("Failed download was entire author, searching again"); diff --git a/src/NzbDrone.Core/Download/TrackedDownloads/TrackedDownloadAlreadyImported.cs b/src/NzbDrone.Core/Download/TrackedDownloads/TrackedDownloadAlreadyImported.cs index 68c84f504..f5b6ba04c 100644 --- a/src/NzbDrone.Core/Download/TrackedDownloads/TrackedDownloadAlreadyImported.cs +++ b/src/NzbDrone.Core/Download/TrackedDownloads/TrackedDownloadAlreadyImported.cs @@ -24,7 +24,7 @@ namespace NzbDrone.Core.Download.TrackedDownloads return true; } - var allAlbumsImportedInHistory = trackedDownload.RemoteBook.Books.All(book => + var allBooksImportedInHistory = trackedDownload.RemoteBook.Books.All(book => { var lastHistoryItem = historyItems.FirstOrDefault(h => h.BookId == book.Id); @@ -36,7 +36,7 @@ namespace NzbDrone.Core.Download.TrackedDownloads return new[] { HistoryEventType.DownloadImported, HistoryEventType.BookFileImported }.Contains(lastHistoryItem.EventType); }); - return allAlbumsImportedInHistory; + return allBooksImportedInHistory; } } } diff --git a/src/NzbDrone.Core/Download/TrackedDownloads/TrackedDownloadService.cs b/src/NzbDrone.Core/Download/TrackedDownloads/TrackedDownloadService.cs index 3a1f07881..98d5966a0 100644 --- a/src/NzbDrone.Core/Download/TrackedDownloads/TrackedDownloadService.cs +++ b/src/NzbDrone.Core/Download/TrackedDownloads/TrackedDownloadService.cs @@ -52,7 +52,7 @@ namespace NzbDrone.Core.Download.TrackedDownloads return _cache.Find(downloadId); } - public void UpdateAlbumCache(int bookId) + public void UpdateBookCache(int bookId) { var updateCacheItems = _cache.Values.Where(x => x.RemoteBook != null && x.RemoteBook.Books.Any(a => a.Id == bookId)).ToList(); @@ -267,7 +267,7 @@ namespace NzbDrone.Core.Download.TrackedDownloads public void Handle(BookDeletedEvent message) { - UpdateAlbumCache(message.Book.Id); + UpdateBookCache(message.Book.Id); } } } diff --git a/src/NzbDrone.Core/Extras/ExistingExtraFileService.cs b/src/NzbDrone.Core/Extras/ExistingExtraFileService.cs index 8602bb4f6..653edc554 100644 --- a/src/NzbDrone.Core/Extras/ExistingExtraFileService.cs +++ b/src/NzbDrone.Core/Extras/ExistingExtraFileService.cs @@ -41,7 +41,7 @@ namespace NzbDrone.Core.Extras _logger.Debug("Looking for existing extra files in {0}", author.Path); var filesOnDisk = _diskScanService.GetNonBookFiles(author.Path); - var possibleExtraFiles = _diskScanService.FilterFiles(author.Path, filesOnDisk); + var possibleExtraFiles = _diskScanService.FilterPaths(author.Path, filesOnDisk); var filteredFiles = possibleExtraFiles; var importedFiles = new List(); diff --git a/src/NzbDrone.Core/Extras/Files/ExtraFileManager.cs b/src/NzbDrone.Core/Extras/Files/ExtraFileManager.cs index b01bb3dc3..3866d81a2 100644 --- a/src/NzbDrone.Core/Extras/Files/ExtraFileManager.cs +++ b/src/NzbDrone.Core/Extras/Files/ExtraFileManager.cs @@ -43,7 +43,7 @@ namespace NzbDrone.Core.Extras.Files public abstract int Order { get; } public abstract IEnumerable CreateAfterAuthorScan(Author author, List bookFiles); public abstract IEnumerable CreateAfterBookImport(Author author, BookFile bookFile); - public abstract IEnumerable CreateAfterBookImport(Author author, Book book, string authorFolder, string albumFolder); + public abstract IEnumerable CreateAfterBookImport(Author author, Book book, string authorFolder, string bookFolder); public abstract IEnumerable MoveFilesAfterRename(Author author, List bookFiles); public abstract ExtraFile Import(Author author, BookFile bookFile, string path, string extension, bool readOnly); diff --git a/src/NzbDrone.Core/Extras/Metadata/ExistingMetadataImporter.cs b/src/NzbDrone.Core/Extras/Metadata/ExistingMetadataImporter.cs index 4039b382f..497325b3b 100644 --- a/src/NzbDrone.Core/Extras/Metadata/ExistingMetadataImporter.cs +++ b/src/NzbDrone.Core/Extras/Metadata/ExistingMetadataImporter.cs @@ -56,15 +56,15 @@ namespace NzbDrone.Core.Extras.Metadata if (metadata.Type == MetadataType.BookImage || metadata.Type == MetadataType.BookMetadata) { - var localAlbum = _parsingService.GetLocalAlbum(possibleMetadataFile, author); + var localBook = _parsingService.GetLocalBook(possibleMetadataFile, author); - if (localAlbum == null) + if (localBook == null) { _logger.Debug("Extra file folder has multiple Books: {0}", possibleMetadataFile); continue; } - metadata.BookId = localAlbum.Id; + metadata.BookId = localBook.Id; } if (metadata.Type == MetadataType.BookMetadata) diff --git a/src/NzbDrone.Core/Extras/Metadata/IMetadata.cs b/src/NzbDrone.Core/Extras/Metadata/IMetadata.cs index 7d3f1033a..d1a5c9436 100644 --- a/src/NzbDrone.Core/Extras/Metadata/IMetadata.cs +++ b/src/NzbDrone.Core/Extras/Metadata/IMetadata.cs @@ -9,7 +9,7 @@ namespace NzbDrone.Core.Extras.Metadata public interface IMetadata : IProvider { string GetFilenameAfterMove(Author author, BookFile bookFile, MetadataFile metadataFile); - string GetFilenameAfterMove(Author author, string albumPath, MetadataFile metadataFile); + string GetFilenameAfterMove(Author author, string bookPath, MetadataFile metadataFile); MetadataFile FindMetadataFile(Author author, string path); MetadataFileResult AuthorMetadata(Author author); MetadataFileResult BookMetadata(Author author, BookFile bookFile); diff --git a/src/NzbDrone.Core/Extras/Metadata/MetadataBase.cs b/src/NzbDrone.Core/Extras/Metadata/MetadataBase.cs index b415994ba..d21dfbad7 100644 --- a/src/NzbDrone.Core/Extras/Metadata/MetadataBase.cs +++ b/src/NzbDrone.Core/Extras/Metadata/MetadataBase.cs @@ -36,10 +36,10 @@ namespace NzbDrone.Core.Extras.Metadata return newFileName; } - public virtual string GetFilenameAfterMove(Author author, string albumPath, MetadataFile metadataFile) + public virtual string GetFilenameAfterMove(Author author, string bookPath, MetadataFile metadataFile) { var existingFilename = Path.GetFileName(metadataFile.RelativePath); - var newFileName = Path.Combine(author.Path, albumPath, existingFilename); + var newFileName = Path.Combine(author.Path, bookPath, existingFilename); return newFileName; } diff --git a/src/NzbDrone.Core/Extras/Metadata/MetadataService.cs b/src/NzbDrone.Core/Extras/Metadata/MetadataService.cs index e85252804..6b1c74e8a 100644 --- a/src/NzbDrone.Core/Extras/Metadata/MetadataService.cs +++ b/src/NzbDrone.Core/Extras/Metadata/MetadataService.cs @@ -104,11 +104,11 @@ namespace NzbDrone.Core.Extras.Metadata return files; } - public override IEnumerable CreateAfterBookImport(Author author, Book book, string authorFolder, string albumFolder) + public override IEnumerable CreateAfterBookImport(Author author, Book book, string authorFolder, string bookFolder) { var metadataFiles = _metadataFileService.GetFilesByAuthor(author.Id); - if (authorFolder.IsNullOrWhiteSpace() && albumFolder.IsNullOrWhiteSpace()) + if (authorFolder.IsNullOrWhiteSpace() && bookFolder.IsNullOrWhiteSpace()) { return new List(); } @@ -205,21 +205,21 @@ namespace NzbDrone.Core.Extras.Metadata return null; } - private List GetMetadataFilesForConsumer(IMetadata consumer, List artistMetadata) + private List GetMetadataFilesForConsumer(IMetadata consumer, List authorMetadata) { - return artistMetadata.Where(c => c.Consumer == consumer.GetType().Name).ToList(); + return authorMetadata.Where(c => c.Consumer == consumer.GetType().Name).ToList(); } private MetadataFile ProcessAuthorMetadata(IMetadata consumer, Author author, List existingMetadataFiles) { - var artistMetadata = consumer.AuthorMetadata(author); + var authorMetadata = consumer.AuthorMetadata(author); - if (artistMetadata == null) + if (authorMetadata == null) { return null; } - var hash = artistMetadata.Contents.SHA256Hash(); + var hash = authorMetadata.Contents.SHA256Hash(); var metadata = GetMetadataFile(author, existingMetadataFiles, e => e.Type == MetadataType.AuthorMetadata) ?? new MetadataFile @@ -231,9 +231,9 @@ namespace NzbDrone.Core.Extras.Metadata if (hash == metadata.Hash) { - if (artistMetadata.RelativePath != metadata.RelativePath) + if (authorMetadata.RelativePath != metadata.RelativePath) { - metadata.RelativePath = artistMetadata.RelativePath; + metadata.RelativePath = authorMetadata.RelativePath; return metadata; } @@ -241,15 +241,15 @@ namespace NzbDrone.Core.Extras.Metadata return null; } - var fullPath = Path.Combine(author.Path, artistMetadata.RelativePath); + var fullPath = Path.Combine(author.Path, authorMetadata.RelativePath); _otherExtraFileRenamer.RenameOtherExtraFile(author, fullPath); _logger.Debug("Writing Author Metadata to: {0}", fullPath); - SaveMetadataFile(fullPath, artistMetadata.Contents); + SaveMetadataFile(fullPath, authorMetadata.Contents); metadata.Hash = hash; - metadata.RelativePath = artistMetadata.RelativePath; + metadata.RelativePath = authorMetadata.RelativePath; metadata.Extension = Path.GetExtension(fullPath); return metadata; diff --git a/src/NzbDrone.Core/Extras/Others/OtherExtraService.cs b/src/NzbDrone.Core/Extras/Others/OtherExtraService.cs index 58560993a..84c77b4ff 100644 --- a/src/NzbDrone.Core/Extras/Others/OtherExtraService.cs +++ b/src/NzbDrone.Core/Extras/Others/OtherExtraService.cs @@ -39,7 +39,7 @@ namespace NzbDrone.Core.Extras.Others return Enumerable.Empty(); } - public override IEnumerable CreateAfterBookImport(Author author, Book book, string artistFolder, string albumFolder) + public override IEnumerable CreateAfterBookImport(Author author, Book book, string authorFolder, string bookFolder) { return Enumerable.Empty(); } diff --git a/src/NzbDrone.Core/HealthCheck/Checks/MonoNotNetCoreCheck.cs b/src/NzbDrone.Core/HealthCheck/Checks/MonoNotNetCoreCheck.cs new file mode 100644 index 000000000..ab584dd4a --- /dev/null +++ b/src/NzbDrone.Core/HealthCheck/Checks/MonoNotNetCoreCheck.cs @@ -0,0 +1,57 @@ +using System.Linq; +using System.Runtime.InteropServices; +using NLog; +using NzbDrone.Common.EnvironmentInfo; +using NzbDrone.Common.Processes; + +namespace NzbDrone.Core.HealthCheck.Checks +{ + public class MonoNotNetCoreCheck : HealthCheckBase + { + private static string[] MonoUnames = new string[] { "FreeBSD", "OpenBSD", "MidnightBSD", "NetBSD" }; + private readonly IOsInfo _osInfo; + private readonly IProcessProvider _processProvider; + + public MonoNotNetCoreCheck(IOsInfo osInfo, + IProcessProvider processProvider, + Logger logger) + { + _osInfo = osInfo; + _processProvider = processProvider; + } + + public override HealthCheck Check() + { + if (!PlatformInfo.IsMono) + { + return new HealthCheck(GetType()); + } + + // Don't warn on arm based synology - could be arm5 or something else rubbish + if (_osInfo.Name == "DSM" && RuntimeInformation.ProcessArchitecture == Architecture.Arm) + { + return new HealthCheck(GetType()); + } + + // Don't warn on linux x86 - we don't build x86 net core + if (OsInfo.IsLinux && RuntimeInformation.ProcessArchitecture == Architecture.X86) + { + return new HealthCheck(GetType()); + } + + // Check for BSD + var output = _processProvider.StartAndCapture("uname"); + if (output?.ExitCode == 0 && MonoUnames.Contains(output?.Lines.First().Content)) + { + return new HealthCheck(GetType()); + } + + return new HealthCheck(GetType(), + HealthCheckResult.Warning, + "Please upgrade to the .NET Core version of Readarr", + "#update-to-net-core-version"); + } + + public override bool CheckOnSchedule => false; + } +} diff --git a/src/NzbDrone.Core/HealthCheck/Checks/RootFolderCheck.cs b/src/NzbDrone.Core/HealthCheck/Checks/RootFolderCheck.cs index 814cf2fc2..2bb9d3a87 100644 --- a/src/NzbDrone.Core/HealthCheck/Checks/RootFolderCheck.cs +++ b/src/NzbDrone.Core/HealthCheck/Checks/RootFolderCheck.cs @@ -4,6 +4,7 @@ using NzbDrone.Core.Books; using NzbDrone.Core.Books.Events; using NzbDrone.Core.ImportLists; using NzbDrone.Core.MediaFiles.Events; +using NzbDrone.Core.RootFolders; namespace NzbDrone.Core.HealthCheck.Checks { @@ -18,7 +19,7 @@ namespace NzbDrone.Core.HealthCheck.Checks private readonly IDiskProvider _diskProvider; private readonly IRootFolderService _rootFolderService; - public RootFolderCheck(IArtistService authorService, IImportListFactory importListFactory, IDiskProvider diskProvider, IRootFolderService rootFolderService) + public RootFolderCheck(IAuthorService authorService, IImportListFactory importListFactory, IDiskProvider diskProvider, IRootFolderService rootFolderService) { _authorService = authorService; _importListFactory = importListFactory; diff --git a/src/NzbDrone.Core/History/HistoryRepository.cs b/src/NzbDrone.Core/History/HistoryRepository.cs index 0c7ae7be7..61cddb484 100644 --- a/src/NzbDrone.Core/History/HistoryRepository.cs +++ b/src/NzbDrone.Core/History/HistoryRepository.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using NzbDrone.Core.Books; using NzbDrone.Core.Datastore; using NzbDrone.Core.Messaging.Events; using NzbDrone.Core.Qualities; diff --git a/src/NzbDrone.Core/History/HistoryService.cs b/src/NzbDrone.Core/History/HistoryService.cs index 9f050d317..ee1b48fa9 100644 --- a/src/NzbDrone.Core/History/HistoryService.cs +++ b/src/NzbDrone.Core/History/HistoryService.cs @@ -100,13 +100,13 @@ namespace NzbDrone.Core.History var allHistory = _historyRepository.FindDownloadHistory(trackedDownload.BookInfo.Author.Id, trackedDownload.ImportedBook.Quality); //Find download related items for these episdoes - var albumsHistory = allHistory.Where(h => bookIds.Contains(h.BookId)).ToList(); + var booksHistory = allHistory.Where(h => bookIds.Contains(h.BookId)).ToList(); - var processedDownloadId = albumsHistory + var processedDownloadId = booksHistory .Where(c => c.EventType != HistoryEventType.Grabbed && c.DownloadId != null) .Select(c => c.DownloadId); - var stillDownloading = albumsHistory.Where(c => c.EventType == HistoryEventType.Grabbed && !processedDownloadId.Contains(c.DownloadId)).ToList(); + var stillDownloading = booksHistory.Where(c => c.EventType == HistoryEventType.Grabbed && !processedDownloadId.Contains(c.DownloadId)).ToList(); string downloadId = null; diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupDuplicateMetadataFiles.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupDuplicateMetadataFiles.cs index fcdf8fcd8..814976d46 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupDuplicateMetadataFiles.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupDuplicateMetadataFiles.cs @@ -14,12 +14,12 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers public void Clean() { - DeleteDuplicateArtistMetadata(); + DeleteDuplicateAuthorMetadata(); DeleteDuplicateBookMetadata(); DeleteDuplicateBookFileMetadata(); } - private void DeleteDuplicateArtistMetadata() + private void DeleteDuplicateAuthorMetadata() { using (var mapper = _database.OpenConnection()) { diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedHistoryItems.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedHistoryItems.cs index 2937df4da..afbeca208 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedHistoryItems.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedHistoryItems.cs @@ -14,11 +14,11 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers public void Clean() { - CleanupOrphanedByArtist(); - CleanupOrphanedByAlbum(); + CleanupOrphanedByAuthor(); + CleanupOrphanedByBook(); } - private void CleanupOrphanedByArtist() + private void CleanupOrphanedByAuthor() { using (var mapper = _database.OpenConnection()) { @@ -31,7 +31,7 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers } } - private void CleanupOrphanedByAlbum() + private void CleanupOrphanedByBook() { using (var mapper = _database.OpenConnection()) { diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedMetadataFiles.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedMetadataFiles.cs index 34d0132e0..0c0f838ca 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedMetadataFiles.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedMetadataFiles.cs @@ -14,14 +14,14 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers public void Clean() { - DeleteOrphanedByArtist(); - DeleteOrphanedByAlbum(); + DeleteOrphanedByAuthor(); + DeleteOrphanedByBook(); DeleteOrphanedByTrackFile(); DeleteWhereBookIdIsZero(); DeleteWhereTrackFileIsZero(); } - private void DeleteOrphanedByArtist() + private void DeleteOrphanedByAuthor() { using (var mapper = _database.OpenConnection()) { @@ -34,7 +34,7 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers } } - private void DeleteOrphanedByAlbum() + private void DeleteOrphanedByBook() { using (var mapper = _database.OpenConnection()) { diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/DeleteBadMediaCovers.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/DeleteBadMediaCovers.cs index 6fdf2df16..96c8ca906 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/DeleteBadMediaCovers.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/DeleteBadMediaCovers.cs @@ -38,10 +38,10 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers return; } - var artists = _authorService.AllAuthorPaths(); + var authors = _authorService.AllAuthorPaths(); var imageExtensions = new List { ".jpg", ".png", ".gif" }; - foreach (var author in artists) + foreach (var author in authors) { var images = _metaFileService.GetFilesByAuthor(author.Key) .Where(c => c.LastUpdated > new DateTime(2014, 12, 27) && imageExtensions.Any(x => c.RelativePath.EndsWith(x, StringComparison.InvariantCultureIgnoreCase))); diff --git a/src/NzbDrone.Core/ImportLists/ImportListSyncService.cs b/src/NzbDrone.Core/ImportLists/ImportListSyncService.cs index 2bdbce612..975c3bb83 100644 --- a/src/NzbDrone.Core/ImportLists/ImportListSyncService.cs +++ b/src/NzbDrone.Core/ImportLists/ImportListSyncService.cs @@ -80,8 +80,8 @@ namespace NzbDrone.Core.ImportLists private List ProcessReports(List reports) { var processed = new List(); - var artistsToAdd = new List(); - var albumsToAdd = new List(); + var authorsToAdd = new List(); + var booksToAdd = new List(); _logger.ProgressInfo("Processing {0} list items", reports.Count); @@ -101,30 +101,30 @@ namespace NzbDrone.Core.ImportLists { if (report.EditionGoodreadsId.IsNullOrWhiteSpace() || report.AuthorGoodreadsId.IsNullOrWhiteSpace()) { - MapAlbumReport(report); + MapBookReport(report); } - ProcessAlbumReport(importList, report, listExclusions, albumsToAdd); + ProcessBookReport(importList, report, listExclusions, booksToAdd); } else if (report.Author.IsNotNullOrWhiteSpace() || report.AuthorGoodreadsId.IsNotNullOrWhiteSpace()) { if (report.AuthorGoodreadsId.IsNullOrWhiteSpace()) { - MapArtistReport(report); + MapAuthorReport(report); } - ProcessArtistReport(importList, report, listExclusions, artistsToAdd); + ProcessAuthorReport(importList, report, listExclusions, authorsToAdd); } } - var addedArtists = _addAuthorService.AddAuthors(artistsToAdd, false); - var addedAlbums = _addBookService.AddBooks(albumsToAdd, false); + var addedAuthors = _addAuthorService.AddAuthors(authorsToAdd, false); + var addedBooks = _addBookService.AddBooks(booksToAdd, false); - var message = string.Format($"Import List Sync Completed. Items found: {reports.Count}, Authors added: {artistsToAdd.Count}, Books added: {albumsToAdd.Count}"); + var message = string.Format($"Import List Sync Completed. Items found: {reports.Count}, Authors added: {authorsToAdd.Count}, Books added: {booksToAdd.Count}"); _logger.ProgressInfo(message); - var toRefresh = addedArtists.Select(x => x.Id).Concat(addedAlbums.Select(x => x.Author.Value.Id)).Distinct().ToList(); + var toRefresh = addedAuthors.Select(x => x.Id).Concat(addedBooks.Select(x => x.Author.Value.Id)).Distinct().ToList(); if (toRefresh.Any()) { _commandQueueManager.Push(new BulkRefreshAuthorCommand(toRefresh, true)); @@ -133,37 +133,37 @@ namespace NzbDrone.Core.ImportLists return processed; } - private void MapAlbumReport(ImportListItemInfo report) + private void MapBookReport(ImportListItemInfo report) { - Book mappedAlbum; + Book mappedBook; if (report.EditionGoodreadsId.IsNotNullOrWhiteSpace() && int.TryParse(report.EditionGoodreadsId, out var goodreadsId)) { var search = _bookSearchService.SearchByGoodreadsId(goodreadsId); - mappedAlbum = search.FirstOrDefault(x => x.Editions.Value.Any(e => int.TryParse(e.ForeignEditionId, out var editionId) && editionId == goodreadsId)); + mappedBook = search.FirstOrDefault(x => x.Editions.Value.Any(e => int.TryParse(e.ForeignEditionId, out var editionId) && editionId == goodreadsId)); } else { - mappedAlbum = _bookSearchService.SearchForNewBook(report.Book, report.Author).FirstOrDefault(); + mappedBook = _bookSearchService.SearchForNewBook(report.Book, report.Author).FirstOrDefault(); } // Break if we are looking for an book and cant find it. This will avoid us from adding the author and possibly getting it wrong. - if (mappedAlbum == null) + if (mappedBook == null) { _logger.Trace($"Nothing found for {report.EditionGoodreadsId}"); report.EditionGoodreadsId = null; return; } - _logger.Trace($"Mapped {report.EditionGoodreadsId} to {mappedAlbum}"); + _logger.Trace($"Mapped {report.EditionGoodreadsId} to {mappedBook}"); - report.BookGoodreadsId = mappedAlbum.ForeignBookId; - report.Book = mappedAlbum.Title; - report.Author = mappedAlbum.AuthorMetadata?.Value?.Name; - report.AuthorGoodreadsId = mappedAlbum.AuthorMetadata?.Value?.ForeignAuthorId; + report.BookGoodreadsId = mappedBook.ForeignBookId; + report.Book = mappedBook.Title; + report.Author = mappedBook.AuthorMetadata?.Value?.Name; + report.AuthorGoodreadsId = mappedBook.AuthorMetadata?.Value?.ForeignAuthorId; } - private void ProcessAlbumReport(ImportListDefinition importList, ImportListItemInfo report, List listExclusions, List albumsToAdd) + private void ProcessBookReport(ImportListDefinition importList, ImportListItemInfo report, List listExclusions, List booksToAdd) { if (report.EditionGoodreadsId == null) { @@ -171,38 +171,38 @@ namespace NzbDrone.Core.ImportLists } // Check to see if book in DB - var existingAlbum = _bookService.FindById(report.BookGoodreadsId); + var existingBook = _bookService.FindById(report.BookGoodreadsId); // Check to see if book excluded - var excludedAlbum = listExclusions.SingleOrDefault(s => s.ForeignId == report.BookGoodreadsId); + var excludedBook = listExclusions.SingleOrDefault(s => s.ForeignId == report.BookGoodreadsId); // Check to see if author excluded - var excludedArtist = listExclusions.SingleOrDefault(s => s.ForeignId == report.AuthorGoodreadsId); + var excludedAuthor = listExclusions.SingleOrDefault(s => s.ForeignId == report.AuthorGoodreadsId); - if (excludedAlbum != null) + if (excludedBook != null) { _logger.Debug("{0} [{1}] Rejected due to list exlcusion", report.EditionGoodreadsId, report.Book); return; } - if (excludedArtist != null) + if (excludedAuthor != null) { _logger.Debug("{0} [{1}] Rejected due to list exlcusion for parent author", report.EditionGoodreadsId, report.Book); return; } - if (existingAlbum != null) + if (existingBook != null) { _logger.Debug("{0} [{1}] Rejected, Book Exists in DB. Ensuring Book and Author monitored.", report.EditionGoodreadsId, report.Book); if (importList.ShouldMonitor != ImportListMonitorType.None) { - if (!existingAlbum.Monitored) + if (!existingBook.Monitored) { - _bookService.SetBookMonitored(existingAlbum.Id, true); + _bookService.SetBookMonitored(existingBook.Id, true); } - var existingAuthor = existingAlbum.Author.Value; + var existingAuthor = existingBook.Author.Value; if (importList.ShouldMonitor == ImportListMonitorType.EntireAuthor) { _bookService.SetMonitored(existingAuthor.Books.Value.Select(x => x.Id), true); @@ -218,8 +218,8 @@ namespace NzbDrone.Core.ImportLists return; } - // Append Album if not already in DB or already on add list - if (albumsToAdd.All(s => s.ForeignBookId != report.BookGoodreadsId)) + // Append Book if not already in DB or already on add list + if (booksToAdd.All(s => s.ForeignBookId != report.BookGoodreadsId)) { var monitored = importList.ShouldMonitor != ImportListMonitorType.None; @@ -260,19 +260,19 @@ namespace NzbDrone.Core.ImportLists toAdd.Author.Value.AddOptions.BooksToMonitor.Add(toAdd.ForeignBookId); } - albumsToAdd.Add(toAdd); + booksToAdd.Add(toAdd); } } - private void MapArtistReport(ImportListItemInfo report) + private void MapAuthorReport(ImportListItemInfo report) { - var mappedArtist = _authorSearchService.SearchForNewAuthor(report.Author) + var mappedAuthor = _authorSearchService.SearchForNewAuthor(report.Author) .FirstOrDefault(); - report.AuthorGoodreadsId = mappedArtist?.Metadata.Value?.ForeignAuthorId; - report.Author = mappedArtist?.Metadata.Value?.Name; + report.AuthorGoodreadsId = mappedAuthor?.Metadata.Value?.ForeignAuthorId; + report.Author = mappedAuthor?.Metadata.Value?.Name; } - private void ProcessArtistReport(ImportListDefinition importList, ImportListItemInfo report, List listExclusions, List artistsToAdd) + private void ProcessAuthorReport(ImportListDefinition importList, ImportListItemInfo report, List listExclusions, List authorsToAdd) { if (report.AuthorGoodreadsId == null) { @@ -280,36 +280,36 @@ namespace NzbDrone.Core.ImportLists } // Check to see if author in DB - var existingArtist = _authorService.FindById(report.AuthorGoodreadsId); + var existingAuthor = _authorService.FindById(report.AuthorGoodreadsId); // Check to see if author excluded - var excludedArtist = listExclusions.Where(s => s.ForeignId == report.AuthorGoodreadsId).SingleOrDefault(); + var excludedAuthor = listExclusions.Where(s => s.ForeignId == report.AuthorGoodreadsId).SingleOrDefault(); - if (excludedArtist != null) + if (excludedAuthor != null) { _logger.Debug("{0} [{1}] Rejected due to list exlcusion", report.AuthorGoodreadsId, report.Author); return; } - if (existingArtist != null) + if (existingAuthor != null) { _logger.Debug("{0} [{1}] Rejected, Author Exists in DB. Ensuring Author monitored", report.AuthorGoodreadsId, report.Author); - if (!existingArtist.Monitored) + if (!existingAuthor.Monitored) { - existingArtist.Monitored = true; - _authorService.UpdateAuthor(existingArtist); + existingAuthor.Monitored = true; + _authorService.UpdateAuthor(existingAuthor); } return; } // Append Author if not already in DB or already on add list - if (artistsToAdd.All(s => s.Metadata.Value.ForeignAuthorId != report.AuthorGoodreadsId)) + if (authorsToAdd.All(s => s.Metadata.Value.ForeignAuthorId != report.AuthorGoodreadsId)) { var monitored = importList.ShouldMonitor != ImportListMonitorType.None; - artistsToAdd.Add(new Author + authorsToAdd.Add(new Author { Metadata = new AuthorMetadata { diff --git a/src/NzbDrone.Core/ImportLists/LazyLibrarian/LazyLibrarianImportParser.cs b/src/NzbDrone.Core/ImportLists/LazyLibrarian/LazyLibrarianImportParser.cs index 0f5421edb..6b92d5e6b 100644 --- a/src/NzbDrone.Core/ImportLists/LazyLibrarian/LazyLibrarianImportParser.cs +++ b/src/NzbDrone.Core/ImportLists/LazyLibrarian/LazyLibrarianImportParser.cs @@ -24,7 +24,7 @@ namespace NzbDrone.Core.ImportLists.LazyLibrarianImport var jsonResponse = JsonConvert.DeserializeObject>(_importListResponse.Content); - // no albums were return + // no books were return if (jsonResponse == null) { return items; diff --git a/src/NzbDrone.Core/IndexerSearch/BookSearchService.cs b/src/NzbDrone.Core/IndexerSearch/BookSearchService.cs index 5b432a5ab..6dcd8029e 100644 --- a/src/NzbDrone.Core/IndexerSearch/BookSearchService.cs +++ b/src/NzbDrone.Core/IndexerSearch/BookSearchService.cs @@ -26,14 +26,14 @@ namespace NzbDrone.Core.IndexerSearch public BookSearchService(ISearchForNzb nzbSearchService, IBookService bookService, - IBookCutoffService albumCutoffService, + IBookCutoffService bookCutoffService, IQueueService queueService, IProcessDownloadDecisions processDownloadDecisions, Logger logger) { _nzbSearchService = nzbSearchService; _bookService = bookService; - _bookCutoffService = albumCutoffService; + _bookCutoffService = bookCutoffService; _queueService = queueService; _processDownloadDecisions = processDownloadDecisions; _logger = logger; @@ -70,7 +70,7 @@ namespace NzbDrone.Core.IndexerSearch public void Execute(MissingBookSearchCommand message) { - List albums; + List books; if (message.AuthorId.HasValue) { @@ -86,7 +86,7 @@ namespace NzbDrone.Core.IndexerSearch pagingSpec.FilterExpressions.Add(v => v.Monitored == true && v.Author.Value.Monitored == true); - albums = _bookService.BooksWithoutFiles(pagingSpec).Records.Where(e => e.AuthorId.Equals(authorId)).ToList(); + books = _bookService.BooksWithoutFiles(pagingSpec).Records.Where(e => e.AuthorId.Equals(authorId)).ToList(); } else { @@ -100,11 +100,11 @@ namespace NzbDrone.Core.IndexerSearch pagingSpec.FilterExpressions.Add(v => v.Monitored == true && v.Author.Value.Monitored == true); - albums = _bookService.BooksWithoutFiles(pagingSpec).Records.ToList(); + books = _bookService.BooksWithoutFiles(pagingSpec).Records.ToList(); } var queue = _queueService.GetQueue().Where(q => q.Book != null).Select(q => q.Book.Id); - var missing = albums.Where(e => !queue.Contains(e.Id)).ToList(); + var missing = books.Where(e => !queue.Contains(e.Id)).ToList(); SearchForMissingBooks(missing, message.Trigger == CommandTrigger.Manual); } diff --git a/src/NzbDrone.Core/IndexerSearch/Definitions/SearchCriteriaBase.cs b/src/NzbDrone.Core/IndexerSearch/Definitions/SearchCriteriaBase.cs index 2f0512daa..9380cc9ef 100644 --- a/src/NzbDrone.Core/IndexerSearch/Definitions/SearchCriteriaBase.cs +++ b/src/NzbDrone.Core/IndexerSearch/Definitions/SearchCriteriaBase.cs @@ -24,9 +24,9 @@ namespace NzbDrone.Core.IndexerSearch.Definitions { Ensure.That(title, () => title).IsNotNullOrWhiteSpace(); - // Most VA albums are listed as VA, not Various Artists + // Most VA books are listed as VA, not Various Authors // TODO: Needed in Readarr?? - if (title == "Various Artists") + if (title == "Various Authors") { title = "VA"; } diff --git a/src/NzbDrone.Core/IndexerSearch/NzbSearchService.cs b/src/NzbDrone.Core/IndexerSearch/NzbSearchService.cs index b87553eaf..24f56875d 100644 --- a/src/NzbDrone.Core/IndexerSearch/NzbSearchService.cs +++ b/src/NzbDrone.Core/IndexerSearch/NzbSearchService.cs @@ -50,10 +50,10 @@ namespace NzbDrone.Core.IndexerSearch public List AuthorSearch(int authorId, bool missingOnly, bool userInvokedSearch, bool interactiveSearch) { var author = _authorService.GetAuthor(authorId); - return ArtistSearch(author, missingOnly, userInvokedSearch, interactiveSearch); + return AuthorSearch(author, missingOnly, userInvokedSearch, interactiveSearch); } - public List ArtistSearch(Author author, bool missingOnly, bool userInvokedSearch, bool interactiveSearch) + public List AuthorSearch(Author author, bool missingOnly, bool userInvokedSearch, bool interactiveSearch) { var searchSpec = Get(author, userInvokedSearch, interactiveSearch); var books = _bookService.GetBooksByAuthor(author.Id); @@ -82,12 +82,12 @@ namespace NzbDrone.Core.IndexerSearch return Dispatch(indexer => indexer.Fetch(searchSpec), searchSpec); } - private TSpec Get(Author author, List albums, bool userInvokedSearch, bool interactiveSearch) + private TSpec Get(Author author, List books, bool userInvokedSearch, bool interactiveSearch) where TSpec : SearchCriteriaBase, new() { var spec = new TSpec(); - spec.Books = albums; + spec.Books = books; spec.Author = author; spec.UserInvokedSearch = userInvokedSearch; spec.InteractiveSearch = interactiveSearch; diff --git a/src/NzbDrone.Core/Indexers/Gazelle/GazelleApi.cs b/src/NzbDrone.Core/Indexers/Gazelle/GazelleApi.cs index a9bc5386a..ba1e7e43b 100644 --- a/src/NzbDrone.Core/Indexers/Gazelle/GazelleApi.cs +++ b/src/NzbDrone.Core/Indexers/Gazelle/GazelleApi.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; namespace NzbDrone.Core.Indexers.Gazelle { - public class GazelleArtist + public class GazelleAuthor { public string Name { get; set; } public string Id { get; set; } @@ -14,7 +14,7 @@ namespace NzbDrone.Core.Indexers.Gazelle { public int TorrentId { get; set; } public int EditionId { get; set; } - public List Artists { get; set; } + public List Authors { get; set; } public bool Remastered { get; set; } public string RemasterYear { get; set; } public string RemasterTitle { get; set; } @@ -42,7 +42,7 @@ namespace NzbDrone.Core.Indexers.Gazelle { public string GroupId { get; set; } public string GroupName { get; set; } - public string Artist { get; set; } + public string Author { get; set; } public string GroupYear { get; set; } public string Cover { get; set; } public List Tags { get; set; } diff --git a/src/NzbDrone.Core/Indexers/Gazelle/GazelleParser.cs b/src/NzbDrone.Core/Indexers/Gazelle/GazelleParser.cs index 160f42925..3e7c67878 100644 --- a/src/NzbDrone.Core/Indexers/Gazelle/GazelleParser.cs +++ b/src/NzbDrone.Core/Indexers/Gazelle/GazelleParser.cs @@ -54,7 +54,7 @@ namespace NzbDrone.Core.Indexers.Gazelle foreach (var torrent in result.Torrents) { var id = torrent.TorrentId; - var author = WebUtility.HtmlDecode(result.Artist); + var author = WebUtility.HtmlDecode(result.Author); var book = WebUtility.HtmlDecode(result.GroupName); torrentInfos.Add(new GazelleInfo() @@ -63,7 +63,7 @@ namespace NzbDrone.Core.Indexers.Gazelle Author = author, // Splice Title from info to avoid calling API again for every torrent. - Title = WebUtility.HtmlDecode(result.Artist + " - " + result.GroupName + " (" + result.GroupYear + ") [" + torrent.Format + " " + torrent.Encoding + "]"), + Title = WebUtility.HtmlDecode(result.Author + " - " + result.GroupName + " (" + result.GroupYear + ") [" + torrent.Format + " " + torrent.Encoding + "]"), Book = book, Container = torrent.Encoding, Codec = torrent.Format, diff --git a/src/NzbDrone.Core/Indexers/Gazelle/GazelleRequestGenerator.cs b/src/NzbDrone.Core/Indexers/Gazelle/GazelleRequestGenerator.cs index 8d0fc7755..bdd27b84d 100644 --- a/src/NzbDrone.Core/Indexers/Gazelle/GazelleRequestGenerator.cs +++ b/src/NzbDrone.Core/Indexers/Gazelle/GazelleRequestGenerator.cs @@ -29,14 +29,14 @@ namespace NzbDrone.Core.Indexers.Gazelle public IndexerPageableRequestChain GetSearchRequests(BookSearchCriteria searchCriteria) { var pageableRequests = new IndexerPageableRequestChain(); - pageableRequests.Add(GetRequest(string.Format("&artistname={0}&groupname={1}", searchCriteria.AuthorQuery, searchCriteria.BookQuery))); + pageableRequests.Add(GetRequest(string.Format("&authorname={0}&groupname={1}", searchCriteria.AuthorQuery, searchCriteria.BookQuery))); return pageableRequests; } public IndexerPageableRequestChain GetSearchRequests(AuthorSearchCriteria searchCriteria) { var pageableRequests = new IndexerPageableRequestChain(); - pageableRequests.Add(GetRequest(string.Format("&artistname={0}", searchCriteria.AuthorQuery))); + pageableRequests.Add(GetRequest(string.Format("&authorname={0}", searchCriteria.AuthorQuery))); return pageableRequests; } diff --git a/src/NzbDrone.Core/Indexers/Newznab/NewznabRssParser.cs b/src/NzbDrone.Core/Indexers/Newznab/NewznabRssParser.cs index cf0aeaaef..b79b098c3 100644 --- a/src/NzbDrone.Core/Indexers/Newznab/NewznabRssParser.cs +++ b/src/NzbDrone.Core/Indexers/Newznab/NewznabRssParser.cs @@ -79,8 +79,8 @@ namespace NzbDrone.Core.Indexers.Newznab { releaseInfo = base.ProcessItem(item, releaseInfo); - releaseInfo.Author = GetArtist(item); - releaseInfo.Book = GetAlbum(item); + releaseInfo.Author = GetAuthor(item); + releaseInfo.Book = GetBook(item); return releaseInfo; } @@ -121,25 +121,25 @@ namespace NzbDrone.Core.Indexers.Newznab return base.GetPublishDate(item); } - protected virtual string GetArtist(XElement item) + protected virtual string GetAuthor(XElement item) { - var artistString = TryGetNewznabAttribute(item, "author"); + var authorString = TryGetNewznabAttribute(item, "author"); - if (!artistString.IsNullOrWhiteSpace()) + if (!authorString.IsNullOrWhiteSpace()) { - return artistString; + return authorString; } return ""; } - protected virtual string GetAlbum(XElement item) + protected virtual string GetBook(XElement item) { - var albumString = TryGetNewznabAttribute(item, "booktitle"); + var bookString = TryGetNewznabAttribute(item, "booktitle"); - if (!albumString.IsNullOrWhiteSpace()) + if (!bookString.IsNullOrWhiteSpace()) { - return albumString; + return bookString; } return ""; diff --git a/src/NzbDrone.Core/MediaCover/MediaCoverService.cs b/src/NzbDrone.Core/MediaCover/MediaCoverService.cs index c8dcb59ce..8071fb1ea 100644 --- a/src/NzbDrone.Core/MediaCover/MediaCoverService.cs +++ b/src/NzbDrone.Core/MediaCover/MediaCoverService.cs @@ -20,7 +20,7 @@ namespace NzbDrone.Core.MediaCover { void ConvertToLocalUrls(int entityId, MediaCoverEntity coverEntity, IEnumerable covers); string GetCoverPath(int entityId, MediaCoverEntity coverEntity, MediaCoverTypes mediaCoverTypes, string extension, int? height = null); - void EnsureAlbumCovers(Book book); + void EnsureBookCovers(Book book); } public class MediaCoverService : @@ -74,11 +74,11 @@ namespace NzbDrone.Core.MediaCover if (coverEntity == MediaCoverEntity.Book) { - return Path.Combine(GetAlbumCoverPath(entityId), coverTypes.ToString().ToLower() + heightSuffix + extension); + return Path.Combine(GetBookCoverPath(entityId), coverTypes.ToString().ToLower() + heightSuffix + extension); } else { - return Path.Combine(GetArtistCoverPath(entityId), coverTypes.ToString().ToLower() + heightSuffix + extension); + return Path.Combine(GetAuthorCoverPath(entityId), coverTypes.ToString().ToLower() + heightSuffix + extension); } } @@ -105,17 +105,17 @@ namespace NzbDrone.Core.MediaCover } } - private string GetArtistCoverPath(int authorId) + private string GetAuthorCoverPath(int authorId) { return Path.Combine(_coverRootFolder, authorId.ToString()); } - private string GetAlbumCoverPath(int bookId) + private string GetBookCoverPath(int bookId) { return Path.Combine(_coverRootFolder, "Books", bookId.ToString()); } - private void EnsureArtistCovers(Author author) + private void EnsureAuthorCovers(Author author) { var toResize = new List>(); @@ -162,7 +162,7 @@ namespace NzbDrone.Core.MediaCover } } - public void EnsureAlbumCovers(Book book) + public void EnsureBookCovers(Book book) { foreach (var cover in book.Editions.Value.Single(x => x.Monitored).Images.Where(e => e.CoverType == MediaCoverTypes.Cover)) { @@ -176,7 +176,7 @@ namespace NzbDrone.Core.MediaCover if (!alreadyExists) { - DownloadAlbumCover(book, cover, serverFileHeaders.LastModified ?? DateTime.Now); + DownloadBookCover(book, cover, serverFileHeaders.LastModified ?? DateTime.Now); } } catch (WebException e) @@ -207,7 +207,7 @@ namespace NzbDrone.Core.MediaCover } } - private void DownloadAlbumCover(Book book, MediaCover cover, DateTime lastModified) + private void DownloadBookCover(Book book, MediaCover cover, DateTime lastModified) { var fileName = GetCoverPath(book.Id, MediaCoverEntity.Book, cover.CoverType, cover.Extension, null); @@ -306,12 +306,12 @@ namespace NzbDrone.Core.MediaCover public void HandleAsync(AuthorRefreshCompleteEvent message) { - EnsureArtistCovers(message.Author); + EnsureAuthorCovers(message.Author); - var albums = _bookService.GetBooksByAuthor(message.Author.Id); - foreach (Book book in albums) + var books = _bookService.GetBooksByAuthor(message.Author.Id); + foreach (Book book in books) { - EnsureAlbumCovers(book); + EnsureBookCovers(book); } _eventAggregator.PublishEvent(new MediaCoversUpdatedEvent(message.Author)); @@ -319,7 +319,7 @@ namespace NzbDrone.Core.MediaCover public void HandleAsync(AuthorDeletedEvent message) { - var path = GetArtistCoverPath(message.Author.Id); + var path = GetAuthorCoverPath(message.Author.Id); if (_diskProvider.FolderExists(path)) { _diskProvider.DeleteFolder(path, true); @@ -328,7 +328,7 @@ namespace NzbDrone.Core.MediaCover public void HandleAsync(BookDeletedEvent message) { - var path = GetAlbumCoverPath(message.Book.Id); + var path = GetBookCoverPath(message.Book.Id); if (_diskProvider.FolderExists(path)) { _diskProvider.DeleteFolder(path, true); diff --git a/src/NzbDrone.Core/MediaCover/MediaCoversUpdatedEvent.cs b/src/NzbDrone.Core/MediaCover/MediaCoversUpdatedEvent.cs index dd0da3908..4736e84c5 100644 --- a/src/NzbDrone.Core/MediaCover/MediaCoversUpdatedEvent.cs +++ b/src/NzbDrone.Core/MediaCover/MediaCoversUpdatedEvent.cs @@ -6,7 +6,7 @@ namespace NzbDrone.Core.MediaCover public class MediaCoversUpdatedEvent : IEvent { public Author Author { get; set; } - public Book Album { get; set; } + public Book Book { get; set; } public MediaCoversUpdatedEvent(Author author) { @@ -15,7 +15,7 @@ namespace NzbDrone.Core.MediaCover public MediaCoversUpdatedEvent(Book book) { - Album = book; + Book = book; } } } diff --git a/src/NzbDrone.Core/MediaFiles/AudioTag.cs b/src/NzbDrone.Core/MediaFiles/AudioTag.cs index aa7af32dd..5ffdff17b 100644 --- a/src/NzbDrone.Core/MediaFiles/AudioTag.cs +++ b/src/NzbDrone.Core/MediaFiles/AudioTag.cs @@ -21,10 +21,10 @@ namespace NzbDrone.Core.MediaFiles public string Title { get; set; } public string[] Performers { get; set; } - public string[] AlbumArtists { get; set; } + public string[] BookAuthors { get; set; } public uint Track { get; set; } public uint TrackCount { get; set; } - public string Album { get; set; } + public string Book { get; set; } public uint Disc { get; set; } public uint DiscCount { get; set; } public string Media { get; set; } @@ -65,10 +65,10 @@ namespace NzbDrone.Core.MediaFiles Title = tag.Title ?? tag.TitleSort; Performers = tag.Performers ?? tag.PerformersSort; - AlbumArtists = tag.AlbumArtists ?? tag.AlbumArtistsSort; + BookAuthors = tag.AlbumArtists ?? tag.AlbumArtistsSort; Track = tag.Track; TrackCount = tag.TrackCount; - Album = tag.Album ?? tag.AlbumSort; + Book = tag.Album ?? tag.AlbumSort; Disc = tag.Disc; DiscCount = tag.DiscCount; Year = tag.Year; @@ -285,9 +285,9 @@ namespace NzbDrone.Core.MediaFiles Logger.Debug($"Starting tag write for {path}"); // patch up any null fields to work around TagLib exception for - // WMA with null performers/albumartists + // WMA with null performers/bookauthors Performers = Performers ?? new string[0]; - AlbumArtists = AlbumArtists ?? new string[0]; + BookAuthors = BookAuthors ?? new string[0]; Genres = Genres ?? new string[0]; TagLib.File file = null; @@ -299,10 +299,10 @@ namespace NzbDrone.Core.MediaFiles // do the ones with direct support in TagLib tag.Title = Title; tag.Performers = Performers; - tag.AlbumArtists = AlbumArtists; + tag.AlbumArtists = BookAuthors; tag.Track = Track; tag.TrackCount = TrackCount; - tag.Album = Album; + tag.Album = Book; tag.Disc = Disc; tag.DiscCount = DiscCount; tag.Publisher = Publisher; @@ -410,20 +410,20 @@ namespace NzbDrone.Core.MediaFiles var oldValue = Performers.Any() ? string.Join(" / ", Performers) : null; var newValue = other.Performers.Any() ? string.Join(" / ", other.Performers) : null; - output.Add("Artist", Tuple.Create(oldValue, newValue)); + output.Add("Author", Tuple.Create(oldValue, newValue)); } - if (Album != other.Album) + if (Book != other.Book) { - output.Add("Album", Tuple.Create(Album, other.Album)); + output.Add("Book", Tuple.Create(Book, other.Book)); } - if (!AlbumArtists.SequenceEqual(other.AlbumArtists)) + if (!BookAuthors.SequenceEqual(other.BookAuthors)) { - var oldValue = AlbumArtists.Any() ? string.Join(" / ", AlbumArtists) : null; - var newValue = other.AlbumArtists.Any() ? string.Join(" / ", other.AlbumArtists) : null; + var oldValue = BookAuthors.Any() ? string.Join(" / ", BookAuthors) : null; + var newValue = other.BookAuthors.Any() ? string.Join(" / ", other.BookAuthors) : null; - output.Add("Album Artist", Tuple.Create(oldValue, newValue)); + output.Add("Book Author", Tuple.Create(oldValue, newValue)); } if (Track != other.Track) @@ -507,14 +507,14 @@ namespace NzbDrone.Core.MediaFiles }; } - var author = tag.AlbumArtists?.FirstOrDefault(); + var author = tag.BookAuthors?.FirstOrDefault(); if (author.IsNullOrWhiteSpace()) { author = tag.Performers?.FirstOrDefault(); } - var artistTitleInfo = new AuthorTitleInfo + var authorTitleInfo = new AuthorTitleInfo { Title = author, Year = (int)tag.Year @@ -522,8 +522,8 @@ namespace NzbDrone.Core.MediaFiles return new ParsedTrackInfo { - AlbumTitle = tag.Album, - ArtistTitle = author, + BookTitle = tag.Book, + AuthorTitle = author, DiscNumber = (int)tag.Disc, DiscCount = (int)tag.DiscCount, Year = tag.Year, diff --git a/src/NzbDrone.Core/MediaFiles/AudioTagService.cs b/src/NzbDrone.Core/MediaFiles/AudioTagService.cs index 43ed0ca87..236d6eaab 100644 --- a/src/NzbDrone.Core/MediaFiles/AudioTagService.cs +++ b/src/NzbDrone.Core/MediaFiles/AudioTagService.cs @@ -23,8 +23,8 @@ namespace NzbDrone.Core.MediaFiles ParsedTrackInfo ReadTags(string file); void WriteTags(BookFile trackfile, bool newDownload, bool force = false); void SyncTags(List tracks); - List GetRetagPreviewsByArtist(int authorId); - List GetRetagPreviewsByAlbum(int authorId); + List GetRetagPreviewsByAuthor(int authorId); + List GetRetagPreviewsByBook(int authorId); } public class AudioTagService : IAudioTagService, @@ -171,14 +171,14 @@ namespace NzbDrone.Core.MediaFiles } } - public List GetRetagPreviewsByArtist(int authorId) + public List GetRetagPreviewsByAuthor(int authorId) { var files = _mediaFileService.GetFilesByAuthor(authorId); return GetPreviews(files).ToList(); } - public List GetRetagPreviewsByAlbum(int bookId) + public List GetRetagPreviewsByBook(int bookId) { var files = _mediaFileService.GetFilesByBook(bookId); @@ -231,10 +231,10 @@ namespace NzbDrone.Core.MediaFiles public void Execute(RetagAuthorCommand message) { - _logger.Debug("Re-tagging all files for selected artists"); - var artistToRename = _authorService.GetAuthors(message.AuthorIds); + _logger.Debug("Re-tagging all files for selected authors"); + var authorToRename = _authorService.GetAuthors(message.AuthorIds); - foreach (var author in artistToRename) + foreach (var author in authorToRename) { var bookFiles = _mediaFileService.GetFilesByAuthor(author.Id); _logger.ProgressInfo("Re-tagging all files in author: {0}", author.Name); diff --git a/src/NzbDrone.Core/MediaFiles/BookImport/Aggregation/AggregationService.cs b/src/NzbDrone.Core/MediaFiles/BookImport/Aggregation/AggregationService.cs index a9bf7a96a..5d06a7797 100644 --- a/src/NzbDrone.Core/MediaFiles/BookImport/Aggregation/AggregationService.cs +++ b/src/NzbDrone.Core/MediaFiles/BookImport/Aggregation/AggregationService.cs @@ -11,30 +11,30 @@ namespace NzbDrone.Core.MediaFiles.BookImport.Aggregation public interface IAugmentingService { LocalBook Augment(LocalBook localTrack, bool otherFiles); - LocalEdition Augment(LocalEdition localAlbum); + LocalEdition Augment(LocalEdition localBook); } public class AugmentingService : IAugmentingService { private readonly IEnumerable> _trackAugmenters; - private readonly IEnumerable> _albumAugmenters; + private readonly IEnumerable> _bookAugmenters; private readonly IDiskProvider _diskProvider; private readonly Logger _logger; public AugmentingService(IEnumerable> trackAugmenters, - IEnumerable> albumAugmenters, + IEnumerable> bookAugmenters, IDiskProvider diskProvider, Logger logger) { _trackAugmenters = trackAugmenters; - _albumAugmenters = albumAugmenters; + _bookAugmenters = bookAugmenters; _diskProvider = diskProvider; _logger = logger; } public LocalBook Augment(LocalBook localTrack, bool otherFiles) { - if (localTrack.DownloadClientAlbumInfo == null && + if (localTrack.DownloadClientBookInfo == null && localTrack.FolderTrackInfo == null && localTrack.FileTrackInfo == null) { @@ -61,13 +61,13 @@ namespace NzbDrone.Core.MediaFiles.BookImport.Aggregation return localTrack; } - public LocalEdition Augment(LocalEdition localAlbum) + public LocalEdition Augment(LocalEdition localBook) { - foreach (var augmenter in _albumAugmenters) + foreach (var augmenter in _bookAugmenters) { try { - augmenter.Aggregate(localAlbum, false); + augmenter.Aggregate(localBook, false); } catch (Exception ex) { @@ -75,7 +75,7 @@ namespace NzbDrone.Core.MediaFiles.BookImport.Aggregation } } - return localAlbum; + return localBook; } } } diff --git a/src/NzbDrone.Core/MediaFiles/BookImport/Aggregation/Aggregators/AggregateCalibreData.cs b/src/NzbDrone.Core/MediaFiles/BookImport/Aggregation/Aggregators/AggregateCalibreData.cs index bcd76a479..547a416f3 100644 --- a/src/NzbDrone.Core/MediaFiles/BookImport/Aggregation/Aggregators/AggregateCalibreData.cs +++ b/src/NzbDrone.Core/MediaFiles/BookImport/Aggregation/Aggregators/AggregateCalibreData.cs @@ -35,8 +35,8 @@ namespace NzbDrone.Core.MediaFiles.BookImport.Aggregation.Aggregators parsed.Asin = book.Identifiers.GetValueOrDefault("mobi-asin"); parsed.Isbn = book.Identifiers.GetValueOrDefault("isbn"); parsed.GoodreadsId = book.Identifiers.GetValueOrDefault("goodreads"); - parsed.ArtistTitle = book.AuthorSort; - parsed.AlbumTitle = book.Title; + parsed.AuthorTitle = book.AuthorSort; + parsed.BookTitle = book.Title; } return localTrack; diff --git a/src/NzbDrone.Core/MediaFiles/BookImport/Aggregation/Aggregators/AggregateFilenameInfo.cs b/src/NzbDrone.Core/MediaFiles/BookImport/Aggregation/Aggregators/AggregateFilenameInfo.cs index dc628ff3a..95958df78 100644 --- a/src/NzbDrone.Core/MediaFiles/BookImport/Aggregation/Aggregators/AggregateFilenameInfo.cs +++ b/src/NzbDrone.Core/MediaFiles/BookImport/Aggregation/Aggregators/AggregateFilenameInfo.cs @@ -121,7 +121,7 @@ namespace NzbDrone.Core.MediaFiles.BookImport.Aggregation.Aggregators // Given both an "author" and "title" field, assume that one is // *actually* the author, which must be uniform, and use the other - // for the title. This, of course, won't work for VA albums. + // for the title. This, of course, won't work for VA books. string titleField; string author; if (keys.Contains("author")) @@ -148,9 +148,9 @@ namespace NzbDrone.Core.MediaFiles.BookImport.Aggregation.Aggregators foreach (var track in matches.Keys) { - if (track.FileTrackInfo.ArtistTitle.IsNullOrWhiteSpace()) + if (track.FileTrackInfo.AuthorTitle.IsNullOrWhiteSpace()) { - track.FileTrackInfo.ArtistTitle = author; + track.FileTrackInfo.AuthorTitle = author; } } } diff --git a/src/NzbDrone.Core/MediaFiles/BookImport/Aggregation/Aggregators/AggregateQuality.cs b/src/NzbDrone.Core/MediaFiles/BookImport/Aggregation/Aggregators/AggregateQuality.cs index a4495b1fa..5780f7051 100644 --- a/src/NzbDrone.Core/MediaFiles/BookImport/Aggregation/Aggregators/AggregateQuality.cs +++ b/src/NzbDrone.Core/MediaFiles/BookImport/Aggregation/Aggregators/AggregateQuality.cs @@ -15,7 +15,7 @@ namespace NzbDrone.Core.MediaFiles.BookImport.Aggregation.Aggregators if (quality == null) { - quality = localTrack.DownloadClientAlbumInfo?.Quality; + quality = localTrack.DownloadClientBookInfo?.Quality; } localTrack.Quality = quality; diff --git a/src/NzbDrone.Core/MediaFiles/BookImport/Aggregation/Aggregators/AggregateReleaseGroup.cs b/src/NzbDrone.Core/MediaFiles/BookImport/Aggregation/Aggregators/AggregateReleaseGroup.cs index 630a57eea..b21ce3c78 100644 --- a/src/NzbDrone.Core/MediaFiles/BookImport/Aggregation/Aggregators/AggregateReleaseGroup.cs +++ b/src/NzbDrone.Core/MediaFiles/BookImport/Aggregation/Aggregators/AggregateReleaseGroup.cs @@ -7,7 +7,7 @@ namespace NzbDrone.Core.MediaFiles.BookImport.Aggregation.Aggregators { public LocalBook Aggregate(LocalBook localTrack, bool otherFiles) { - var releaseGroup = localTrack.DownloadClientAlbumInfo?.ReleaseGroup; + var releaseGroup = localTrack.DownloadClientBookInfo?.ReleaseGroup; if (releaseGroup.IsNullOrWhiteSpace()) { diff --git a/src/NzbDrone.Core/MediaFiles/BookImport/Identification/CandidateService.cs b/src/NzbDrone.Core/MediaFiles/BookImport/Identification/CandidateService.cs index c26b1b771..3a1c25684 100644 --- a/src/NzbDrone.Core/MediaFiles/BookImport/Identification/CandidateService.cs +++ b/src/NzbDrone.Core/MediaFiles/BookImport/Identification/CandidateService.cs @@ -60,7 +60,7 @@ namespace NzbDrone.Core.MediaFiles.BookImport.Identification // if (tagMbidRelease != null) // { - // tagCandidate = GetDbCandidatesByRelease(new List { tagMbidRelease }, includeExisting); + // tagCandidate = GetDbCandidatesByRelease(new List { tagMbidRelease }, includeExisting); // } // } if (idOverrides?.Edition != null) @@ -113,7 +113,7 @@ namespace NzbDrone.Core.MediaFiles.BookImport.Identification private List GetDbCandidatesByEdition(List editions, bool includeExisting) { - // get the local tracks on disk for each album + // get the local tracks on disk for each book var bookFiles = editions.Select(x => x.BookId) .Distinct() .ToDictionary(id => id, id => includeExisting ? _mediaFileService.GetFilesByBook(id) : new List()); @@ -138,11 +138,11 @@ namespace NzbDrone.Core.MediaFiles.BookImport.Identification _logger.Trace("Getting candidates for {0}", author); var candidateReleases = new List(); - var albumTag = localEdition.LocalBooks.MostCommon(x => x.FileTrackInfo.AlbumTitle) ?? ""; - if (albumTag.IsNotNullOrWhiteSpace()) + var bookTag = localEdition.LocalBooks.MostCommon(x => x.FileTrackInfo.BookTitle) ?? ""; + if (bookTag.IsNotNullOrWhiteSpace()) { - var possibleAlbums = _bookService.GetCandidates(author.AuthorMetadataId, albumTag); - foreach (var book in possibleAlbums) + var possibleBooks = _bookService.GetCandidates(author.AuthorMetadataId, bookTag); + foreach (var book in possibleBooks) { candidateReleases.AddRange(GetDbCandidatesByBook(book, includeExisting)); } @@ -154,11 +154,11 @@ namespace NzbDrone.Core.MediaFiles.BookImport.Identification private List GetDbCandidates(LocalEdition localEdition, bool includeExisting) { // most general version, nothing has been specified. - // get all plausible artists, then all plausible albums, then get releases for each of these. + // get all plausible authors, then all plausible books, then get releases for each of these. var candidateReleases = new List(); // check if it looks like VA. - if (TrackGroupingService.IsVariousArtists(localEdition.LocalBooks)) + if (TrackGroupingService.IsVariousAuthors(localEdition.LocalBooks)) { var va = _authorService.FindById(DistanceCalculator.VariousAuthorIds[0]); if (va != null) @@ -167,11 +167,11 @@ namespace NzbDrone.Core.MediaFiles.BookImport.Identification } } - var artistTag = localEdition.LocalBooks.MostCommon(x => x.FileTrackInfo.ArtistTitle) ?? ""; - if (artistTag.IsNotNullOrWhiteSpace()) + var authorTag = localEdition.LocalBooks.MostCommon(x => x.FileTrackInfo.AuthorTitle) ?? ""; + if (authorTag.IsNotNullOrWhiteSpace()) { - var possibleArtists = _authorService.GetCandidates(artistTag); - foreach (var author in possibleArtists) + var possibleAuthors = _authorService.GetCandidates(authorTag); + foreach (var author in possibleAuthors) { candidateReleases.AddRange(GetDbCandidatesByAuthor(localEdition, author, includeExisting)); } @@ -229,32 +229,32 @@ namespace NzbDrone.Core.MediaFiles.BookImport.Identification if (remoteBooks == null || !remoteBooks.Any()) { // fall back to author / book name search - string artistTag; + string authorTag; - if (TrackGroupingService.IsVariousArtists(localEdition.LocalBooks)) + if (TrackGroupingService.IsVariousAuthors(localEdition.LocalBooks)) { - artistTag = "Various Artists"; + authorTag = "Various Authors"; } else { - artistTag = localEdition.LocalBooks.MostCommon(x => x.FileTrackInfo.ArtistTitle) ?? ""; + authorTag = localEdition.LocalBooks.MostCommon(x => x.FileTrackInfo.AuthorTitle) ?? ""; } - var albumTag = localEdition.LocalBooks.MostCommon(x => x.FileTrackInfo.AlbumTitle) ?? ""; + var bookTag = localEdition.LocalBooks.MostCommon(x => x.FileTrackInfo.BookTitle) ?? ""; - if (artistTag.IsNullOrWhiteSpace() || albumTag.IsNullOrWhiteSpace()) + if (authorTag.IsNullOrWhiteSpace() || bookTag.IsNullOrWhiteSpace()) { return candidates; } - remoteBooks = _bookSearchService.SearchForNewBook(albumTag, artistTag); + remoteBooks = _bookSearchService.SearchForNewBook(bookTag, authorTag); if (!remoteBooks.Any()) { - var albumSearch = _bookSearchService.SearchForNewBook(albumTag, null); - var artistSearch = _bookSearchService.SearchForNewBook(artistTag, null); + var bookSearch = _bookSearchService.SearchForNewBook(bookTag, null); + var authorSearch = _bookSearchService.SearchForNewBook(authorTag, null); - remoteBooks = albumSearch.Concat(artistSearch).DistinctBy(x => x.ForeignBookId).ToList(); + remoteBooks = bookSearch.Concat(authorSearch).DistinctBy(x => x.ForeignBookId).ToList(); } } } diff --git a/src/NzbDrone.Core/MediaFiles/BookImport/Identification/Distance.cs b/src/NzbDrone.Core/MediaFiles/BookImport/Identification/Distance.cs index 9f96286fd..619ca1812 100644 --- a/src/NzbDrone.Core/MediaFiles/BookImport/Identification/Distance.cs +++ b/src/NzbDrone.Core/MediaFiles/BookImport/Identification/Distance.cs @@ -11,21 +11,21 @@ namespace NzbDrone.Core.MediaFiles.BookImport.Identification private static readonly Dictionary Weights = new Dictionary { { "source", 2.0 }, - { "artist", 3.0 }, - { "album", 3.0 }, + { "author", 3.0 }, + { "book", 3.0 }, { "media_count", 1.0 }, { "media_format", 1.0 }, { "year", 1.0 }, { "country", 0.5 }, { "label", 0.5 }, { "catalog_number", 0.5 }, - { "album_disambiguation", 0.5 }, - { "album_id", 5.0 }, + { "book_disambiguation", 0.5 }, + { "book_id", 5.0 }, { "tracks", 2.0 }, { "missing_tracks", 0.6 }, { "unmatched_tracks", 0.9 }, { "track_title", 3.0 }, - { "track_artist", 2.0 }, + { "track_author", 2.0 }, { "track_index", 1.0 }, { "track_length", 2.0 }, { "recording_id", 10.0 }, diff --git a/src/NzbDrone.Core/MediaFiles/BookImport/Identification/DistanceCalculator.cs b/src/NzbDrone.Core/MediaFiles/BookImport/Identification/DistanceCalculator.cs index b0a8a5726..acf3d625a 100644 --- a/src/NzbDrone.Core/MediaFiles/BookImport/Identification/DistanceCalculator.cs +++ b/src/NzbDrone.Core/MediaFiles/BookImport/Identification/DistanceCalculator.cs @@ -16,7 +16,7 @@ namespace NzbDrone.Core.MediaFiles.BookImport.Identification private static readonly Logger Logger = NzbDroneLogger.GetLogger(typeof(DistanceCalculator)); public static readonly List VariousAuthorIds = new List { "89ad4ac3-39f7-470e-963a-56509c546377" }; - private static readonly List VariousArtistNames = new List { "various artists", "various", "va", "unknown" }; + private static readonly List VariousAuthorNames = new List { "various authors", "various", "va", "unknown" }; private static readonly List PreferredCountries = new List { "United States", @@ -31,18 +31,18 @@ namespace NzbDrone.Core.MediaFiles.BookImport.Identification { var dist = new Distance(); - var artists = new List { localTracks.MostCommon(x => x.FileTrackInfo.ArtistTitle) ?? "" }; + var authors = new List { localTracks.MostCommon(x => x.FileTrackInfo.AuthorTitle) ?? "" }; // Add version based on un-reversed - if (artists[0].Contains(',')) + if (authors[0].Contains(',')) { - artists.Add(artists[0].Split(',').Select(x => x.Trim()).Reverse().ConcatToString(" ")); + authors.Add(authors[0].Split(',').Select(x => x.Trim()).Reverse().ConcatToString(" ")); } - dist.AddString("artist", artists, edition.Book.Value.AuthorMetadata.Value.Name); - Logger.Trace("artist: '{0}' vs '{1}'; {2}", artists.ConcatToString("' or '"), edition.Book.Value.AuthorMetadata.Value.Name, dist.NormalizedDistance()); + dist.AddString("author", authors, edition.Book.Value.AuthorMetadata.Value.Name); + Logger.Trace("author: '{0}' vs '{1}'; {2}", authors.ConcatToString("' or '"), edition.Book.Value.AuthorMetadata.Value.Name, dist.NormalizedDistance()); - var title = localTracks.MostCommon(x => x.FileTrackInfo.AlbumTitle) ?? ""; + var title = localTracks.MostCommon(x => x.FileTrackInfo.BookTitle) ?? ""; var titleOptions = new List { edition.Title, edition.Book.Value.Title }; if (titleOptions[0].Contains("#")) { @@ -58,21 +58,21 @@ namespace NzbDrone.Core.MediaFiles.BookImport.Identification } } - dist.AddString("album", title, titleOptions); - Logger.Trace("album: '{0}' vs '{1}'; {2}", title, titleOptions.ConcatToString("' or '"), dist.NormalizedDistance()); + dist.AddString("book", title, titleOptions); + Logger.Trace("book: '{0}' vs '{1}'; {2}", title, titleOptions.ConcatToString("' or '"), dist.NormalizedDistance()); // Year var localYear = localTracks.MostCommon(x => x.FileTrackInfo.Year); if (localYear > 0 && edition.ReleaseDate.HasValue) { - var albumYear = edition.ReleaseDate?.Year ?? 0; - if (localYear == albumYear) + var bookYear = edition.ReleaseDate?.Year ?? 0; + if (localYear == bookYear) { dist.Add("year", 0.0); } else { - var remoteYear = albumYear; + var remoteYear = bookYear; var diff = Math.Abs(localYear - remoteYear); var diff_max = Math.Abs(DateTime.Now.Year - remoteYear); dist.AddRatio("year", diff, diff_max); diff --git a/src/NzbDrone.Core/MediaFiles/BookImport/Identification/IdentificationService.cs b/src/NzbDrone.Core/MediaFiles/BookImport/Identification/IdentificationService.cs index 8c18059cb..e9a55c6b0 100644 --- a/src/NzbDrone.Core/MediaFiles/BookImport/Identification/IdentificationService.cs +++ b/src/NzbDrone.Core/MediaFiles/BookImport/Identification/IdentificationService.cs @@ -35,7 +35,7 @@ namespace NzbDrone.Core.MediaFiles.BookImport.Identification _logger = logger; } - public List GetLocalAlbumReleases(List localTracks, bool singleRelease) + public List GetLocalBookReleases(List localTracks, bool singleRelease) { var watch = System.Diagnostics.Stopwatch.StartNew(); List releases; @@ -68,13 +68,13 @@ namespace NzbDrone.Core.MediaFiles.BookImport.Identification public List Identify(List localTracks, IdentificationOverrides idOverrides, ImportDecisionMakerConfig config) { // 1 group localTracks so that we think they represent a single release - // 2 get candidates given specified author, album and release. Candidates can include extra files already on disk. + // 2 get candidates given specified author, book and release. Candidates can include extra files already on disk. // 3 find best candidate var watch = System.Diagnostics.Stopwatch.StartNew(); _logger.Debug("Starting track identification"); - var releases = GetLocalAlbumReleases(localTracks, config.SingleRelease); + var releases = GetLocalBookReleases(localTracks, config.SingleRelease); int i = 0; foreach (var localRelease in releases) @@ -112,22 +112,22 @@ namespace NzbDrone.Core.MediaFiles.BookImport.Identification return localTracks; } - private void IdentifyRelease(LocalEdition localAlbumRelease, IdentificationOverrides idOverrides, ImportDecisionMakerConfig config) + private void IdentifyRelease(LocalEdition localBookRelease, IdentificationOverrides idOverrides, ImportDecisionMakerConfig config) { var watch = System.Diagnostics.Stopwatch.StartNew(); - var candidateReleases = _candidateService.GetDbCandidatesFromTags(localAlbumRelease, idOverrides, config.IncludeExisting); + var candidateReleases = _candidateService.GetDbCandidatesFromTags(localBookRelease, idOverrides, config.IncludeExisting); if (candidateReleases.Count == 0 && config.AddNewAuthors) { - candidateReleases = _candidateService.GetRemoteCandidates(localAlbumRelease); + candidateReleases = _candidateService.GetRemoteCandidates(localBookRelease); } if (candidateReleases.Count == 0) { // can't find any candidates even after fingerprinting // populate the overrides and return - foreach (var localTrack in localAlbumRelease.LocalBooks) + foreach (var localTrack in localBookRelease.LocalBooks) { localTrack.Edition = idOverrides.Edition; localTrack.Book = idOverrides.Book; @@ -137,30 +137,30 @@ namespace NzbDrone.Core.MediaFiles.BookImport.Identification return; } - _logger.Debug($"Got {candidateReleases.Count} candidates for {localAlbumRelease.LocalBooks.Count} tracks in {watch.ElapsedMilliseconds}ms"); + _logger.Debug($"Got {candidateReleases.Count} candidates for {localBookRelease.LocalBooks.Count} tracks in {watch.ElapsedMilliseconds}ms"); // convert all the TrackFiles that represent extra files to List var allLocalTracks = ToLocalTrack(candidateReleases .SelectMany(x => x.ExistingFiles) - .DistinctBy(x => x.Path), localAlbumRelease); + .DistinctBy(x => x.Path), localBookRelease); _logger.Debug($"Retrieved {allLocalTracks.Count} possible tracks in {watch.ElapsedMilliseconds}ms"); - GetBestRelease(localAlbumRelease, candidateReleases, allLocalTracks); + GetBestRelease(localBookRelease, candidateReleases, allLocalTracks); _logger.Debug($"Best release found in {watch.ElapsedMilliseconds}ms"); - localAlbumRelease.PopulateMatch(); + localBookRelease.PopulateMatch(); _logger.Debug($"IdentifyRelease done in {watch.ElapsedMilliseconds}ms"); } - private void GetBestRelease(LocalEdition localAlbumRelease, List candidateReleases, List extraTracksOnDisk) + private void GetBestRelease(LocalEdition localBookRelease, List candidateReleases, List extraTracksOnDisk) { var watch = System.Diagnostics.Stopwatch.StartNew(); - _logger.Debug("Matching {0} track files against {1} candidates", localAlbumRelease.TrackCount, candidateReleases.Count); - _logger.Trace("Processing files:\n{0}", string.Join("\n", localAlbumRelease.LocalBooks.Select(x => x.Path))); + _logger.Debug("Matching {0} track files against {1} candidates", localBookRelease.TrackCount, candidateReleases.Count); + _logger.Trace("Processing files:\n{0}", string.Join("\n", localBookRelease.LocalBooks.Select(x => x.Path))); double bestDistance = 1.0; @@ -172,7 +172,7 @@ namespace NzbDrone.Core.MediaFiles.BookImport.Identification var extraTrackPaths = candidateRelease.ExistingFiles.Select(x => x.Path).ToList(); var extraTracks = extraTracksOnDisk.Where(x => extraTrackPaths.Contains(x.Path)).ToList(); - var allLocalTracks = localAlbumRelease.LocalBooks.Concat(extraTracks).DistinctBy(x => x.Path).ToList(); + var allLocalTracks = localBookRelease.LocalBooks.Concat(extraTracks).DistinctBy(x => x.Path).ToList(); var distance = DistanceCalculator.BookDistance(allLocalTracks, release); var currDistance = distance.NormalizedDistance(); @@ -186,9 +186,9 @@ namespace NzbDrone.Core.MediaFiles.BookImport.Identification if (currDistance < bestDistance) { bestDistance = currDistance; - localAlbumRelease.Distance = distance; - localAlbumRelease.Edition = release; - localAlbumRelease.ExistingTracks = extraTracks; + localBookRelease.Distance = distance; + localBookRelease.Edition = release; + localBookRelease.ExistingTracks = extraTracks; if (currDistance == 0.0) { break; @@ -197,7 +197,7 @@ namespace NzbDrone.Core.MediaFiles.BookImport.Identification } watch.Stop(); - _logger.Debug($"Best release: {localAlbumRelease.Edition} Distance {localAlbumRelease.Distance.NormalizedDistance()} found in {watch.ElapsedMilliseconds}ms"); + _logger.Debug($"Best release: {localBookRelease.Edition} Distance {localBookRelease.Distance.NormalizedDistance()} found in {watch.ElapsedMilliseconds}ms"); } } } diff --git a/src/NzbDrone.Core/MediaFiles/BookImport/Identification/TrackGroupingService.cs b/src/NzbDrone.Core/MediaFiles/BookImport/Identification/TrackGroupingService.cs index 6d67aa629..0c7dc527c 100644 --- a/src/NzbDrone.Core/MediaFiles/BookImport/Identification/TrackGroupingService.cs +++ b/src/NzbDrone.Core/MediaFiles/BookImport/Identification/TrackGroupingService.cs @@ -23,7 +23,7 @@ namespace NzbDrone.Core.MediaFiles.BookImport.Identification private static readonly List MultiDiscMarkers = new List { @"dis[ck]", @"cd" }; private static readonly string MultiDiscPatternFormat = @"^(?.*%s[\W_]*)\d"; - private static readonly List VariousArtistTitles = new List { "", "various artists", "various", "va", "unknown" }; + private static readonly List VariousAuthorTitles = new List { "", "various authors", "various", "va", "unknown" }; public List GroupTracks(List localTracks) { @@ -53,11 +53,11 @@ namespace NzbDrone.Core.MediaFiles.BookImport.Identification } } - // If anything didn't get grouped correctly, try grouping by Album (to pick up VA) + // If anything didn't get grouped correctly, try grouping by Book (to pick up VA) var unprocessed2 = new List(); - foreach (var group in unprocessed.GroupBy(x => x.FileTrackInfo.AlbumTitle)) + foreach (var group in unprocessed.GroupBy(x => x.FileTrackInfo.BookTitle)) { - _logger.Debug("Falling back to grouping by album tag"); + _logger.Debug("Falling back to grouping by book tag"); var tracks = group.ToList(); if (LooksLikeSingleRelease(tracks)) { @@ -69,10 +69,10 @@ namespace NzbDrone.Core.MediaFiles.BookImport.Identification } } - // Finally fall back to grouping by Album/Artist pair - foreach (var group in unprocessed2.GroupBy(x => new { x.FileTrackInfo.ArtistTitle, x.FileTrackInfo.AlbumTitle })) + // Finally fall back to grouping by Book/Author pair + foreach (var group in unprocessed2.GroupBy(x => new { x.FileTrackInfo.AuthorTitle, x.FileTrackInfo.BookTitle })) { - _logger.Debug("Falling back to grouping by album+author tag"); + _logger.Debug("Falling back to grouping by book+author tag"); releases.Add(new LocalEdition(group.ToList())); } @@ -115,33 +115,33 @@ namespace NzbDrone.Core.MediaFiles.BookImport.Identification { // returns true if we think all the tracks belong to a single release - // author/album tags must be the same for 75% of tracks, with no more than 25% having different values - // (except in the case of various artists) - const double albumTagThreshold = 0.25; - const double artistTagThreshold = 0.25; + // author/book tags must be the same for 75% of tracks, with no more than 25% having different values + // (except in the case of various authors) + const double bookTagThreshold = 0.25; + const double authorTagThreshold = 0.25; const double tagFuzz = 0.9; - // check that any Album/Release MBID is unique - if (tracks.Select(x => x.FileTrackInfo.AlbumMBId).Distinct().Where(x => x.IsNotNullOrWhiteSpace()).Count() > 1 || + // check that any Book/Release MBID is unique + if (tracks.Select(x => x.FileTrackInfo.BookMBId).Distinct().Where(x => x.IsNotNullOrWhiteSpace()).Count() > 1 || tracks.Select(x => x.FileTrackInfo.ReleaseMBId).Distinct().Where(x => x.IsNotNullOrWhiteSpace()).Count() > 1) { _logger.Trace("LooksLikeSingleRelease: MBIDs are not unique"); return false; } - // check that there's a common album tag. - var albumTags = tracks.Select(x => x.FileTrackInfo.AlbumTitle); - if (!HasCommonEntry(albumTags, albumTagThreshold, tagFuzz)) + // check that there's a common book tag. + var bookTags = tracks.Select(x => x.FileTrackInfo.BookTitle); + if (!HasCommonEntry(bookTags, bookTagThreshold, tagFuzz)) { - _logger.Trace("LooksLikeSingleRelease: No common album tag"); + _logger.Trace("LooksLikeSingleRelease: No common book tag"); return false; } - // If not various artists, make sure artists are sensible - if (!IsVariousArtists(tracks)) + // If not various authors, make sure authors are sensible + if (!IsVariousAuthors(tracks)) { - var artistTags = tracks.Select(x => x.FileTrackInfo.ArtistTitle); - if (!HasCommonEntry(artistTags, artistTagThreshold, tagFuzz)) + var authorTags = tracks.Select(x => x.FileTrackInfo.AuthorTitle); + if (!HasCommonEntry(authorTags, authorTagThreshold, tagFuzz)) { _logger.Trace("LooksLikeSingleRelease: No common author tag"); return false; @@ -151,22 +151,22 @@ namespace NzbDrone.Core.MediaFiles.BookImport.Identification return true; } - public static bool IsVariousArtists(List tracks) + public static bool IsVariousAuthors(List tracks) { // checks whether most common title is a known VA title // Also checks whether more than 75% of tracks have a distinct author and that the most common author // is responsible for < 25% of tracks - const double artistTagThreshold = 0.75; + const double authorTagThreshold = 0.75; const double tagFuzz = 0.9; - var artistTags = tracks.Select(x => x.FileTrackInfo.ArtistTitle); + var authorTags = tracks.Select(x => x.FileTrackInfo.AuthorTitle); - if (!HasCommonEntry(artistTags, artistTagThreshold, tagFuzz)) + if (!HasCommonEntry(authorTags, authorTagThreshold, tagFuzz)) { return true; } - if (VariousArtistTitles.Contains(artistTags.GroupBy(x => x).OrderByDescending(x => x.Count()).First().Key, StringComparer.OrdinalIgnoreCase)) + if (VariousAuthorTitles.Contains(authorTags.GroupBy(x => x).OrderByDescending(x => x.Count()).First().Key, StringComparer.OrdinalIgnoreCase)) { return true; } diff --git a/src/NzbDrone.Core/MediaFiles/BookImport/ImportApprovedBooks.cs b/src/NzbDrone.Core/MediaFiles/BookImport/ImportApprovedBooks.cs index 145be9021..78b4d07a0 100644 --- a/src/NzbDrone.Core/MediaFiles/BookImport/ImportApprovedBooks.cs +++ b/src/NzbDrone.Core/MediaFiles/BookImport/ImportApprovedBooks.cs @@ -88,11 +88,11 @@ namespace NzbDrone.Core.MediaFiles.BookImport .GroupBy(e => e.Item.Book.ForeignBookId).ToList(); var iDecision = 1; - foreach (var albumDecision in bookDecisions) + foreach (var bookDecision in bookDecisions) { - _logger.ProgressInfo($"Importing book {iDecision++}/{bookDecisions.Count} {albumDecision.First().Item.Book}"); + _logger.ProgressInfo($"Importing book {iDecision++}/{bookDecisions.Count} {bookDecision.First().Item.Book}"); - var decisionList = albumDecision.ToList(); + var decisionList = bookDecision.ToList(); var author = EnsureAuthorAdded(decisionList, addedAuthors); @@ -116,12 +116,12 @@ namespace NzbDrone.Core.MediaFiles.BookImport // } // set the correct release to be monitored before importing the new files - var newRelease = albumDecision.First().Item.Edition; + var newRelease = bookDecision.First().Item.Edition; _logger.Debug("Updating release to {0}", newRelease); book.Editions = _editionService.SetMonitored(newRelease); // Publish book edited event. - // Deliberatly don't put in the old book since we don't want to trigger an ArtistScan. + // Deliberatly don't put in the old book since we don't want to trigger an AuthorScan. _eventAggregator.PublishEvent(new BookEditedEvent(book, book)); } @@ -260,15 +260,15 @@ namespace NzbDrone.Core.MediaFiles.BookImport _eventAggregator.PublishEvent(trackImportedEvent); } - var albumImports = importResults.Where(e => e.ImportDecision.Item.Book != null) + var bookImports = importResults.Where(e => e.ImportDecision.Item.Book != null) .GroupBy(e => e.ImportDecision.Item.Book.Id).ToList(); - foreach (var albumImport in albumImports) + foreach (var bookImport in bookImports) { - var book = albumImport.First().ImportDecision.Item.Book; - var author = albumImport.First().ImportDecision.Item.Author; + var book = bookImport.First().ImportDecision.Item.Book; + var author = bookImport.First().ImportDecision.Item.Author; - if (albumImport.Where(e => e.Errors.Count == 0).ToList().Count > 0 && author != null && book != null) + if (bookImport.Where(e => e.Errors.Count == 0).ToList().Count > 0 && author != null && book != null) { _eventAggregator.PublishEvent(new BookImportedEvent( author, @@ -284,7 +284,7 @@ namespace NzbDrone.Core.MediaFiles.BookImport importResults.AddRange(decisions.Where(c => !c.Approved) .Select(d => new ImportResult(d, d.Rejections.Select(r => r.Reason).ToArray()))); - // Refresh any artists we added + // Refresh any authors we added if (addedAuthors.Any()) { _commandQueueManager.Push(new BulkRefreshAuthorCommand(addedAuthors.Select(x => x.Id).ToList(), true)); @@ -293,15 +293,15 @@ namespace NzbDrone.Core.MediaFiles.BookImport return importResults; } - private Author EnsureAuthorAdded(List> decisions, List addedArtists) + private Author EnsureAuthorAdded(List> decisions, List addedAuthors) { var author = decisions.First().Item.Author; if (author.Id == 0) { - var dbArtist = _authorService.FindById(author.ForeignAuthorId); + var dbAuthor = _authorService.FindById(author.ForeignAuthorId); - if (dbArtist == null) + if (dbAuthor == null) { _logger.Debug($"Adding remote author {author}"); var path = decisions.First().Item.Path; @@ -327,8 +327,8 @@ namespace NzbDrone.Core.MediaFiles.BookImport try { - dbArtist = _addAuthorService.AddAuthor(author, false); - addedArtists.Add(dbArtist); + dbAuthor = _addAuthorService.AddAuthor(author, false); + addedAuthors.Add(dbAuthor); } catch (Exception e) { @@ -345,12 +345,12 @@ namespace NzbDrone.Core.MediaFiles.BookImport // Put in the newly loaded author foreach (var decision in decisions) { - decision.Item.Author = dbArtist; - decision.Item.Book.Author = dbArtist; - decision.Item.Book.AuthorMetadataId = dbArtist.AuthorMetadataId; + decision.Item.Author = dbAuthor; + decision.Item.Book.Author = dbAuthor; + decision.Item.Book.AuthorMetadataId = dbAuthor.AuthorMetadataId; } - author = dbArtist; + author = dbAuthor; } return author; @@ -380,7 +380,7 @@ namespace NzbDrone.Core.MediaFiles.BookImport catch (Exception e) { _logger.Error(e, "Failed to add book {0}", book); - RejectAlbum(decisions); + RejectBook(decisions); return null; } @@ -389,7 +389,7 @@ namespace NzbDrone.Core.MediaFiles.BookImport var edition = dbBook.Editions.Value.ExclusiveOrDefault(x => x.ForeignEditionId == decisions.First().Item.Edition.ForeignEditionId); if (edition == null) { - RejectAlbum(decisions); + RejectBook(decisions); return null; } @@ -404,7 +404,7 @@ namespace NzbDrone.Core.MediaFiles.BookImport return book; } - private void RejectAlbum(List> decisions) + private void RejectBook(List> decisions) { foreach (var decision in decisions) { diff --git a/src/NzbDrone.Core/MediaFiles/BookImport/ImportArtistDefaults.cs b/src/NzbDrone.Core/MediaFiles/BookImport/ImportArtistDefaults.cs index 80e36e1ea..c5e47915e 100644 --- a/src/NzbDrone.Core/MediaFiles/BookImport/ImportArtistDefaults.cs +++ b/src/NzbDrone.Core/MediaFiles/BookImport/ImportArtistDefaults.cs @@ -3,12 +3,12 @@ using NzbDrone.Core.Books; namespace NzbDrone.Core.MediaFiles.BookImport { - public class ImportArtistDefaults + public class ImportAuthorDefaults { public int MetadataProfileId { get; set; } public int LanguageProfileId { get; set; } public int QualityProfileId { get; set; } - public bool AlbumFolder { get; set; } + public bool BookFolder { get; set; } public MonitorTypes Monitored { get; set; } public HashSet Tags { get; set; } } diff --git a/src/NzbDrone.Core/MediaFiles/BookImport/ImportDecisionMaker.cs b/src/NzbDrone.Core/MediaFiles/BookImport/ImportDecisionMaker.cs index 1d03df1a3..a9d742fe2 100644 --- a/src/NzbDrone.Core/MediaFiles/BookImport/ImportDecisionMaker.cs +++ b/src/NzbDrone.Core/MediaFiles/BookImport/ImportDecisionMaker.cs @@ -57,7 +57,7 @@ namespace NzbDrone.Core.MediaFiles.BookImport private readonly Logger _logger; public ImportDecisionMaker(IEnumerable> trackSpecifications, - IEnumerable> albumSpecifications, + IEnumerable> bookSpecifications, IMediaFileService mediaFileService, IEBookTagService eBookTagService, IAudioTagService audioTagService, @@ -68,7 +68,7 @@ namespace NzbDrone.Core.MediaFiles.BookImport Logger logger) { _trackSpecifications = trackSpecifications; - _bookSpecifications = albumSpecifications; + _bookSpecifications = bookSpecifications; _mediaFileService = mediaFileService; _eBookTagService = eBookTagService; _audioTagService = audioTagService; @@ -110,7 +110,7 @@ namespace NzbDrone.Core.MediaFiles.BookImport var localTrack = new LocalBook { - DownloadClientAlbumInfo = downloadClientItemInfo, + DownloadClientBookInfo = downloadClientItemInfo, FolderTrackInfo = folderInfo, Path = file.FullName, Size = file.Length, diff --git a/src/NzbDrone.Core/MediaFiles/BookImport/Manual/ManualImportService.cs b/src/NzbDrone.Core/MediaFiles/BookImport/Manual/ManualImportService.cs index 49c873714..bc2d15aae 100644 --- a/src/NzbDrone.Core/MediaFiles/BookImport/Manual/ManualImportService.cs +++ b/src/NzbDrone.Core/MediaFiles/BookImport/Manual/ManualImportService.cs @@ -128,7 +128,7 @@ namespace NzbDrone.Core.MediaFiles.BookImport.Manual { DownloadClientItem downloadClientItem = null; var directoryInfo = new DirectoryInfo(folder); - author = author ?? _parsingService.GetArtist(directoryInfo.Name); + author = author ?? _parsingService.GetAuthor(directoryInfo.Name); if (downloadId.IsNotNullOrWhiteSpace()) { @@ -283,7 +283,7 @@ namespace NzbDrone.Core.MediaFiles.BookImport.Manual foreach (var importBookId in bookIds) { - var albumImportDecisions = new List>(); + var bookImportDecisions = new List>(); // turn off anyReleaseOk if specified if (importBookId.First().DisableReleaseSwitching) @@ -323,19 +323,19 @@ namespace NzbDrone.Core.MediaFiles.BookImport.Manual importDecision.Reject(new Rejection($"Destination author folder {author.Path} is not in a Root Folder")); } - albumImportDecisions.Add(importDecision); + bookImportDecisions.Add(importDecision); fileCount += 1; } var downloadId = importBookId.Select(x => x.DownloadId).FirstOrDefault(x => x.IsNotNullOrWhiteSpace()); if (downloadId.IsNullOrWhiteSpace()) { - imported.AddRange(_importApprovedBooks.Import(albumImportDecisions, message.ReplaceExistingFiles, null, message.ImportMode)); + imported.AddRange(_importApprovedBooks.Import(bookImportDecisions, message.ReplaceExistingFiles, null, message.ImportMode)); } else { var trackedDownload = _trackedDownloadService.Find(downloadId); - var importResults = _importApprovedBooks.Import(albumImportDecisions, message.ReplaceExistingFiles, trackedDownload.DownloadItem, message.ImportMode); + var importResults = _importApprovedBooks.Import(bookImportDecisions, message.ReplaceExistingFiles, trackedDownload.DownloadItem, message.ImportMode); imported.AddRange(importResults); diff --git a/src/NzbDrone.Core/MediaFiles/BookImport/Specifications/AlbumUpgradeSpecification.cs b/src/NzbDrone.Core/MediaFiles/BookImport/Specifications/AlbumUpgradeSpecification.cs index 92ef19bfa..126458247 100644 --- a/src/NzbDrone.Core/MediaFiles/BookImport/Specifications/AlbumUpgradeSpecification.cs +++ b/src/NzbDrone.Core/MediaFiles/BookImport/Specifications/AlbumUpgradeSpecification.cs @@ -7,11 +7,11 @@ using NzbDrone.Core.Qualities; namespace NzbDrone.Core.MediaFiles.BookImport.Specifications { - public class AlbumUpgradeSpecification : IImportDecisionEngineSpecification + public class BookUpgradeSpecification : IImportDecisionEngineSpecification { private readonly Logger _logger; - public AlbumUpgradeSpecification(Logger logger) + public BookUpgradeSpecification(Logger logger) { _logger = logger; } @@ -32,8 +32,8 @@ namespace NzbDrone.Core.MediaFiles.BookImport.Specifications // _logger.Debug("Min quality of existing files: {0}", existingMinQuality); // if (qualityComparer.Compare(existingMinQuality, newMinQuality) > 0) // { - // _logger.Debug("This album isn't a quality upgrade for all tracks. Skipping {0}", item); - // return Decision.Reject("Not an upgrade for existing album file(s)"); + // _logger.Debug("This book isn't a quality upgrade for all tracks. Skipping {0}", item); + // return Decision.Reject("Not an upgrade for existing book file(s)"); // } // } return Decision.Accept(); diff --git a/src/NzbDrone.Core/MediaFiles/BookImport/Specifications/AlreadyImportedSpecification.cs b/src/NzbDrone.Core/MediaFiles/BookImport/Specifications/AlreadyImportedSpecification.cs index 9f39e169c..2a505cdd4 100644 --- a/src/NzbDrone.Core/MediaFiles/BookImport/Specifications/AlreadyImportedSpecification.cs +++ b/src/NzbDrone.Core/MediaFiles/BookImport/Specifications/AlreadyImportedSpecification.cs @@ -22,7 +22,7 @@ namespace NzbDrone.Core.MediaFiles.BookImport.Specifications public SpecificationPriority Priority => SpecificationPriority.Database; - public Decision IsSatisfiedBy(LocalEdition localAlbumRelease, DownloadClientItem downloadClientItem) + public Decision IsSatisfiedBy(LocalEdition localBookRelease, DownloadClientItem downloadClientItem) { if (downloadClientItem == null) { @@ -30,17 +30,17 @@ namespace NzbDrone.Core.MediaFiles.BookImport.Specifications return Decision.Accept(); } - var albumRelease = localAlbumRelease.Edition; + var bookRelease = localBookRelease.Edition; - if ((!albumRelease?.BookFiles?.Value?.Any()) ?? true) + if ((!bookRelease.BookFiles?.Value?.Any()) ?? true) { _logger.Debug("Skipping already imported check for book without files"); return Decision.Accept(); } - var albumHistory = _historyService.GetByBook(albumRelease.Id, null); - var lastImported = albumHistory.FirstOrDefault(h => h.EventType == HistoryEventType.DownloadImported); - var lastGrabbed = albumHistory.FirstOrDefault(h => h.EventType == HistoryEventType.Grabbed); + var bookHistory = _historyService.GetByBook(bookRelease.BookId, null); + var lastImported = bookHistory.FirstOrDefault(h => h.EventType == HistoryEventType.DownloadImported); + var lastGrabbed = bookHistory.FirstOrDefault(h => h.EventType == HistoryEventType.Grabbed); if (lastImported == null) { diff --git a/src/NzbDrone.Core/MediaFiles/BookImport/Specifications/AuthorPathInRootFolderSpecification.cs b/src/NzbDrone.Core/MediaFiles/BookImport/Specifications/AuthorPathInRootFolderSpecification.cs index 403a7e63a..66c1e3d2a 100644 --- a/src/NzbDrone.Core/MediaFiles/BookImport/Specifications/AuthorPathInRootFolderSpecification.cs +++ b/src/NzbDrone.Core/MediaFiles/BookImport/Specifications/AuthorPathInRootFolderSpecification.cs @@ -22,7 +22,7 @@ namespace NzbDrone.Core.MediaFiles.BookImport.Specifications public Decision IsSatisfiedBy(LocalEdition item, DownloadClientItem downloadClientItem) { - // Prevent imports to artists that are no longer inside a root folder Readarr manages + // Prevent imports to authors that are no longer inside a root folder Readarr manages var author = item.Edition.Book.Value.Author.Value; // a new author will have empty path, and will end up having path assinged based on file location diff --git a/src/NzbDrone.Core/MediaFiles/BookImport/Specifications/CloseAlbumMatchSpecification.cs b/src/NzbDrone.Core/MediaFiles/BookImport/Specifications/CloseAlbumMatchSpecification.cs index 98a5cf427..7a0d34239 100644 --- a/src/NzbDrone.Core/MediaFiles/BookImport/Specifications/CloseAlbumMatchSpecification.cs +++ b/src/NzbDrone.Core/MediaFiles/BookImport/Specifications/CloseAlbumMatchSpecification.cs @@ -6,12 +6,12 @@ using NzbDrone.Core.Parser.Model; namespace NzbDrone.Core.MediaFiles.BookImport.Specifications { - public class CloseAlbumMatchSpecification : IImportDecisionEngineSpecification + public class CloseBookMatchSpecification : IImportDecisionEngineSpecification { - private const double _albumThreshold = 0.20; + private const double _bookThreshold = 0.20; private readonly Logger _logger; - public CloseAlbumMatchSpecification(Logger logger) + public CloseBookMatchSpecification(Logger logger) { _logger = logger; } @@ -26,27 +26,27 @@ namespace NzbDrone.Core.MediaFiles.BookImport.Specifications { dist = item.Distance.NormalizedDistance(); reasons = item.Distance.Reasons; - if (dist > _albumThreshold) + if (dist > _bookThreshold) { - _logger.Debug($"Album match is not close enough: {dist} vs {_albumThreshold} {reasons}. Skipping {item}"); - return Decision.Reject($"Album match is not close enough: {1 - dist:P1} vs {1 - _albumThreshold:P0} {reasons}"); + _logger.Debug($"Book match is not close enough: {dist} vs {_bookThreshold} {reasons}. Skipping {item}"); + return Decision.Reject($"Book match is not close enough: {1 - dist:P1} vs {1 - _bookThreshold:P0} {reasons}"); } } // otherwise importing existing files in library else { - // get album distance ignoring whether tracks are missing + // get book distance ignoring whether tracks are missing dist = item.Distance.NormalizedDistanceExcluding(new List { "missing_tracks", "unmatched_tracks" }); reasons = item.Distance.Reasons; - if (dist > _albumThreshold) + if (dist > _bookThreshold) { - _logger.Debug($"Album match is not close enough: {dist} vs {_albumThreshold} {reasons}. Skipping {item}"); - return Decision.Reject($"Album match is not close enough: {1 - dist:P1} vs {1 - _albumThreshold:P0} {reasons}"); + _logger.Debug($"Book match is not close enough: {dist} vs {_bookThreshold} {reasons}. Skipping {item}"); + return Decision.Reject($"Book match is not close enough: {1 - dist:P1} vs {1 - _bookThreshold:P0} {reasons}"); } } - _logger.Debug($"Accepting release {item}: dist {dist} vs {_albumThreshold} {reasons}"); + _logger.Debug($"Accepting release {item}: dist {dist} vs {_bookThreshold} {reasons}"); return Decision.Accept(); } } diff --git a/src/NzbDrone.Core/MediaFiles/BookImport/Specifications/SameFileSpecification.cs b/src/NzbDrone.Core/MediaFiles/BookImport/Specifications/SameFileSpecification.cs index c66fe9dce..5f07fe9a2 100644 --- a/src/NzbDrone.Core/MediaFiles/BookImport/Specifications/SameFileSpecification.cs +++ b/src/NzbDrone.Core/MediaFiles/BookImport/Specifications/SameFileSpecification.cs @@ -15,9 +15,9 @@ namespace NzbDrone.Core.MediaFiles.BookImport.Specifications _logger = logger; } - public Decision IsSatisfiedBy(LocalBook item, DownloadClientItem downloadClientItem) + public Decision IsSatisfiedBy(LocalBook localBook, DownloadClientItem downloadClientItem) { - var bookFiles = item.Book?.BookFiles?.Value; + var bookFiles = localBook.Book?.BookFiles?.Value; if (bookFiles == null || !bookFiles.Any()) { @@ -27,9 +27,17 @@ namespace NzbDrone.Core.MediaFiles.BookImport.Specifications foreach (var bookFile in bookFiles) { - if (bookFile.Size == item.Size) + if (bookFile == null) { - _logger.Debug("'{0}' Has the same filesize as existing file", item.Path); + var book = localBook.Book; + _logger.Trace("Unable to get book file details from the DB. BookId: {0}", book.Id); + + return Decision.Accept(); + } + + if (bookFile.Size == localBook.Size) + { + _logger.Debug("'{0}' Has the same filesize as existing file", localBook.Path); return Decision.Reject("Has the same filesize as existing file"); } } diff --git a/src/NzbDrone.Core/MediaFiles/BookImport/Specifications/UpgradeSpecification.cs b/src/NzbDrone.Core/MediaFiles/BookImport/Specifications/UpgradeSpecification.cs index 07fad0a1e..f898f7ee7 100644 --- a/src/NzbDrone.Core/MediaFiles/BookImport/Specifications/UpgradeSpecification.cs +++ b/src/NzbDrone.Core/MediaFiles/BookImport/Specifications/UpgradeSpecification.cs @@ -24,7 +24,7 @@ namespace NzbDrone.Core.MediaFiles.BookImport.Specifications var files = item.Book?.BookFiles?.Value; if (files == null || !files.Any()) { - // No existing books, skip. This guards against new artists not having a QualityProfile. + // No existing books, skip. This guards against new authors not having a QualityProfile. return Decision.Accept(); } diff --git a/src/NzbDrone.Core/MediaFiles/Commands/RescanFoldersCommand.cs b/src/NzbDrone.Core/MediaFiles/Commands/RescanFoldersCommand.cs index dfbba7b44..fdb4f3706 100644 --- a/src/NzbDrone.Core/MediaFiles/Commands/RescanFoldersCommand.cs +++ b/src/NzbDrone.Core/MediaFiles/Commands/RescanFoldersCommand.cs @@ -9,20 +9,20 @@ namespace NzbDrone.Core.MediaFiles.Commands { // These are the settings used in the scheduled task Filter = FilterFilesType.Known; - AddNewArtists = true; + AddNewAuthors = true; } - public RescanFoldersCommand(List folders, FilterFilesType filter, bool addNewArtists, List authorIds) + public RescanFoldersCommand(List folders, FilterFilesType filter, bool addNewAuthors, List authorIds) { Folders = folders; Filter = filter; - AddNewArtists = addNewArtists; + AddNewAuthors = addNewAuthors; AuthorIds = authorIds; } public List Folders { get; set; } public FilterFilesType Filter { get; set; } - public bool AddNewArtists { get; set; } + public bool AddNewAuthors { get; set; } public List AuthorIds { get; set; } public override bool SendUpdatesToClient => true; diff --git a/src/NzbDrone.Core/MediaFiles/DiskScanService.cs b/src/NzbDrone.Core/MediaFiles/DiskScanService.cs index 874ee251f..89037db96 100644 --- a/src/NzbDrone.Core/MediaFiles/DiskScanService.cs +++ b/src/NzbDrone.Core/MediaFiles/DiskScanService.cs @@ -13,8 +13,8 @@ using NzbDrone.Common.Instrumentation.Extensions; using NzbDrone.Common.Serializer; using NzbDrone.Core.Books; using NzbDrone.Core.Books.Calibre; -using NzbDrone.Core.MediaFiles.BookImport; using NzbDrone.Core.Configuration; +using NzbDrone.Core.MediaFiles.BookImport; using NzbDrone.Core.MediaFiles.Commands; using NzbDrone.Core.MediaFiles.Events; using NzbDrone.Core.Messaging.Commands; @@ -26,7 +26,7 @@ namespace NzbDrone.Core.MediaFiles { public interface IDiskScanService { - void Scan(List folders = null, FilterFilesType filter = FilterFilesType.Known, bool addNewArtists = false, List authorIds = null); + void Scan(List folders = null, FilterFilesType filter = FilterFilesType.Known, bool addNewAuthors = false, List authorIds = null); IFileInfo[] GetBookFiles(string path, bool allDirectories = true); string[] GetNonBookFiles(string path, bool allDirectories = true); List FilterFiles(string basePath, IEnumerable files); @@ -78,7 +78,7 @@ namespace NzbDrone.Core.MediaFiles _logger = logger; } - public void Scan(List folders = null, FilterFilesType filter = FilterFilesType.Known, bool addNewArtists = false, List authorIds = null) + public void Scan(List folders = null, FilterFilesType filter = FilterFilesType.Known, bool addNewAuthors = false, List authorIds = null) { if (folders == null) { @@ -158,7 +158,7 @@ namespace NzbDrone.Core.MediaFiles { Filter = filter, IncludeExisting = true, - AddNewAuthors = addNewArtists + AddNewAuthors = addNewAuthors }; var decisions = _importDecisionMaker.GetImportDecisions(mediaFileList, null, null, config); @@ -219,8 +219,8 @@ namespace NzbDrone.Core.MediaFiles _logger.Debug($"Updated info for {updatedFiles.Count} known files"); - var artists = _authorService.GetAuthors(authorIds); - foreach (var author in artists) + var authors = _authorService.GetAuthors(authorIds); + foreach (var author in authors) { CompletedScanning(author); } @@ -307,7 +307,7 @@ namespace NzbDrone.Core.MediaFiles public void Execute(RescanFoldersCommand message) { - Scan(message.Folders, message.Filter, message.AddNewArtists, message.AuthorIds); + Scan(message.Folders, message.Filter, message.AddNewAuthors, message.AuthorIds); } } } diff --git a/src/NzbDrone.Core/MediaFiles/DownloadedBooksImportService.cs b/src/NzbDrone.Core/MediaFiles/DownloadedBooksImportService.cs index 189601044..3b557d36b 100644 --- a/src/NzbDrone.Core/MediaFiles/DownloadedBooksImportService.cs +++ b/src/NzbDrone.Core/MediaFiles/DownloadedBooksImportService.cs @@ -149,7 +149,7 @@ namespace NzbDrone.Core.MediaFiles private List ProcessFolder(IDirectoryInfo directoryInfo, ImportMode importMode, DownloadClientItem downloadClientItem) { var cleanedUpName = GetCleanedUpFolderName(directoryInfo.Name); - var author = _parsingService.GetArtist(cleanedUpName); + var author = _parsingService.GetAuthor(cleanedUpName); if (author == null) { @@ -182,8 +182,8 @@ namespace NzbDrone.Core.MediaFiles trackInfo = new ParsedTrackInfo { - AlbumTitle = folderInfo.BookTitle, - ArtistTitle = folderInfo.AuthorName, + BookTitle = folderInfo.BookTitle, + AuthorTitle = folderInfo.AuthorName, Quality = folderInfo.Quality, ReleaseGroup = folderInfo.ReleaseGroup, ReleaseHash = folderInfo.ReleaseHash, @@ -249,7 +249,7 @@ namespace NzbDrone.Core.MediaFiles private List ProcessFile(IFileInfo fileInfo, ImportMode importMode, DownloadClientItem downloadClientItem) { - var author = _parsingService.GetArtist(Path.GetFileNameWithoutExtension(fileInfo.Name)); + var author = _parsingService.GetAuthor(Path.GetFileNameWithoutExtension(fileInfo.Name)); if (author == null) { @@ -339,7 +339,7 @@ namespace NzbDrone.Core.MediaFiles if (mount == null) { - _logger.Error("Import failed, path does not exist or is not accessible by Lidarr: {0}. Unable to find a volume mounted for the path. If you're using a mapped network drive see the FAQ for more info", path); + _logger.Error("Import failed, path does not exist or is not accessible by Readarr: {0}. Unable to find a volume mounted for the path. If you're using a mapped network drive see the FAQ for more info", path); return; } diff --git a/src/NzbDrone.Core/MediaFiles/EbookTagService.cs b/src/NzbDrone.Core/MediaFiles/EbookTagService.cs index 7865f6721..0d27fa839 100644 --- a/src/NzbDrone.Core/MediaFiles/EbookTagService.cs +++ b/src/NzbDrone.Core/MediaFiles/EbookTagService.cs @@ -63,8 +63,8 @@ namespace NzbDrone.Core.MediaFiles { using (var bookRef = EpubReader.OpenBook(file)) { - result.ArtistTitle = bookRef.AuthorList.FirstOrDefault(); - result.AlbumTitle = bookRef.Title; + result.AuthorTitle = bookRef.AuthorList.FirstOrDefault(); + result.BookTitle = bookRef.Title; var meta = bookRef.Schema.Package.Metadata; @@ -99,8 +99,8 @@ namespace NzbDrone.Core.MediaFiles try { var book = new Azw3File(file); - result.ArtistTitle = book.Author; - result.AlbumTitle = book.Title; + result.AuthorTitle = book.Author; + result.BookTitle = book.Title; result.Isbn = StripIsbn(book.Isbn); result.Asin = book.Asin; result.Language = book.Language; @@ -146,8 +146,8 @@ namespace NzbDrone.Core.MediaFiles try { var book = PdfReader.Open(file, PdfDocumentOpenMode.InformationOnly); - result.ArtistTitle = book.Info.Author; - result.AlbumTitle = book.Info.Title; + result.AuthorTitle = book.Info.Author; + result.BookTitle = book.Info.Title; _logger.Trace(book.Info.ToJson()); _logger.Trace(book.CustomValues.ToJson()); diff --git a/src/NzbDrone.Core/MediaFiles/FileDateType.cs b/src/NzbDrone.Core/MediaFiles/FileDateType.cs index 5173d8c0f..7d288f0fc 100644 --- a/src/NzbDrone.Core/MediaFiles/FileDateType.cs +++ b/src/NzbDrone.Core/MediaFiles/FileDateType.cs @@ -3,6 +3,6 @@ namespace NzbDrone.Core.MediaFiles public enum FileDateType { None = 0, - AlbumReleaseDate = 1 + BookReleaseDate = 1 } } diff --git a/src/NzbDrone.Core/MediaFiles/MediaFileDeletionService.cs b/src/NzbDrone.Core/MediaFiles/MediaFileDeletionService.cs index c8abc9a98..b93bdfeb8 100644 --- a/src/NzbDrone.Core/MediaFiles/MediaFileDeletionService.cs +++ b/src/NzbDrone.Core/MediaFiles/MediaFileDeletionService.cs @@ -104,9 +104,9 @@ namespace NzbDrone.Core.MediaFiles if (message.DeleteFiles) { var author = message.Author; - var allArtists = _authorService.AllAuthorPaths(); + var allAuthors = _authorService.AllAuthorPaths(); - foreach (var s in allArtists) + foreach (var s in allAuthors) { if (s.Key == author.Id) { diff --git a/src/NzbDrone.Core/MediaFiles/RenameBookFileService.cs b/src/NzbDrone.Core/MediaFiles/RenameBookFileService.cs index eda191525..19c72a09a 100644 --- a/src/NzbDrone.Core/MediaFiles/RenameBookFileService.cs +++ b/src/NzbDrone.Core/MediaFiles/RenameBookFileService.cs @@ -157,9 +157,9 @@ namespace NzbDrone.Core.MediaFiles public void Execute(RenameAuthorCommand message) { _logger.Debug("Renaming all files for selected author"); - var artistToRename = _authorService.GetAuthors(message.AuthorIds); + var authorToRename = _authorService.GetAuthors(message.AuthorIds); - foreach (var author in artistToRename) + foreach (var author in authorToRename) { var bookFiles = _mediaFileService.GetFilesByAuthor(author.Id); _logger.ProgressInfo("Renaming all files in author: {0}", author.Name); diff --git a/src/NzbDrone.Core/MediaFiles/UpdateTrackFileService.cs b/src/NzbDrone.Core/MediaFiles/UpdateTrackFileService.cs index 149c1c2aa..ee4a29d1f 100644 --- a/src/NzbDrone.Core/MediaFiles/UpdateTrackFileService.cs +++ b/src/NzbDrone.Core/MediaFiles/UpdateTrackFileService.cs @@ -48,7 +48,7 @@ namespace NzbDrone.Core.MediaFiles switch (_configService.FileDate) { - case FileDateType.AlbumReleaseDate: + case FileDateType.BookReleaseDate: { if (!book.ReleaseDate.HasValue) { diff --git a/src/NzbDrone.Core/MetadataSource/Goodreads/GoodreadsProxy.cs b/src/NzbDrone.Core/MetadataSource/Goodreads/GoodreadsProxy.cs index a20afe32d..a234c6a5a 100644 --- a/src/NzbDrone.Core/MetadataSource/Goodreads/GoodreadsProxy.cs +++ b/src/NzbDrone.Core/MetadataSource/Goodreads/GoodreadsProxy.cs @@ -68,7 +68,7 @@ namespace NzbDrone.Core.MetadataSource.Goodreads .CreateFactory(); } - public HashSet GetChangedArtists(DateTime startTime) + public HashSet GetChangedAuthors(DateTime startTime) { return null; } diff --git a/src/NzbDrone.Core/MetadataSource/IProvideAuthorInfo.cs b/src/NzbDrone.Core/MetadataSource/IProvideAuthorInfo.cs index 76a241327..3811056bc 100644 --- a/src/NzbDrone.Core/MetadataSource/IProvideAuthorInfo.cs +++ b/src/NzbDrone.Core/MetadataSource/IProvideAuthorInfo.cs @@ -8,6 +8,6 @@ namespace NzbDrone.Core.MetadataSource { Author GetAuthorInfo(string readarrId, bool useCache = true); Author GetAuthorAndBooks(string readarrId, double minPopularity = 0); - HashSet GetChangedArtists(DateTime startTime); + HashSet GetChangedAuthors(DateTime startTime); } } diff --git a/src/NzbDrone.Core/MetadataSource/SkyHook/SkyHookProxy.cs b/src/NzbDrone.Core/MetadataSource/SkyHook/SkyHookProxy.cs index 484b32a24..2729c0cb0 100644 --- a/src/NzbDrone.Core/MetadataSource/SkyHook/SkyHookProxy.cs +++ b/src/NzbDrone.Core/MetadataSource/SkyHook/SkyHookProxy.cs @@ -37,7 +37,7 @@ namespace NzbDrone.Core.MetadataSource.SkyHook _logger = logger; } - public HashSet GetChangedArtists(DateTime startTime) + public HashSet GetChangedAuthors(DateTime startTime) { return null; } @@ -76,10 +76,10 @@ namespace NzbDrone.Core.MetadataSource.SkyHook public HashSet GetChangedBooks(DateTime startTime) { - return _cache.Get("ChangedAlbums", () => GetChangedAlbumsUncached(startTime), TimeSpan.FromMinutes(30)); + return _cache.Get("ChangedBooks", () => GetChangedBooksUncached(startTime), TimeSpan.FromMinutes(30)); } - private HashSet GetChangedAlbumsUncached(DateTime startTime) + private HashSet GetChangedBooksUncached(DateTime startTime) { return null; } diff --git a/src/NzbDrone.Core/Notifications/Join/JoinProxy.cs b/src/NzbDrone.Core/Notifications/Join/JoinProxy.cs index 540a620b8..bb776b0f4 100644 --- a/src/NzbDrone.Core/Notifications/Join/JoinProxy.cs +++ b/src/NzbDrone.Core/Notifications/Join/JoinProxy.cs @@ -92,7 +92,7 @@ namespace NzbDrone.Core.Notifications.Join var request = requestBuilder.AddQueryParam("apikey", settings.ApiKey) .AddQueryParam("title", title) .AddQueryParam("text", message) - .AddQueryParam("icon", "https://cdn.rawgit.com/Readarr/Readarr/develop/Logo/256.png") // Use the Lidarr logo. + .AddQueryParam("icon", "https://cdn.rawgit.com/Readarr/Readarr/develop/Logo/256.png") // Use the Readarr logo. .AddQueryParam("smallicon", "https://cdn.rawgit.com/Readarr/Readarr/develop/Logo/96-Outline-White.png") // 96x96px with outline at 88x88px on a transparent background. .AddQueryParam("priority", settings.Priority) .Build(); diff --git a/src/NzbDrone.Core/Notifications/NotificationService.cs b/src/NzbDrone.Core/Notifications/NotificationService.cs index eaad0f332..b49d55267 100644 --- a/src/NzbDrone.Core/Notifications/NotificationService.cs +++ b/src/NzbDrone.Core/Notifications/NotificationService.cs @@ -32,7 +32,7 @@ namespace NzbDrone.Core.Notifications _logger = logger; } - private string GetMessage(Author author, List albums, QualityModel quality) + private string GetMessage(Author author, List books, QualityModel quality) { var qualityString = quality.Quality.ToString(); @@ -41,23 +41,23 @@ namespace NzbDrone.Core.Notifications qualityString += " Proper"; } - var albumTitles = string.Join(" + ", albums.Select(e => e.Title)); + var bookTitles = string.Join(" + ", books.Select(e => e.Title)); return string.Format("{0} - {1} - [{2}]", author.Name, - albumTitles, + bookTitles, qualityString); } - private string GetAlbumDownloadMessage(Author author, Book album, List tracks) + private string GetBookDownloadMessage(Author author, Book book, List tracks) { return string.Format("{0} - {1} ({2} Tracks Imported)", author.Name, - album.Title, + book.Title, tracks.Count); } - private string GetAlbumIncompleteImportMessage(string source) + private string GetBookIncompleteImportMessage(string source) { return string.Format("Readarr failed to Import all tracks for {0}", source); @@ -76,7 +76,7 @@ namespace NzbDrone.Core.Notifications string.Join("\n", diff.Select(x => $"{x.Key}: {FormatMissing(x.Value.Item1)} → {FormatMissing(x.Value.Item2)}"))); } - private bool ShouldHandleArtist(ProviderDefinition definition, Author author) + private bool ShouldHandleAuthor(ProviderDefinition definition, Author author) { if (definition.Tags.Empty()) { @@ -126,7 +126,7 @@ namespace NzbDrone.Core.Notifications { try { - if (!ShouldHandleArtist(notification.Definition, message.Book.Author)) + if (!ShouldHandleAuthor(notification.Definition, message.Book.Author)) { continue; } @@ -149,7 +149,7 @@ namespace NzbDrone.Core.Notifications var downloadMessage = new BookDownloadMessage { - Message = GetAlbumDownloadMessage(message.Author, message.Book, message.ImportedBooks), + Message = GetBookDownloadMessage(message.Author, message.Book, message.ImportedBooks), Author = message.Author, Book = message.Book, DownloadClient = message.DownloadClient, @@ -162,7 +162,7 @@ namespace NzbDrone.Core.Notifications { try { - if (ShouldHandleArtist(notification.Definition, message.Author)) + if (ShouldHandleAuthor(notification.Definition, message.Author)) { if (downloadMessage.OldFiles.Empty() || ((NotificationDefinition)notification.Definition).OnUpgrade) { @@ -183,7 +183,7 @@ namespace NzbDrone.Core.Notifications { try { - if (ShouldHandleArtist(notification.Definition, message.Author)) + if (ShouldHandleAuthor(notification.Definition, message.Author)) { notification.OnRename(message.Author); } @@ -226,7 +226,7 @@ namespace NzbDrone.Core.Notifications foreach (var notification in _notificationFactory.OnDownloadFailureEnabled()) { - if (ShouldHandleArtist(notification.Definition, message.TrackedDownload.RemoteBook.Author)) + if (ShouldHandleAuthor(notification.Definition, message.TrackedDownload.RemoteBook.Author)) { notification.OnDownloadFailure(downloadFailedMessage); } @@ -238,12 +238,12 @@ namespace NzbDrone.Core.Notifications // TODO: Build out this message so that we can pass on what failed and what was successful var downloadMessage = new BookDownloadMessage { - Message = GetAlbumIncompleteImportMessage(message.TrackedDownload.DownloadItem.Title), + Message = GetBookIncompleteImportMessage(message.TrackedDownload.DownloadItem.Title), }; foreach (var notification in _notificationFactory.OnImportFailureEnabled()) { - if (ShouldHandleArtist(notification.Definition, message.TrackedDownload.RemoteBook.Author)) + if (ShouldHandleAuthor(notification.Definition, message.TrackedDownload.RemoteBook.Author)) { notification.OnImportFailure(downloadMessage); } @@ -264,7 +264,7 @@ namespace NzbDrone.Core.Notifications foreach (var notification in _notificationFactory.OnBookRetagEnabled()) { - if (ShouldHandleArtist(notification.Definition, message.Author)) + if (ShouldHandleAuthor(notification.Definition, message.Author)) { notification.OnBookRetag(retagMessage); } diff --git a/src/NzbDrone.Core/Notifications/SendGrid/SendGrid.cs b/src/NzbDrone.Core/Notifications/SendGrid/SendGrid.cs index c438df60c..19147c2ed 100644 --- a/src/NzbDrone.Core/Notifications/SendGrid/SendGrid.cs +++ b/src/NzbDrone.Core/Notifications/SendGrid/SendGrid.cs @@ -21,12 +21,12 @@ namespace NzbDrone.Core.Notifications.SendGrid public override void OnGrab(GrabMessage grabMessage) { - _proxy.SendNotification(ALBUM_GRABBED_TITLE, grabMessage.Message, Settings); + _proxy.SendNotification(BOOK_GRABBED_TITLE, grabMessage.Message, Settings); } - public override void OnReleaseImport(AlbumDownloadMessage message) + public override void OnReleaseImport(BookDownloadMessage message) { - _proxy.SendNotification(ALBUM_DOWNLOADED_TITLE, message.Message, Settings); + _proxy.SendNotification(BOOK_DOWNLOADED_TITLE, message.Message, Settings); } public override void OnHealthIssue(HealthCheck.HealthCheck healthCheck) @@ -39,7 +39,7 @@ namespace NzbDrone.Core.Notifications.SendGrid _proxy.SendNotification(DOWNLOAD_FAILURE_TITLE, message.Message, Settings); } - public override void OnImportFailure(AlbumDownloadMessage message) + public override void OnImportFailure(BookDownloadMessage message) { _proxy.SendNotification(IMPORT_FAILURE_TITLE, message.Message, Settings); } @@ -51,7 +51,7 @@ namespace NzbDrone.Core.Notifications.SendGrid try { const string title = "Test Notification"; - const string body = "This is a test message from Lidarr"; + const string body = "This is a test message from Readarr"; _proxy.SendNotification(title, body, Settings); } diff --git a/src/NzbDrone.Core/Notifications/Webhook/Webhook.cs b/src/NzbDrone.Core/Notifications/Webhook/Webhook.cs index 6216cc261..6750de080 100644 --- a/src/NzbDrone.Core/Notifications/Webhook/Webhook.cs +++ b/src/NzbDrone.Core/Notifications/Webhook/Webhook.cs @@ -26,10 +26,10 @@ namespace NzbDrone.Core.Notifications.Webhook var payload = new WebhookGrabPayload { EventType = WebhookEventType.Grab, - Artist = new WebhookAuthor(message.Author), - Albums = remoteBook.Books.ConvertAll(x => new WebhookBook(x) + Author = new WebhookAuthor(message.Author), + Books = remoteBook.Books.ConvertAll(x => new WebhookBook(x) { - // TODO: Stop passing these parameters inside an album v3 + // TODO: Stop passing these parameters inside an book v3 Quality = quality.Quality.Name, QualityVersion = quality.Revision.Version, ReleaseGroup = remoteBook.ParsedBookInfo.ReleaseGroup @@ -49,7 +49,7 @@ namespace NzbDrone.Core.Notifications.Webhook var payload = new WebhookImportPayload { EventType = WebhookEventType.Download, - Artist = new WebhookAuthor(message.Author), + Author = new WebhookAuthor(message.Author), Book = new WebhookBook(message.Book), BookFiles = bookFiles.ConvertAll(x => new WebhookBookFile(x)), IsUpgrade = message.OldFiles.Any(), @@ -65,7 +65,7 @@ namespace NzbDrone.Core.Notifications.Webhook var payload = new WebhookRenamePayload { EventType = WebhookEventType.Rename, - Artist = new WebhookAuthor(author) + Author = new WebhookAuthor(author) }; _proxy.SendWebhook(payload, Settings); @@ -76,7 +76,7 @@ namespace NzbDrone.Core.Notifications.Webhook var payload = new WebhookRetagPayload { EventType = WebhookEventType.Retag, - Artist = new WebhookAuthor(message.Author) + Author = new WebhookAuthor(message.Author) }; _proxy.SendWebhook(payload, Settings); @@ -114,7 +114,7 @@ namespace NzbDrone.Core.Notifications.Webhook var payload = new WebhookGrabPayload { EventType = WebhookEventType.Test, - Artist = new WebhookAuthor() + Author = new WebhookAuthor() { Id = 1, Name = "Test Name", diff --git a/src/NzbDrone.Core/Notifications/Webhook/WebhookRenamePayload.cs b/src/NzbDrone.Core/Notifications/Webhook/WebhookRenamePayload.cs index 94e4e5cc3..bb9a3e56b 100644 --- a/src/NzbDrone.Core/Notifications/Webhook/WebhookRenamePayload.cs +++ b/src/NzbDrone.Core/Notifications/Webhook/WebhookRenamePayload.cs @@ -2,6 +2,6 @@ namespace NzbDrone.Core.Notifications.Webhook { public class WebhookRenamePayload : WebhookPayload { - public WebhookArtist Artist { get; set; } + public WebhookAuthor Author { get; set; } } } diff --git a/src/NzbDrone.Core/Notifications/Webhook/WebhookRetagPayload.cs b/src/NzbDrone.Core/Notifications/Webhook/WebhookRetagPayload.cs index b969060da..67e3ec729 100644 --- a/src/NzbDrone.Core/Notifications/Webhook/WebhookRetagPayload.cs +++ b/src/NzbDrone.Core/Notifications/Webhook/WebhookRetagPayload.cs @@ -2,6 +2,6 @@ namespace NzbDrone.Core.Notifications.Webhook { public class WebhookRetagPayload : WebhookPayload { - public WebhookArtist Artist { get; set; } + public WebhookAuthor Author { get; set; } } } diff --git a/src/NzbDrone.Core/Organizer/BasicNamingConfig.cs b/src/NzbDrone.Core/Organizer/BasicNamingConfig.cs index 824f45cf8..7ea1b5aef 100644 --- a/src/NzbDrone.Core/Organizer/BasicNamingConfig.cs +++ b/src/NzbDrone.Core/Organizer/BasicNamingConfig.cs @@ -2,8 +2,8 @@ { public class BasicNamingConfig { - public bool IncludeArtistName { get; set; } - public bool IncludeAlbumTitle { get; set; } + public bool IncludeAuthorName { get; set; } + public bool IncludeBookTitle { get; set; } public bool IncludeQuality { get; set; } public bool ReplaceSpaces { get; set; } public string Separator { get; set; } diff --git a/src/NzbDrone.Core/Organizer/FileNameBuilder.cs b/src/NzbDrone.Core/Organizer/FileNameBuilder.cs index a6fd1f143..eb12735ce 100644 --- a/src/NzbDrone.Core/Organizer/FileNameBuilder.cs +++ b/src/NzbDrone.Core/Organizer/FileNameBuilder.cs @@ -158,12 +158,12 @@ namespace NzbDrone.Core.Organizer if (token.StartsWith("{Author", StringComparison.InvariantCultureIgnoreCase)) { - basicNamingConfig.IncludeArtistName = true; + basicNamingConfig.IncludeAuthorName = true; } - if (token.StartsWith("{Album", StringComparison.InvariantCultureIgnoreCase)) + if (token.StartsWith("{Book", StringComparison.InvariantCultureIgnoreCase)) { - basicNamingConfig.IncludeAlbumTitle = true; + basicNamingConfig.IncludeBookTitle = true; } if (token.StartsWith("{Quality", StringComparison.InvariantCultureIgnoreCase)) diff --git a/src/NzbDrone.Core/Parser/Model/LocalBook.cs b/src/NzbDrone.Core/Parser/Model/LocalBook.cs index 64e641898..7d5d92ed1 100644 --- a/src/NzbDrone.Core/Parser/Model/LocalBook.cs +++ b/src/NzbDrone.Core/Parser/Model/LocalBook.cs @@ -13,7 +13,7 @@ namespace NzbDrone.Core.Parser.Model public DateTime Modified { get; set; } public ParsedTrackInfo FileTrackInfo { get; set; } public ParsedTrackInfo FolderTrackInfo { get; set; } - public ParsedBookInfo DownloadClientAlbumInfo { get; set; } + public ParsedBookInfo DownloadClientBookInfo { get; set; } public List AcoustIdResults { get; set; } public Author Author { get; set; } public Book Book { get; set; } diff --git a/src/NzbDrone.Core/Parser/Model/LocalEdition.cs b/src/NzbDrone.Core/Parser/Model/LocalEdition.cs index c8f6eb199..4122f2b1d 100644 --- a/src/NzbDrone.Core/Parser/Model/LocalEdition.cs +++ b/src/NzbDrone.Core/Parser/Model/LocalEdition.cs @@ -15,7 +15,7 @@ namespace NzbDrone.Core.Parser.Model // A dummy distance, will be replaced Distance = new Distance(); - Distance.Add("album_id", 1.0); + Distance.Add("book_id", 1.0); } public LocalEdition(List tracks) @@ -24,7 +24,7 @@ namespace NzbDrone.Core.Parser.Model // A dummy distance, will be replaced Distance = new Distance(); - Distance.Add("album_id", 1.0); + Distance.Add("book_id", 1.0); } public List LocalBooks { get; set; } diff --git a/src/NzbDrone.Core/Parser/Model/ParsedTrackInfo.cs b/src/NzbDrone.Core/Parser/Model/ParsedTrackInfo.cs index b5d804bf3..6b13cef80 100644 --- a/src/NzbDrone.Core/Parser/Model/ParsedTrackInfo.cs +++ b/src/NzbDrone.Core/Parser/Model/ParsedTrackInfo.cs @@ -9,15 +9,15 @@ namespace NzbDrone.Core.Parser.Model //public int TrackNumber { get; set; } public string Title { get; set; } public string CleanTitle { get; set; } - public string ArtistTitle { get; set; } - public string AlbumTitle { get; set; } + public string AuthorTitle { get; set; } + public string BookTitle { get; set; } public string SeriesTitle { get; set; } public string SeriesIndex { get; set; } public string Isbn { get; set; } public string Asin { get; set; } public string GoodreadsId { get; set; } - public string ArtistMBId { get; set; } - public string AlbumMBId { get; set; } + public string AuthorMBId { get; set; } + public string BookMBId { get; set; } public string ReleaseMBId { get; set; } public string RecordingMBId { get; set; } public string TrackMBId { get; set; } @@ -52,7 +52,7 @@ namespace NzbDrone.Core.Parser.Model trackString = string.Format("{0}", string.Join("-", TrackNumbers.Select(c => c.ToString("00")))); } - return string.Format("{0} - {1} - {2}:{3} {4}: {5}", ArtistTitle, AlbumTitle, DiscNumber, trackString, Title, Quality); + return string.Format("{0} - {1} - {2}:{3} {4}: {5}", AuthorTitle, BookTitle, DiscNumber, trackString, Title, Quality); } } } diff --git a/src/NzbDrone.Core/Parser/Parser.cs b/src/NzbDrone.Core/Parser/Parser.cs index 3be10dade..ccd7f9635 100644 --- a/src/NzbDrone.Core/Parser/Parser.cs +++ b/src/NzbDrone.Core/Parser/Parser.cs @@ -38,93 +38,93 @@ namespace NzbDrone.Core.Parser RegexOptions.IgnoreCase | RegexOptions.Compiled), }; - private static readonly Regex[] ReportAlbumTitleRegex = new[] + private static readonly Regex[] ReportBookTitleRegex = new[] { - //ruTracker - (Genre) [Source]? Artist - Discography + //ruTracker - (Genre) [Source]? Author - Discography new Regex(@"^(?:\(.+?\))(?:\W*(?:\[(?.+?)\]))?\W*(?.+?)(?: - )(?Discography|Discografia).+?(?\d{4}).+?(?\d{4})", RegexOptions.IgnoreCase | RegexOptions.Compiled), - //Artist - Discography with two years + //Author - Discography with two years new Regex(@"^(?.+?)(?: - )(?:.+?)?(?Discography|Discografia).+?(?\d{4}).+?(?\d{4})", RegexOptions.IgnoreCase | RegexOptions.Compiled), - //Artist - Discography with end year + //Author - Discography with end year new Regex(@"^(?.+?)(?: - )(?:.+?)?(?Discography|Discografia).+?(?\d{4})", RegexOptions.IgnoreCase | RegexOptions.Compiled), - //Artist Discography with two years + //Author Discography with two years new Regex(@"^(?.+?)\W*(?Discography|Discografia).+?(?\d{4}).+?(?\d{4})", RegexOptions.IgnoreCase | RegexOptions.Compiled), - //Artist Discography with end year + //Author Discography with end year new Regex(@"^(?.+?)\W*(?Discography|Discografia).+?(?\d{4})", RegexOptions.IgnoreCase | RegexOptions.Compiled), - //Artist Discography + //Author Discography new Regex(@"^(?.+?)\W*(?Discography|Discografia)", RegexOptions.IgnoreCase | RegexOptions.Compiled), - //ruTracker - (Genre) [Source]? Artist - Album - Year - new Regex(@"^(?:\(.+?\))(?:\W*(?:\[(?.+?)\]))?\W*(?.+?)(?: - )(?.+?)(?: - )(?\d{4})", + //ruTracker - (Genre) [Source]? Author - Book - Year + new Regex(@"^(?:\(.+?\))(?:\W*(?:\[(?.+?)\]))?\W*(?.+?)(?: - )(?.+?)(?: - )(?\d{4})", RegexOptions.IgnoreCase | RegexOptions.Compiled), - //Artist-Album-Version-Source-Year + //Author-Book-Version-Source-Year //ex. Imagine Dragons-Smoke And Mirrors-Deluxe Edition-2CD-FLAC-2015-JLM - new Regex(@"^(?.+?)[-](?.+?)[-](?:[\(|\[]?)(?.+?(?:Edition)?)(?:[\)|\]]?)[-](?\d?CD|WEB).+?(?\d{4})", + new Regex(@"^(?.+?)[-](?.+?)[-](?:[\(|\[]?)(?.+?(?:Edition)?)(?:[\)|\]]?)[-](?\d?CD|WEB).+?(?\d{4})", RegexOptions.IgnoreCase | RegexOptions.Compiled), - //Artist-Album-Source-Year + //Author-Book-Source-Year //ex. Dani_Sbert-Togheter-WEB-2017-FURY - new Regex(@"^(?.+?)[-](?.+?)[-](?\d?CD|WEB).+?(?\d{4})", + new Regex(@"^(?.+?)[-](?.+?)[-](?\d?CD|WEB).+?(?\d{4})", RegexOptions.IgnoreCase | RegexOptions.Compiled), - //Artist - Album (Year) Strict - new Regex(@"^(?:(?.+?)(?: - )+)(?.+?)\W*(?:\(|\[).+?(?\d{4})", + //Author - Book (Year) Strict + new Regex(@"^(?:(?.+?)(?: - )+)(?.+?)\W*(?:\(|\[).+?(?\d{4})", RegexOptions.IgnoreCase | RegexOptions.Compiled), - //Artist - Album (Year) - new Regex(@"^(?:(?.+?)(?: - )+)(?.+?)\W*(?:\(|\[)(?\d{4})", + //Author - Book (Year) + new Regex(@"^(?:(?.+?)(?: - )+)(?.+?)\W*(?:\(|\[)(?\d{4})", RegexOptions.IgnoreCase | RegexOptions.Compiled), - //Artist - Album - Year [something] - new Regex(@"^(?:(?.+?)(?: - )+)(?.+?)\W*(?: - )(?\d{4})\W*(?:\(|\[)", + //Author - Book - Year [something] + new Regex(@"^(?:(?.+?)(?: - )+)(?.+?)\W*(?: - )(?\d{4})\W*(?:\(|\[)", RegexOptions.IgnoreCase | RegexOptions.Compiled), - //Artist - Album [something] or Artist - Album (something) - new Regex(@"^(?:(?.+?)(?: - )+)(?.+?)\W*(?:\(|\[)", + //Author - Book [something] or Author - Book (something) + new Regex(@"^(?:(?.+?)(?: - )+)(?.+?)\W*(?:\(|\[)", RegexOptions.IgnoreCase | RegexOptions.Compiled), - //Artist - Album Year - new Regex(@"^(?:(?.+?)(?: - )+)(?.+?)\W*(?\d{4})", + //Author - Book Year + new Regex(@"^(?:(?.+?)(?: - )+)(?.+?)\W*(?\d{4})", RegexOptions.IgnoreCase | RegexOptions.Compiled), - //Artist-Album (Year) Strict - //Hyphen no space between author and album - new Regex(@"^(?:(?.+?)(?:-)+)(?.+?)\W*(?:\(|\[).+?(?\d{4})", + //Author-Book (Year) Strict + //Hyphen no space between author and book + new Regex(@"^(?:(?.+?)(?:-)+)(?.+?)\W*(?:\(|\[).+?(?\d{4})", RegexOptions.IgnoreCase | RegexOptions.Compiled), - //Artist-Album (Year) - //Hyphen no space between author and album - new Regex(@"^(?:(?.+?)(?:-)+)(?.+?)\W*(?:\(|\[)(?\d{4})", + //Author-Book (Year) + //Hyphen no space between author and book + new Regex(@"^(?:(?.+?)(?:-)+)(?.+?)\W*(?:\(|\[)(?\d{4})", RegexOptions.IgnoreCase | RegexOptions.Compiled), - //Artist-Album [something] or Artist-Album (something) - //Hyphen no space between author and album - new Regex(@"^(?:(?.+?)(?:-)+)(?.+?)\W*(?:\(|\[)", + //Author-Book [something] or Author-Book (something) + //Hyphen no space between author and book + new Regex(@"^(?:(?.+?)(?:-)+)(?.+?)\W*(?:\(|\[)", RegexOptions.IgnoreCase | RegexOptions.Compiled), - //Artist-Album-something-Year - new Regex(@"^(?:(?.+?)(?:-)+)(?.+?)(?:-.+?)(?\d{4})", + //Author-Book-something-Year + new Regex(@"^(?:(?.+?)(?:-)+)(?.+?)(?:-.+?)(?\d{4})", RegexOptions.IgnoreCase | RegexOptions.Compiled), - //Artist-Album Year - //Hyphen no space between author and album - new Regex(@"^(?:(?.+?)(?:-)+)(?:(?.+?)(?:-)+)(?\d{4})", + //Author-Book Year + //Hyphen no space between author and book + new Regex(@"^(?:(?.+?)(?:-)+)(?:(?.+?)(?:-)+)(?\d{4})", RegexOptions.IgnoreCase | RegexOptions.Compiled), - //Artist - Year - Album - // Hypen with no or more spaces between author/album/year - new Regex(@"^(?:(?.+?)(?:-))(?\d{4})(?:-)(?[^-]+)", + //Author - Year - Book + // Hypen with no or more spaces between author/book/year + new Regex(@"^(?:(?.+?)(?:-))(?\d{4})(?:-)(?[^-]+)", RegexOptions.IgnoreCase | RegexOptions.Compiled), }; @@ -212,7 +212,7 @@ namespace NzbDrone.Core.Parser private static readonly Regex[] CommonTagRegex = new Regex[] { new Regex(@"(\[|\()*\b((featuring|feat.|feat|ft|ft.)\s{1}){1}\s*.*(\]|\))*", RegexOptions.IgnoreCase | RegexOptions.Compiled), - new Regex(@"(?:\(|\[)(?:[^\(\[]*)(?:version|limited|deluxe|single|clean|album|special|bonus|promo|remastered)(?:[^\)\]]*)(?:\)|\])", RegexOptions.IgnoreCase | RegexOptions.Compiled) + new Regex(@"(?:\(|\[)(?:[^\(\[]*)(?:version|limited|deluxe|single|clean|book|special|bonus|promo|remastered)(?:[^\)\]]*)(?:\)|\])", RegexOptions.IgnoreCase | RegexOptions.Compiled) }; private static readonly Regex[] BracketRegex = new Regex[] @@ -333,7 +333,7 @@ namespace NzbDrone.Core.Parser return null; } - var authorName = author.Name == "Various Artists" ? "VA" : author.Name.RemoveAccent(); + var authorName = author.Name == "Various Authors" ? "VA" : author.Name.RemoveAccent(); Logger.Debug("Parsing string '{0}' using search criteria author: '{1}' books: '{2}'", title, @@ -349,10 +349,10 @@ namespace NzbDrone.Core.Parser simpleTitle = CleanTorrentSuffixRegex.Replace(simpleTitle); - var bestAlbum = books.OrderByDescending(x => simpleTitle.FuzzyContains(x.Title)).First(); + var bestBook = books.OrderByDescending(x => simpleTitle.FuzzyContains(x.Title)).First(); var foundAuthor = GetTitleFuzzy(simpleTitle, authorName, out var remainder); - var foundBook = GetTitleFuzzy(remainder, bestAlbum.Title, out _); + var foundBook = GetTitleFuzzy(remainder, bestBook.Title, out _); Logger.Trace($"Found {foundAuthor} - {foundBook} with fuzzy parser"); @@ -518,7 +518,7 @@ namespace NzbDrone.Core.Parser } } - foreach (var regex in ReportAlbumTitleRegex) + foreach (var regex in ReportBookTitleRegex) { var match = regex.Matches(simpleTitle); @@ -527,7 +527,7 @@ namespace NzbDrone.Core.Parser Logger.Trace(regex); try { - var result = ParseAlbumMatchCollection(match); + var result = ParseBookMatchCollection(match); if (result != null) { @@ -654,14 +654,14 @@ namespace NzbDrone.Core.Parser return title; } - public static string CleanAlbumTitle(this string album) + public static string CleanBookTitle(this string book) { - return CommonTagRegex[1].Replace(album, string.Empty).Trim(); + return CommonTagRegex[1].Replace(book, string.Empty).Trim(); } - public static string RemoveBracketsAndContents(this string album) + public static string RemoveBracketsAndContents(this string book) { - var intermediate = album; + var intermediate = book; foreach (var regex in BracketRegex) { intermediate = regex.Replace(intermediate, string.Empty).Trim(); @@ -688,13 +688,13 @@ namespace NzbDrone.Core.Parser private static ParsedTrackInfo ParseMatchMusicCollection(MatchCollection matchCollection) { - var artistName = matchCollection[0].Groups["author"].Value./*Removed for cases like Will.I.Am Replace('.', ' ').*/Replace('_', ' '); - artistName = RequestInfoRegex.Replace(artistName, "").Trim(' '); + var authorName = matchCollection[0].Groups["author"].Value./*Removed for cases like Will.I.Am Replace('.', ' ').*/Replace('_', ' '); + authorName = RequestInfoRegex.Replace(authorName, "").Trim(' '); // Coppied from Radarr (https://github.com/Radarr/Radarr/blob/develop/src/NzbDrone.Core/Parser/Parser.cs) // TODO: Split into separate method and write unit tests for. - var parts = artistName.Split('.'); - artistName = ""; + var parts = authorName.Split('.'); + authorName = ""; int n = 0; bool previousAcronym = false; string nextPart = ""; @@ -707,33 +707,33 @@ namespace NzbDrone.Core.Parser if (part.Length == 1 && part.ToLower() != "a" && !int.TryParse(part, out n)) { - artistName += part + "."; + authorName += part + "."; previousAcronym = true; } else if (part.ToLower() == "a" && (previousAcronym == true || nextPart.Length == 1)) { - artistName += part + "."; + authorName += part + "."; previousAcronym = true; } else { if (previousAcronym) { - artistName += " "; + authorName += " "; previousAcronym = false; } - artistName += part + " "; + authorName += part + " "; } n++; } - artistName = artistName.Trim(' '); + authorName = authorName.Trim(' '); ParsedTrackInfo result = new ParsedTrackInfo(); - result.ArtistTitle = artistName; + result.AuthorTitle = authorName; Logger.Debug("Track Parsed. {0}", result); return result; @@ -741,13 +741,13 @@ namespace NzbDrone.Core.Parser private static AuthorTitleInfo GetAuthorTitleInfo(string title) { - var artistTitleInfo = new AuthorTitleInfo(); - artistTitleInfo.Title = title; + var authorTitleInfo = new AuthorTitleInfo(); + authorTitleInfo.Title = title; - return artistTitleInfo; + return authorTitleInfo; } - public static string ParseArtistName(string title) + public static string ParseAuthorName(string title) { Logger.Debug("Parsing string '{0}'", title); @@ -761,13 +761,13 @@ namespace NzbDrone.Core.Parser return parseResult.AuthorName; } - private static ParsedBookInfo ParseAlbumMatchCollection(MatchCollection matchCollection) + private static ParsedBookInfo ParseBookMatchCollection(MatchCollection matchCollection) { - var artistName = matchCollection[0].Groups["author"].Value.Replace('.', ' ').Replace('_', ' '); - var albumTitle = matchCollection[0].Groups["album"].Value.Replace('.', ' ').Replace('_', ' '); + var authorName = matchCollection[0].Groups["author"].Value.Replace('.', ' ').Replace('_', ' '); + var bookTitle = matchCollection[0].Groups["book"].Value.Replace('.', ' ').Replace('_', ' '); var releaseVersion = matchCollection[0].Groups["version"].Value.Replace('.', ' ').Replace('_', ' '); - artistName = RequestInfoRegex.Replace(artistName, "").Trim(' '); - albumTitle = RequestInfoRegex.Replace(albumTitle, "").Trim(' '); + authorName = RequestInfoRegex.Replace(authorName, "").Trim(' '); + bookTitle = RequestInfoRegex.Replace(bookTitle, "").Trim(' '); releaseVersion = RequestInfoRegex.Replace(releaseVersion, "").Trim(' '); int releaseYear; @@ -777,8 +777,8 @@ namespace NzbDrone.Core.Parser result = new ParsedBookInfo(); - result.AuthorName = artistName; - result.BookTitle = albumTitle; + result.AuthorName = authorName; + result.BookTitle = bookTitle; result.AuthorTitleInfo = GetAuthorTitleInfo(result.AuthorName); result.ReleaseDate = releaseYear.ToString(); result.ReleaseVersion = releaseVersion; @@ -804,7 +804,7 @@ namespace NzbDrone.Core.Parser result.BookTitle = "Discography"; } - Logger.Debug("Album Parsed. {0}", result); + Logger.Debug("Book Parsed. {0}", result); return result; } diff --git a/src/NzbDrone.Core/Parser/ParsingService.cs b/src/NzbDrone.Core/Parser/ParsingService.cs index 3c63f94cd..d7ddd62a6 100644 --- a/src/NzbDrone.Core/Parser/ParsingService.cs +++ b/src/NzbDrone.Core/Parser/ParsingService.cs @@ -13,16 +13,16 @@ namespace NzbDrone.Core.Parser { public interface IParsingService { - Author GetArtist(string title); - Author GetArtistFromTag(string file); + Author GetAuthor(string title); + Author GetAuthorFromTag(string file); RemoteBook Map(ParsedBookInfo parsedBookInfo, SearchCriteriaBase searchCriteria = null); RemoteBook Map(ParsedBookInfo parsedBookInfo, int authorId, IEnumerable bookIds); - List GetAlbums(ParsedBookInfo parsedBookInfo, Author author, SearchCriteriaBase searchCriteria = null); + List GetBooks(ParsedBookInfo parsedBookInfo, Author author, SearchCriteriaBase searchCriteria = null); - ParsedBookInfo ParseAlbumTitleFuzzy(string title); + ParsedBookInfo ParseBookTitleFuzzy(string title); // Music stuff here - Book GetLocalAlbum(string filename, Author author); + Book GetLocalBook(string filename, Author author); } public class ParsingService : IParsingService @@ -43,7 +43,7 @@ namespace NzbDrone.Core.Parser _logger = logger; } - public Author GetArtist(string title) + public Author GetAuthor(string title) { var parsedBookInfo = Parser.ParseBookTitle(title); @@ -52,26 +52,26 @@ namespace NzbDrone.Core.Parser title = parsedBookInfo.AuthorName; } - var artistInfo = _authorService.FindByName(title); + var authorInfo = _authorService.FindByName(title); - if (artistInfo == null) + if (authorInfo == null) { _logger.Debug("Trying inexact author match for {0}", title); - artistInfo = _authorService.FindByNameInexact(title); + authorInfo = _authorService.FindByNameInexact(title); } - return artistInfo; + return authorInfo; } - public Author GetArtistFromTag(string file) + public Author GetAuthorFromTag(string file) { var parsedTrackInfo = Parser.ParseMusicPath(file); var author = new Author(); - if (parsedTrackInfo.ArtistMBId.IsNotNullOrWhiteSpace()) + if (parsedTrackInfo.AuthorMBId.IsNotNullOrWhiteSpace()) { - author = _authorService.FindById(parsedTrackInfo.ArtistMBId); + author = _authorService.FindById(parsedTrackInfo.AuthorMBId); if (author != null) { @@ -79,17 +79,17 @@ namespace NzbDrone.Core.Parser } } - if (parsedTrackInfo == null || parsedTrackInfo.ArtistTitle.IsNullOrWhiteSpace()) + if (parsedTrackInfo == null || parsedTrackInfo.AuthorTitle.IsNullOrWhiteSpace()) { return null; } - author = _authorService.FindByName(parsedTrackInfo.ArtistTitle); + author = _authorService.FindByName(parsedTrackInfo.AuthorTitle); if (author == null) { - _logger.Debug("Trying inexact author match for {0}", parsedTrackInfo.ArtistTitle); - author = _authorService.FindByNameInexact(parsedTrackInfo.ArtistTitle); + _logger.Debug("Trying inexact author match for {0}", parsedTrackInfo.AuthorTitle); + author = _authorService.FindByNameInexact(parsedTrackInfo.AuthorTitle); } return author; @@ -102,7 +102,7 @@ namespace NzbDrone.Core.Parser ParsedBookInfo = parsedBookInfo, }; - var author = GetArtist(parsedBookInfo, searchCriteria); + var author = GetAuthor(parsedBookInfo, searchCriteria); if (author == null) { @@ -110,14 +110,14 @@ namespace NzbDrone.Core.Parser } remoteBook.Author = author; - remoteBook.Books = GetAlbums(parsedBookInfo, author, searchCriteria); + remoteBook.Books = GetBooks(parsedBookInfo, author, searchCriteria); return remoteBook; } - public List GetAlbums(ParsedBookInfo parsedBookInfo, Author author, SearchCriteriaBase searchCriteria = null) + public List GetBooks(ParsedBookInfo parsedBookInfo, Author author, SearchCriteriaBase searchCriteria = null) { - var albumTitle = parsedBookInfo.BookTitle; + var bookTitle = parsedBookInfo.BookTitle; var result = new List(); if (parsedBookInfo.BookTitle == null) @@ -125,7 +125,7 @@ namespace NzbDrone.Core.Parser return new List(); } - Book albumInfo = null; + Book bookInfo = null; if (parsedBookInfo.Discography) { @@ -150,24 +150,24 @@ namespace NzbDrone.Core.Parser if (searchCriteria != null) { - albumInfo = searchCriteria.Books.ExclusiveOrDefault(e => e.Title == albumTitle); + bookInfo = searchCriteria.Books.ExclusiveOrDefault(e => e.Title == bookTitle); } - if (albumInfo == null) + if (bookInfo == null) { // TODO: Search by Title and Year instead of just Title when matching - albumInfo = _bookService.FindByTitle(author.AuthorMetadataId, parsedBookInfo.BookTitle); + bookInfo = _bookService.FindByTitle(author.AuthorMetadataId, parsedBookInfo.BookTitle); } - if (albumInfo == null) + if (bookInfo == null) { _logger.Debug("Trying inexact book match for {0}", parsedBookInfo.BookTitle); - albumInfo = _bookService.FindByTitleInexact(author.AuthorMetadataId, parsedBookInfo.BookTitle); + bookInfo = _bookService.FindByTitleInexact(author.AuthorMetadataId, parsedBookInfo.BookTitle); } - if (albumInfo != null) + if (bookInfo != null) { - result.Add(albumInfo); + result.Add(bookInfo); } else { @@ -187,7 +187,7 @@ namespace NzbDrone.Core.Parser }; } - private Author GetArtist(ParsedBookInfo parsedBookInfo, SearchCriteriaBase searchCriteria) + private Author GetAuthor(ParsedBookInfo parsedBookInfo, SearchCriteriaBase searchCriteria) { Author author = null; @@ -216,7 +216,7 @@ namespace NzbDrone.Core.Parser return author; } - public ParsedBookInfo ParseAlbumTitleFuzzy(string title) + public ParsedBookInfo ParseBookTitleFuzzy(string title) { var bestScore = 0.0; @@ -257,19 +257,19 @@ namespace NzbDrone.Core.Parser return null; } - public Book GetLocalAlbum(string filename, Author author) + public Book GetLocalBook(string filename, Author author) { if (Path.HasExtension(filename)) { filename = Path.GetDirectoryName(filename); } - var tracksInAlbum = _mediaFileService.GetFilesByAuthor(author.Id) + var tracksInBook = _mediaFileService.GetFilesByAuthor(author.Id) .FindAll(s => Path.GetDirectoryName(s.Path) == filename) .DistinctBy(s => s.EditionId) .ToList(); - return tracksInAlbum.Count == 1 ? _bookService.GetBook(tracksInAlbum.First().EditionId) : null; + return tracksInBook.Count == 1 ? _bookService.GetBook(tracksInBook.First().EditionId) : null; } } } diff --git a/src/NzbDrone.Core/Parser/SceneChecker.cs b/src/NzbDrone.Core/Parser/SceneChecker.cs index f99d85afe..74d9d347d 100644 --- a/src/NzbDrone.Core/Parser/SceneChecker.cs +++ b/src/NzbDrone.Core/Parser/SceneChecker.cs @@ -21,7 +21,7 @@ namespace NzbDrone.Core.Parser if (parsedTitle == null || parsedTitle.ReleaseGroup == null || parsedTitle.Quality.Quality == Qualities.Quality.Unknown || - string.IsNullOrWhiteSpace(parsedTitle.ArtistTitle)) + string.IsNullOrWhiteSpace(parsedTitle.AuthorTitle)) { return false; } diff --git a/src/NzbDrone.Core/Profiles/Releases/PreferredWordService.cs b/src/NzbDrone.Core/Profiles/Releases/PreferredWordService.cs index 86f9a525b..85070073a 100644 --- a/src/NzbDrone.Core/Profiles/Releases/PreferredWordService.cs +++ b/src/NzbDrone.Core/Profiles/Releases/PreferredWordService.cs @@ -25,11 +25,11 @@ namespace NzbDrone.Core.Profiles.Releases _logger = logger; } - public int Calculate(Author series, string title, int indexerId) + public int Calculate(Author author, string title, int indexerId) { _logger.Trace("Calculating preferred word score for '{0}'", title); - var releaseProfiles = _releaseProfileService.EnabledForTags(artist.Tags, indexerId); + var releaseProfiles = _releaseProfileService.EnabledForTags(author.Tags, indexerId); var matchingPairs = new List>(); foreach (var releaseProfile in releaseProfiles) diff --git a/src/NzbDrone.Core/Tags/TagService.cs b/src/NzbDrone.Core/Tags/TagService.cs index b113ee01d..89e14080d 100644 --- a/src/NzbDrone.Core/Tags/TagService.cs +++ b/src/NzbDrone.Core/Tags/TagService.cs @@ -100,7 +100,7 @@ namespace NzbDrone.Core.Tags var importLists = _importListFactory.All(); var notifications = _notificationFactory.All(); var restrictions = _releaseProfileService.All(); - var artists = _authorService.GetAllAuthors(); + var authors = _authorService.GetAllAuthors(); var rootFolders = _rootFolderService.All(); var details = new List(); @@ -115,7 +115,7 @@ namespace NzbDrone.Core.Tags ImportListIds = importLists.Where(c => c.Tags.Contains(tag.Id)).Select(c => c.Id).ToList(), NotificationIds = notifications.Where(c => c.Tags.Contains(tag.Id)).Select(c => c.Id).ToList(), RestrictionIds = restrictions.Where(c => c.Tags.Contains(tag.Id)).Select(c => c.Id).ToList(), - AuthorIds = artists.Where(c => c.Tags.Contains(tag.Id)).Select(c => c.Id).ToList(), + AuthorIds = authors.Where(c => c.Tags.Contains(tag.Id)).Select(c => c.Id).ToList(), RootFolderIds = rootFolders.Where(c => c.DefaultTags.Contains(tag.Id)).Select(c => c.Id).ToList() }); } diff --git a/src/NzbDrone.Integration.Test/ApiTests/AuthorEditorFixture.cs b/src/NzbDrone.Integration.Test/ApiTests/AuthorEditorFixture.cs index cd08d7fdc..9f6ff3e49 100644 --- a/src/NzbDrone.Integration.Test/ApiTests/AuthorEditorFixture.cs +++ b/src/NzbDrone.Integration.Test/ApiTests/AuthorEditorFixture.cs @@ -24,19 +24,19 @@ namespace NzbDrone.Integration.Test.ApiTests } [Test] - public void should_be_able_to_update_multiple_artist() + public void should_be_able_to_update_multiple_author() { GivenExistingAuthor(); var author = Author.All(); - var artistEditor = new AuthorEditorResource + var authorEditor = new AuthorEditorResource { QualityProfileId = 2, AuthorIds = author.Select(o => o.Id).ToList() }; - var result = Author.Editor(artistEditor); + var result = Author.Editor(authorEditor); result.Should().HaveCount(2); result.TrueForAll(s => s.QualityProfileId == 2).Should().BeTrue(); diff --git a/src/NzbDrone.Integration.Test/ApiTests/AuthorFixture.cs b/src/NzbDrone.Integration.Test/ApiTests/AuthorFixture.cs index 09352419b..4042e469a 100644 --- a/src/NzbDrone.Integration.Test/ApiTests/AuthorFixture.cs +++ b/src/NzbDrone.Integration.Test/ApiTests/AuthorFixture.cs @@ -11,9 +11,9 @@ namespace NzbDrone.Integration.Test.ApiTests { [Test] [Order(0)] - public void add_artist_with_tags_should_store_them() + public void add_author_with_tags_should_store_them() { - EnsureNoArtist("14586394", "Andrew Hunter Murray"); + EnsureNoAuthor("14586394", "Andrew Hunter Murray"); var tag = EnsureTag("abc"); var author = Author.Lookup("readarr:43765115").Single(); @@ -32,82 +32,82 @@ namespace NzbDrone.Integration.Test.ApiTests [Test] [Order(0)] - public void add_artist_without_profileid_should_return_badrequest() + public void add_author_without_profileid_should_return_badrequest() { IgnoreOnMonoVersions("5.12", "5.14"); - EnsureNoArtist("14586394", "Andrew Hunter Murray"); + EnsureNoAuthor("14586394", "Andrew Hunter Murray"); - var artist = Author.Lookup("readarr:43765115").Single(); + var author = Author.Lookup("readarr:43765115").Single(); - artist.Path = Path.Combine(AuthorRootFolder, artist.AuthorName); + author.Path = Path.Combine(AuthorRootFolder, author.AuthorName); - Author.InvalidPost(artist); + Author.InvalidPost(author); } [Test] [Order(0)] - public void add_artist_without_path_should_return_badrequest() + public void add_author_without_path_should_return_badrequest() { IgnoreOnMonoVersions("5.12", "5.14"); - EnsureNoArtist("14586394", "Andrew Hunter Murray"); + EnsureNoAuthor("14586394", "Andrew Hunter Murray"); - var artist = Author.Lookup("readarr:43765115").Single(); + var author = Author.Lookup("readarr:43765115").Single(); - artist.QualityProfileId = 1; + author.QualityProfileId = 1; - Author.InvalidPost(artist); + Author.InvalidPost(author); } [Test] [Order(1)] - public void add_artist() + public void add_author() { - EnsureNoArtist("14586394", "Andrew Hunter Murray"); + EnsureNoAuthor("14586394", "Andrew Hunter Murray"); - var artist = Author.Lookup("readarr:43765115").Single(); + var author = Author.Lookup("readarr:43765115").Single(); - artist.QualityProfileId = 1; - artist.MetadataProfileId = 1; - artist.Path = Path.Combine(AuthorRootFolder, artist.AuthorName); + author.QualityProfileId = 1; + author.MetadataProfileId = 1; + author.Path = Path.Combine(AuthorRootFolder, author.AuthorName); - var result = Author.Post(artist); + var result = Author.Post(author); result.Should().NotBeNull(); result.Id.Should().NotBe(0); result.QualityProfileId.Should().Be(1); result.MetadataProfileId.Should().Be(1); - result.Path.Should().Be(Path.Combine(AuthorRootFolder, artist.AuthorName)); + result.Path.Should().Be(Path.Combine(AuthorRootFolder, author.AuthorName)); } [Test] [Order(2)] - public void get_all_artist() + public void get_all_author() { EnsureAuthor("14586394", "43765115", "Andrew Hunter Murray"); EnsureAuthor("383606", "16160797", "Robert Galbraith"); - var artists = Author.All(); + var authors = Author.All(); - artists.Should().NotBeNullOrEmpty(); - artists.Should().Contain(v => v.ForeignAuthorId == "14586394"); - artists.Should().Contain(v => v.ForeignAuthorId == "383606"); + authors.Should().NotBeNullOrEmpty(); + authors.Should().Contain(v => v.ForeignAuthorId == "14586394"); + authors.Should().Contain(v => v.ForeignAuthorId == "383606"); } [Test] [Order(2)] - public void get_artist_by_id() + public void get_author_by_id() { - var artist = EnsureAuthor("14586394", "43765115", "Andrew Hunter Murray"); + var author = EnsureAuthor("14586394", "43765115", "Andrew Hunter Murray"); - var result = Author.Get(artist.Id); + var result = Author.Get(author.Id); result.ForeignAuthorId.Should().Be("14586394"); } [Test] - public void get_artist_by_unknown_id_should_return_404() + public void get_author_by_unknown_id_should_return_404() { IgnoreOnMonoVersions("5.12", "5.14"); @@ -116,70 +116,70 @@ namespace NzbDrone.Integration.Test.ApiTests [Test] [Order(2)] - public void update_artist_profile_id() + public void update_author_profile_id() { - var artist = EnsureAuthor("14586394", "43765115", "Andrew Hunter Murray"); + var author = EnsureAuthor("14586394", "43765115", "Andrew Hunter Murray"); var profileId = 1; - if (artist.QualityProfileId == profileId) + if (author.QualityProfileId == profileId) { profileId = 2; } - artist.QualityProfileId = profileId; + author.QualityProfileId = profileId; - var result = Author.Put(artist); + var result = Author.Put(author); - Author.Get(artist.Id).QualityProfileId.Should().Be(profileId); + Author.Get(author.Id).QualityProfileId.Should().Be(profileId); } [Test] [Order(3)] - public void update_artist_monitored() + public void update_author_monitored() { - var artist = EnsureAuthor("14586394", "43765115", "Andrew Hunter Murray", false); + var author = EnsureAuthor("14586394", "43765115", "Andrew Hunter Murray", false); - artist.Monitored.Should().BeFalse(); + author.Monitored.Should().BeFalse(); - artist.Monitored = true; + author.Monitored = true; - var result = Author.Put(artist); + var result = Author.Put(author); result.Monitored.Should().BeTrue(); } [Test] [Order(3)] - public void update_artist_tags() + public void update_author_tags() { - var artist = EnsureAuthor("14586394", "43765115", "Andrew Hunter Murray"); + var author = EnsureAuthor("14586394", "43765115", "Andrew Hunter Murray"); var tag = EnsureTag("abc"); - if (artist.Tags.Contains(tag.Id)) + if (author.Tags.Contains(tag.Id)) { - artist.Tags.Remove(tag.Id); + author.Tags.Remove(tag.Id); - var result = Author.Put(artist); - Author.Get(artist.Id).Tags.Should().NotContain(tag.Id); + var result = Author.Put(author); + Author.Get(author.Id).Tags.Should().NotContain(tag.Id); } else { - artist.Tags.Add(tag.Id); + author.Tags.Add(tag.Id); - var result = Author.Put(artist); - Author.Get(artist.Id).Tags.Should().Contain(tag.Id); + var result = Author.Put(author); + Author.Get(author.Id).Tags.Should().Contain(tag.Id); } } [Test] [Order(4)] - public void delete_artist() + public void delete_author() { - var artist = EnsureAuthor("14586394", "43765115", "Andrew Hunter Murray"); + var author = EnsureAuthor("14586394", "43765115", "Andrew Hunter Murray"); - Author.Get(artist.Id).Should().NotBeNull(); + Author.Get(author.Id).Should().NotBeNull(); - Author.Delete(artist.Id); + Author.Delete(author.Id); Author.All().Should().NotContain(v => v.ForeignAuthorId == "14586394"); } diff --git a/src/NzbDrone.Integration.Test/ApiTests/BlacklistFixture.cs b/src/NzbDrone.Integration.Test/ApiTests/BlacklistFixture.cs index bdb5da2fe..5d3b853a9 100644 --- a/src/NzbDrone.Integration.Test/ApiTests/BlacklistFixture.cs +++ b/src/NzbDrone.Integration.Test/ApiTests/BlacklistFixture.cs @@ -8,18 +8,18 @@ namespace NzbDrone.Integration.Test.ApiTests [TestFixture] public class BlacklistFixture : IntegrationTest { - private AuthorResource _artist; + private AuthorResource _author; [Test] [Ignore("Adding to blacklist not supported")] public void should_be_able_to_add_to_blacklist() { - _artist = EnsureAuthor("14586394", "43765115", "Andrew Hunter Murray"); + _author = EnsureAuthor("14586394", "43765115", "Andrew Hunter Murray"); Blacklist.Post(new BlacklistResource { - AuthorId = _artist.Id, - SourceTitle = "Blacklist - Album 1 [2015 FLAC]" + AuthorId = _author.Id, + SourceTitle = "Blacklist - Book 1 [2015 FLAC]" }); } diff --git a/src/NzbDrone.Integration.Test/ApiTests/CalendarFixture.cs b/src/NzbDrone.Integration.Test/ApiTests/CalendarFixture.cs index 31b7278a8..0e0e74b53 100644 --- a/src/NzbDrone.Integration.Test/ApiTests/CalendarFixture.cs +++ b/src/NzbDrone.Integration.Test/ApiTests/CalendarFixture.cs @@ -21,25 +21,25 @@ namespace NzbDrone.Integration.Test.ApiTests } [Test] - public void should_be_able_to_get_albums() + public void should_be_able_to_get_books() { - var artist = EnsureAuthor("14586394", "43765115", "Andrew Hunter Murray", true); + var author = EnsureAuthor("14586394", "43765115", "Andrew Hunter Murray", true); var request = Calendar.BuildRequest(); request.AddParameter("start", new DateTime(2020, 02, 01).ToString("s") + "Z"); request.AddParameter("end", new DateTime(2020, 02, 28).ToString("s") + "Z"); var items = Calendar.Get>(request); - items = items.Where(v => v.AuthorId == artist.Id).ToList(); + items = items.Where(v => v.AuthorId == author.Id).ToList(); items.Should().HaveCount(1); items.First().Title.Should().Be("The Last Day"); } [Test] - public void should_not_be_able_to_get_unmonitored_albums() + public void should_not_be_able_to_get_unmonitored_books() { - var artist = EnsureAuthor("14586394", "43765115", "Andrew Hunter Murray", false); + var author = EnsureAuthor("14586394", "43765115", "Andrew Hunter Murray", false); var request = Calendar.BuildRequest(); request.AddParameter("start", new DateTime(2020, 02, 01).ToString("s") + "Z"); @@ -47,15 +47,15 @@ namespace NzbDrone.Integration.Test.ApiTests request.AddParameter("unmonitored", "false"); var items = Calendar.Get>(request); - items = items.Where(v => v.AuthorId == artist.Id).ToList(); + items = items.Where(v => v.AuthorId == author.Id).ToList(); items.Should().BeEmpty(); } [Test] - public void should_be_able_to_get_unmonitored_albums() + public void should_be_able_to_get_unmonitored_books() { - var artist = EnsureAuthor("14586394", "43765115", "Andrew Hunter Murray", false); + var author = EnsureAuthor("14586394", "43765115", "Andrew Hunter Murray", false); var request = Calendar.BuildRequest(); request.AddParameter("start", new DateTime(2020, 02, 01).ToString("s") + "Z"); @@ -63,7 +63,7 @@ namespace NzbDrone.Integration.Test.ApiTests request.AddParameter("unmonitored", "true"); var items = Calendar.Get>(request); - items = items.Where(v => v.AuthorId == artist.Id).ToList(); + items = items.Where(v => v.AuthorId == author.Id).ToList(); items.Should().HaveCount(1); items.First().Title.Should().Be("The Last Day"); diff --git a/src/NzbDrone.Integration.Test/ApiTests/IndexerFixture.cs b/src/NzbDrone.Integration.Test/ApiTests/IndexerFixture.cs index bf55ea58b..d25417aaa 100644 --- a/src/NzbDrone.Integration.Test/ApiTests/IndexerFixture.cs +++ b/src/NzbDrone.Integration.Test/ApiTests/IndexerFixture.cs @@ -1,10 +1,10 @@ using System.Linq; using FluentAssertions; -using Lidarr.Api.V1.Indexers; -using Lidarr.Http.ClientSchema; using Newtonsoft.Json.Linq; using NUnit.Framework; using NzbDrone.Core.ThingiProvider; +using Readarr.Api.V1.Indexers; +using Readarr.Http.ClientSchema; namespace NzbDrone.Integration.Test.ApiTests { diff --git a/src/NzbDrone.Integration.Test/ApiTests/NamingConfigFixture.cs b/src/NzbDrone.Integration.Test/ApiTests/NamingConfigFixture.cs index ba83f6048..87b7b0c81 100644 --- a/src/NzbDrone.Integration.Test/ApiTests/NamingConfigFixture.cs +++ b/src/NzbDrone.Integration.Test/ApiTests/NamingConfigFixture.cs @@ -85,7 +85,7 @@ namespace NzbDrone.Integration.Test.ApiTests } [Test] - public void should_get_bad_request_if_artist_folder_format_does_not_contain_artist_name() + public void should_get_bad_request_if_author_folder_format_does_not_contain_author_name() { IgnoreOnMonoVersions("5.12", "5.14"); diff --git a/src/NzbDrone.Integration.Test/ApiTests/ReleasePushFixture.cs b/src/NzbDrone.Integration.Test/ApiTests/ReleasePushFixture.cs index cd6b06e28..5f298bf14 100644 --- a/src/NzbDrone.Integration.Test/ApiTests/ReleasePushFixture.cs +++ b/src/NzbDrone.Integration.Test/ApiTests/ReleasePushFixture.cs @@ -15,7 +15,7 @@ namespace NzbDrone.Integration.Test.ApiTests public void should_have_utc_date() { var body = new Dictionary(); - body.Add("title", "The Artist - The Album (2008) [FLAC]"); + body.Add("title", "The Author - The Book (2008) [FLAC]"); body.Add("protocol", "Torrent"); body.Add("downloadUrl", "https://readarr.com/test.torrent"); body.Add("publishDate", DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ssZ", CultureInfo.InvariantCulture)); diff --git a/src/NzbDrone.Integration.Test/ApiTests/WantedFixture.cs b/src/NzbDrone.Integration.Test/ApiTests/WantedFixture.cs index e3fa8e37c..4da24fc6a 100644 --- a/src/NzbDrone.Integration.Test/ApiTests/WantedFixture.cs +++ b/src/NzbDrone.Integration.Test/ApiTests/WantedFixture.cs @@ -28,7 +28,7 @@ namespace NzbDrone.Integration.Test.ApiTests [Order(0)] public void missing_should_be_empty() { - EnsureNoArtist("14586394", "Andrew Hunter Murray"); + EnsureNoAuthor("14586394", "Andrew Hunter Murray"); var result = WantedMissing.GetPaged(0, 15, "releaseDate", "desc"); @@ -48,7 +48,7 @@ namespace NzbDrone.Integration.Test.ApiTests [Test] [Order(1)] - public void missing_should_have_artist() + public void missing_should_have_author() { EnsureAuthor("14586394", "43765115", "Andrew Hunter Murray", true); @@ -63,8 +63,8 @@ namespace NzbDrone.Integration.Test.ApiTests public void cutoff_should_have_monitored_items() { EnsureProfileCutoff(1, Quality.AZW3); - var artist = EnsureAuthor("14586394", "43765115", "Andrew Hunter Murray", true); - EnsureBookFile(artist, 1, 1, Quality.MOBI); + var author = EnsureAuthor("14586394", "43765115", "Andrew Hunter Murray", true); + EnsureBookFile(author, 1, 1, Quality.MOBI); var result = WantedCutoffUnmet.GetPaged(0, 15, "releaseDate", "desc"); @@ -87,8 +87,8 @@ namespace NzbDrone.Integration.Test.ApiTests public void cutoff_should_not_have_unmonitored_items() { EnsureProfileCutoff(1, Quality.AZW3); - var artist = EnsureAuthor("14586394", "43765115", "Andrew Hunter Murray", false); - EnsureBookFile(artist, 1, 1, Quality.MOBI); + var author = EnsureAuthor("14586394", "43765115", "Andrew Hunter Murray", false); + EnsureBookFile(author, 1, 1, Quality.MOBI); var result = WantedCutoffUnmet.GetPaged(0, 15, "releaseDate", "desc"); @@ -97,11 +97,11 @@ namespace NzbDrone.Integration.Test.ApiTests [Test] [Order(2)] - public void cutoff_should_have_artist() + public void cutoff_should_have_author() { EnsureProfileCutoff(1, Quality.AZW3); - var artist = EnsureAuthor("14586394", "43765115", "Andrew Hunter Murray", true); - EnsureBookFile(artist, 1, 1, Quality.MOBI); + var author = EnsureAuthor("14586394", "43765115", "Andrew Hunter Murray", true); + EnsureBookFile(author, 1, 1, Quality.MOBI); var result = WantedCutoffUnmet.GetPaged(0, 15, "releaseDate", "desc"); @@ -125,8 +125,8 @@ namespace NzbDrone.Integration.Test.ApiTests public void cutoff_should_have_unmonitored_items() { EnsureProfileCutoff(1, Quality.AZW3); - var artist = EnsureAuthor("14586394", "43765115", "Andrew Hunter Murray", false); - EnsureBookFile(artist, 1, 1, Quality.MOBI); + var author = EnsureAuthor("14586394", "43765115", "Andrew Hunter Murray", false); + EnsureBookFile(author, 1, 1, Quality.MOBI); var result = WantedCutoffUnmet.GetPaged(0, 15, "releaseDate", "desc", "monitored", "false"); diff --git a/src/NzbDrone.Integration.Test/Client/AuthorClient.cs b/src/NzbDrone.Integration.Test/Client/AuthorClient.cs index bf2c5256e..679ca5576 100644 --- a/src/NzbDrone.Integration.Test/Client/AuthorClient.cs +++ b/src/NzbDrone.Integration.Test/Client/AuthorClient.cs @@ -19,10 +19,10 @@ namespace NzbDrone.Integration.Test.Client return Get>(request); } - public List Editor(AuthorEditorResource artist) + public List Editor(AuthorEditorResource author) { var request = BuildRequest("editor"); - request.AddJsonBody(artist); + request.AddJsonBody(author); return Put>(request); } diff --git a/src/NzbDrone.Integration.Test/IntegrationTestBase.cs b/src/NzbDrone.Integration.Test/IntegrationTestBase.cs index 27bf931dc..f974a5bb9 100644 --- a/src/NzbDrone.Integration.Test/IntegrationTestBase.cs +++ b/src/NzbDrone.Integration.Test/IntegrationTestBase.cs @@ -295,7 +295,7 @@ namespace NzbDrone.Integration.Test return result; } - public void EnsureNoArtist(string readarrId, string artistTitle) + public void EnsureNoAuthor(string readarrId, string authorTitle) { var result = Author.All().FirstOrDefault(v => v.ForeignAuthorId == readarrId); @@ -305,14 +305,14 @@ namespace NzbDrone.Integration.Test } } - public void EnsureBookFile(AuthorResource artist, int bookId, int editionId, Quality quality) + public void EnsureBookFile(AuthorResource author, int bookId, int editionId, Quality quality) { - var result = Books.GetBooksInAuthor(artist.Id).Single(v => v.Id == editionId); + var result = Books.GetBooksInAuthor(author.Id).Single(v => v.Id == editionId); // if (result.BookFile == null) if (true) { - var path = Path.Combine(AuthorRootFolder, artist.AuthorName, "Track.mp3"); + var path = Path.Combine(AuthorRootFolder, author.AuthorName, "Track.mp3"); Directory.CreateDirectory(Path.GetDirectoryName(path)); File.WriteAllText(path, "Fake Track"); @@ -324,7 +324,7 @@ namespace NzbDrone.Integration.Test new ManualImportFile { Path = path, - AuthorId = artist.Id, + AuthorId = author.Id, BookId = bookId, EditionId = editionId, Quality = new QualityModel(quality) @@ -333,7 +333,7 @@ namespace NzbDrone.Integration.Test }); Commands.WaitAll(); - var track = Books.GetBooksInAuthor(artist.Id).Single(x => x.Id == editionId); + var track = Books.GetBooksInAuthor(author.Id).Single(x => x.Id == editionId); // track.BookFileId.Should().NotBe(0); } diff --git a/src/NzbDrone.Update/UpdateEngine/InstallUpdateService.cs b/src/NzbDrone.Update/UpdateEngine/InstallUpdateService.cs index c6c70cf01..989eb0c33 100644 --- a/src/NzbDrone.Update/UpdateEngine/InstallUpdateService.cs +++ b/src/NzbDrone.Update/UpdateEngine/InstallUpdateService.cs @@ -90,7 +90,7 @@ namespace NzbDrone.Update.UpdateEngine Verify(installationFolder, processId); - if (installationFolder.EndsWith(@"\bin\Lidarr") || installationFolder.EndsWith(@"/bin/Lidarr")) + if (installationFolder.EndsWith(@"\bin\Readarr") || installationFolder.EndsWith(@"/bin/Readarr")) { installationFolder = installationFolder.GetParentPath(); _logger.Info("Fixed Installation Folder: {0}", installationFolder); diff --git a/src/Readarr.Api.V1/Author/AuthorModule.cs b/src/Readarr.Api.V1/Author/AuthorModule.cs index a92ce8a62..4d13ccc45 100644 --- a/src/Readarr.Api.V1/Author/AuthorModule.cs +++ b/src/Readarr.Api.V1/Author/AuthorModule.cs @@ -99,10 +99,10 @@ namespace Readarr.Api.V1.Author private AuthorResource GetAuthor(int id) { var author = _authorService.GetAuthor(id); - return GetArtistResource(author); + return GetAuthorResource(author); } - private AuthorResource GetArtistResource(NzbDrone.Core.Books.Author author) + private AuthorResource GetAuthorResource(NzbDrone.Core.Books.Author author) { if (author == null) { @@ -111,8 +111,8 @@ namespace Readarr.Api.V1.Author var resource = author.ToResource(); MapCoversToLocal(resource); - FetchAndLinkArtistStatistics(resource); - LinkNextPreviousAlbums(resource); + FetchAndLinkAuthorStatistics(resource); + LinkNextPreviousBooks(resource); //PopulateAlternateTitles(resource); LinkRootFolderPath(resource); @@ -126,8 +126,8 @@ namespace Readarr.Api.V1.Author var authorResources = _authorService.GetAllAuthors().ToResource(); MapCoversToLocal(authorResources.ToArray()); - LinkNextPreviousAlbums(authorResources.ToArray()); - LinkArtistStatistics(authorResources, authorStats); + LinkNextPreviousBooks(authorResources.ToArray()); + LinkAuthorStatistics(authorResources, authorStats); //PopulateAlternateTitles(seriesResources); return authorResources; @@ -182,7 +182,7 @@ namespace Readarr.Api.V1.Author } } - private void LinkNextPreviousAlbums(params AuthorResource[] authors) + private void LinkNextPreviousBooks(params AuthorResource[] authors) { var nextBooks = _bookService.GetNextBooksByAuthorMetadataId(authors.Select(x => x.AuthorMetadataId)); var lastBooks = _bookService.GetLastBooksByAuthorMetadataId(authors.Select(x => x.AuthorMetadataId)); @@ -194,12 +194,12 @@ namespace Readarr.Api.V1.Author } } - private void FetchAndLinkArtistStatistics(AuthorResource resource) + private void FetchAndLinkAuthorStatistics(AuthorResource resource) { - LinkArtistStatistics(resource, _authorStatisticsService.AuthorStatistics(resource.Id)); + LinkAuthorStatistics(resource, _authorStatisticsService.AuthorStatistics(resource.Id)); } - private void LinkArtistStatistics(List resources, List authorStatistics) + private void LinkAuthorStatistics(List resources, List authorStatistics) { foreach (var author in resources) { @@ -209,16 +209,16 @@ namespace Readarr.Api.V1.Author continue; } - LinkArtistStatistics(author, stats); + LinkAuthorStatistics(author, stats); } } - private void LinkArtistStatistics(AuthorResource resource, AuthorStatistics authorStatistics) + private void LinkAuthorStatistics(AuthorResource resource, AuthorStatistics authorStatistics) { resource.Statistics = authorStatistics.ToResource(); } - //private void PopulateAlternateTitles(List resources) + //private void PopulateAlternateTitles(List resources) //{ // foreach (var resource in resources) // { @@ -226,7 +226,7 @@ namespace Readarr.Api.V1.Author // } //} - //private void PopulateAlternateTitles(ArtistResource resource) + //private void PopulateAlternateTitles(AuthorResource resource) //{ // var mappings = _sceneMappingService.FindByTvdbId(resource.TvdbId); @@ -241,12 +241,12 @@ namespace Readarr.Api.V1.Author public void Handle(BookImportedEvent message) { - BroadcastResourceChange(ModelAction.Updated, GetArtistResource(message.Author)); + BroadcastResourceChange(ModelAction.Updated, GetAuthorResource(message.Author)); } public void Handle(BookEditedEvent message) { - BroadcastResourceChange(ModelAction.Updated, GetArtistResource(message.Book.Author.Value)); + BroadcastResourceChange(ModelAction.Updated, GetAuthorResource(message.Book.Author.Value)); } public void Handle(BookFileDeletedEvent message) @@ -256,17 +256,17 @@ namespace Readarr.Api.V1.Author return; } - BroadcastResourceChange(ModelAction.Updated, GetArtistResource(message.BookFile.Author.Value)); + BroadcastResourceChange(ModelAction.Updated, GetAuthorResource(message.BookFile.Author.Value)); } public void Handle(AuthorUpdatedEvent message) { - BroadcastResourceChange(ModelAction.Updated, GetArtistResource(message.Author)); + BroadcastResourceChange(ModelAction.Updated, GetAuthorResource(message.Author)); } public void Handle(AuthorEditedEvent message) { - BroadcastResourceChange(ModelAction.Updated, GetArtistResource(message.Author)); + BroadcastResourceChange(ModelAction.Updated, GetAuthorResource(message.Author)); } public void Handle(AuthorDeletedEvent message) @@ -281,7 +281,7 @@ namespace Readarr.Api.V1.Author public void Handle(MediaCoversUpdatedEvent message) { - BroadcastResourceChange(ModelAction.Updated, GetArtistResource(message.Author)); + BroadcastResourceChange(ModelAction.Updated, GetAuthorResource(message.Author)); } } } diff --git a/src/Readarr.Api.V1/Author/AuthorResource.cs b/src/Readarr.Api.V1/Author/AuthorResource.cs index 6a807c54f..e55867e42 100644 --- a/src/Readarr.Api.V1/Author/AuthorResource.cs +++ b/src/Readarr.Api.V1/Author/AuthorResource.cs @@ -90,7 +90,7 @@ namespace Readarr.Api.V1.Author ForeignAuthorId = model.Metadata.Value.ForeignAuthorId, TitleSlug = model.Metadata.Value.TitleSlug, - // Root folder path is now calculated from the artist path + // Root folder path is now calculated from the author path // RootFolderPath = model.RootFolderPath, Genres = model.Metadata.Value.Genres, Tags = model.Tags, diff --git a/src/Readarr.Api.V1/BookFiles/BookFileModule.cs b/src/Readarr.Api.V1/BookFiles/BookFileModule.cs index 6b77c1f64..48a174e3b 100644 --- a/src/Readarr.Api.V1/BookFiles/BookFileModule.cs +++ b/src/Readarr.Api.V1/BookFiles/BookFileModule.cs @@ -123,7 +123,7 @@ namespace Readarr.Api.V1.BookFiles .Select(e => Convert.ToInt32(e)) .ToList(); - // trackfiles will come back with the artist already populated + // trackfiles will come back with the author already populated var bookFiles = _mediaFileService.Get(bookFileIds); return bookFiles.ConvertAll(e => MapToResource(e)); } diff --git a/src/Readarr.Api.V1/BookShelf/BookshelfModule.cs b/src/Readarr.Api.V1/BookShelf/BookshelfModule.cs index 84f840bd2..6e7989b78 100644 --- a/src/Readarr.Api.V1/BookShelf/BookshelfModule.cs +++ b/src/Readarr.Api.V1/BookShelf/BookshelfModule.cs @@ -15,7 +15,7 @@ namespace Readarr.Api.V1.Bookshelf { _authorService = authorService; _bookMonitoredService = bookMonitoredService; - Post("/", artist => UpdateAll()); + Post("/", author => UpdateAll()); } private object UpdateAll() diff --git a/src/Readarr.Api.V1/Books/BookModuleWithSignalR.cs b/src/Readarr.Api.V1/Books/BookModuleWithSignalR.cs index 2528fce8b..26e8f761e 100644 --- a/src/Readarr.Api.V1/Books/BookModuleWithSignalR.cs +++ b/src/Readarr.Api.V1/Books/BookModuleWithSignalR.cs @@ -67,12 +67,12 @@ namespace Readarr.Api.V1.Books if (includeAuthor) { - var artist = book.Author.Value; + var author = book.Author.Value; - resource.Author = artist.ToResource(); + resource.Author = author.ToResource(); } - FetchAndLinkAlbumStatistics(resource); + FetchAndLinkBookStatistics(resource); MapCoversToLocal(resource); return resource; @@ -119,7 +119,7 @@ namespace Readarr.Api.V1.Books return result; } - private void FetchAndLinkAlbumStatistics(BookResource resource) + private void FetchAndLinkBookStatistics(BookResource resource) { LinkAuthorStatistics(resource, _authorStatisticsService.AuthorStatistics(resource.AuthorId)); } diff --git a/src/Readarr.Api.V1/Books/RetagBookModule.cs b/src/Readarr.Api.V1/Books/RetagBookModule.cs index 3775aa9f6..8e879d46c 100644 --- a/src/Readarr.Api.V1/Books/RetagBookModule.cs +++ b/src/Readarr.Api.V1/Books/RetagBookModule.cs @@ -23,12 +23,12 @@ namespace Readarr.Api.V1.Books if (Request.Query.bookId.HasValue) { var bookId = (int)Request.Query.bookId; - return _audioTagService.GetRetagPreviewsByAlbum(bookId).Where(x => x.Changes.Any()).ToResource(); + return _audioTagService.GetRetagPreviewsByBook(bookId).Where(x => x.Changes.Any()).ToResource(); } else if (Request.Query.AuthorId.HasValue) { var authorId = (int)Request.Query.AuthorId; - return _audioTagService.GetRetagPreviewsByArtist(authorId).Where(x => x.Changes.Any()).ToResource(); + return _audioTagService.GetRetagPreviewsByAuthor(authorId).Where(x => x.Changes.Any()).ToResource(); } else { diff --git a/src/Readarr.Api.V1/Calendar/CalendarFeedModule.cs b/src/Readarr.Api.V1/Calendar/CalendarFeedModule.cs index 3e96fce0c..dd6b4ea26 100644 --- a/src/Readarr.Api.V1/Calendar/CalendarFeedModule.cs +++ b/src/Readarr.Api.V1/Calendar/CalendarFeedModule.cs @@ -73,7 +73,7 @@ namespace Readarr.Api.V1.Calendar foreach (var book in books.OrderBy(v => v.ReleaseDate.Value)) { - var author = _authorService.GetAuthor(book.AuthorId); // Temp fix TODO: Figure out why Album.Artist is not populated during AlbumsBetweenDates Query + var author = _authorService.GetAuthor(book.AuthorId); // Temp fix TODO: Figure out why Book.Author is not populated during BooksBetweenDates Query if (tags.Any() && tags.None(author.Tags.Contains)) { @@ -83,7 +83,7 @@ namespace Readarr.Api.V1.Calendar var occurrence = calendar.Create(); occurrence.Uid = "Readarr_book_" + book.Id; - //occurrence.Status = album.HasFile ? EventStatus.Confirmed : EventStatus.Tentative; + //occurrence.Status = book.HasFile ? EventStatus.Confirmed : EventStatus.Tentative; occurrence.Description = book.Editions.Value.Single(x => x.Monitored).Overview; occurrence.Categories = book.Genres; diff --git a/src/Readarr.Api.V1/Calendar/CalendarModule.cs b/src/Readarr.Api.V1/Calendar/CalendarModule.cs index 7017299b7..3483d850a 100644 --- a/src/Readarr.Api.V1/Calendar/CalendarModule.cs +++ b/src/Readarr.Api.V1/Calendar/CalendarModule.cs @@ -31,7 +31,7 @@ namespace Readarr.Api.V1.Calendar var includeUnmonitored = Request.GetBooleanQueryParameter("unmonitored"); var includeAuthor = Request.GetBooleanQueryParameter("includeAuthor"); - //TODO: Add Album Image support to AlbumModuleWithSignalR + //TODO: Add Book Image support to BookModuleWithSignalR var includeBookImages = Request.GetBooleanQueryParameter("includeBookImages"); var queryStart = Request.Query.Start; diff --git a/src/Readarr.Api.V1/Config/NamingConfigResource.cs b/src/Readarr.Api.V1/Config/NamingConfigResource.cs index d6a03c7a8..8e2dc0035 100644 --- a/src/Readarr.Api.V1/Config/NamingConfigResource.cs +++ b/src/Readarr.Api.V1/Config/NamingConfigResource.cs @@ -8,8 +8,8 @@ namespace Readarr.Api.V1.Config public bool ReplaceIllegalCharacters { get; set; } public string StandardBookFormat { get; set; } public string AuthorFolderFormat { get; set; } - public bool IncludeArtistName { get; set; } - public bool IncludeAlbumTitle { get; set; } + public bool IncludeAuthorName { get; set; } + public bool IncludeBookTitle { get; set; } public bool IncludeQuality { get; set; } public bool ReplaceSpaces { get; set; } public string Separator { get; set; } diff --git a/src/Readarr.Api.V1/Config/NamingExampleResource.cs b/src/Readarr.Api.V1/Config/NamingExampleResource.cs index 473ed17e7..0316319a8 100644 --- a/src/Readarr.Api.V1/Config/NamingExampleResource.cs +++ b/src/Readarr.Api.V1/Config/NamingExampleResource.cs @@ -25,8 +25,8 @@ namespace Readarr.Api.V1.Config public static void AddToResource(this BasicNamingConfig basicNamingConfig, NamingConfigResource resource) { - resource.IncludeArtistName = basicNamingConfig.IncludeArtistName; - resource.IncludeAlbumTitle = basicNamingConfig.IncludeAlbumTitle; + resource.IncludeAuthorName = basicNamingConfig.IncludeAuthorName; + resource.IncludeBookTitle = basicNamingConfig.IncludeBookTitle; resource.IncludeQuality = basicNamingConfig.IncludeQuality; resource.ReplaceSpaces = basicNamingConfig.ReplaceSpaces; resource.Separator = basicNamingConfig.Separator; diff --git a/src/Readarr.Api.V1/History/HistoryModule.cs b/src/Readarr.Api.V1/History/HistoryModule.cs index a11d1e36f..aba81b82c 100644 --- a/src/Readarr.Api.V1/History/HistoryModule.cs +++ b/src/Readarr.Api.V1/History/HistoryModule.cs @@ -30,20 +30,20 @@ namespace Readarr.Api.V1.History GetResourcePaged = GetHistory; Get("/since", x => GetHistorySince()); - Get("/author", x => GetArtistHistory()); + Get("/author", x => GetAuthorHistory()); Post("/failed", x => MarkAsFailed()); } - protected HistoryResource MapToResource(NzbDrone.Core.History.History model, bool includeArtist, bool includeAlbum) + protected HistoryResource MapToResource(NzbDrone.Core.History.History model, bool includeAuthor, bool includeBook) { var resource = model.ToResource(); - if (includeArtist) + if (includeAuthor) { resource.Author = model.Author.ToResource(); } - if (includeAlbum) + if (includeBook) { resource.Book = model.Book.ToResource(); } @@ -110,7 +110,7 @@ namespace Readarr.Api.V1.History return _historyService.Since(date, eventType).Select(h => MapToResource(h, includeAuthor, includeBook)).ToList(); } - private List GetArtistHistory() + private List GetAuthorHistory() { var queryAuthorId = Request.Query.AuthorId; var queryBookId = Request.Query.BookId; diff --git a/src/Readarr.Api.V1/Indexers/ReleaseModule.cs b/src/Readarr.Api.V1/Indexers/ReleaseModule.cs index ac0991b56..3cd25fa91 100644 --- a/src/Readarr.Api.V1/Indexers/ReleaseModule.cs +++ b/src/Readarr.Api.V1/Indexers/ReleaseModule.cs @@ -87,7 +87,7 @@ namespace Readarr.Api.V1.Indexers else if (release.AuthorId.HasValue) { var author = _authorService.GetAuthor(release.AuthorId.Value); - var books = _parsingService.GetAlbums(remoteBook.ParsedBookInfo, author); + var books = _parsingService.GetBooks(remoteBook.ParsedBookInfo, author); if (books.Empty()) { @@ -104,7 +104,7 @@ namespace Readarr.Api.V1.Indexers } else if (remoteBook.Books.Empty()) { - var books = _parsingService.GetAlbums(remoteBook.ParsedBookInfo, remoteBook.Author); + var books = _parsingService.GetBooks(remoteBook.ParsedBookInfo, remoteBook.Author); if (books.Empty() && release.BookId.HasValue) { diff --git a/src/Readarr.Api.V1/MediaCovers/MediaCoverModule.cs b/src/Readarr.Api.V1/MediaCovers/MediaCoverModule.cs index 378a53d97..692a83108 100644 --- a/src/Readarr.Api.V1/MediaCovers/MediaCoverModule.cs +++ b/src/Readarr.Api.V1/MediaCovers/MediaCoverModule.cs @@ -24,11 +24,11 @@ namespace Readarr.Api.V1.MediaCovers _appFolderInfo = appFolderInfo; _diskProvider = diskProvider; - Get(MEDIA_COVER_AUTHOR_ROUTE, options => GetArtistMediaCover(options.authorId, options.filename)); - Get(MEDIA_COVER_BOOK_ROUTE, options => GetAlbumMediaCover(options.authorId, options.filename)); + Get(MEDIA_COVER_AUTHOR_ROUTE, options => GetAuthorMediaCover(options.authorId, options.filename)); + Get(MEDIA_COVER_BOOK_ROUTE, options => GetBookMediaCover(options.authorId, options.filename)); } - private object GetArtistMediaCover(int authorId, string filename) + private object GetAuthorMediaCover(int authorId, string filename) { var filePath = Path.Combine(_appFolderInfo.GetAppDataPath(), "MediaCover", authorId.ToString(), filename); @@ -48,7 +48,7 @@ namespace Readarr.Api.V1.MediaCovers return new StreamResponse(() => File.OpenRead(filePath), MimeTypes.GetMimeType(filePath)); } - private object GetAlbumMediaCover(int bookId, string filename) + private object GetBookMediaCover(int bookId, string filename) { var filePath = Path.Combine(_appFolderInfo.GetAppDataPath(), "MediaCover", "Books", bookId.ToString(), filename); diff --git a/src/Readarr.Api.V1/Queue/QueueResource.cs b/src/Readarr.Api.V1/Queue/QueueResource.cs index 6a646bb19..1459b8bf4 100644 --- a/src/Readarr.Api.V1/Queue/QueueResource.cs +++ b/src/Readarr.Api.V1/Queue/QueueResource.cs @@ -38,7 +38,7 @@ namespace Readarr.Api.V1.Queue public static class QueueResourceMapper { - public static QueueResource ToResource(this NzbDrone.Core.Queue.Queue model, bool includeArtist, bool includeAlbum) + public static QueueResource ToResource(this NzbDrone.Core.Queue.Queue model, bool includeAuthor, bool includeBook) { if (model == null) { @@ -50,8 +50,8 @@ namespace Readarr.Api.V1.Queue Id = model.Id, AuthorId = model.Author?.Id, BookId = model.Book?.Id, - Author = includeArtist && model.Author != null ? model.Author.ToResource() : null, - Book = includeAlbum && model.Book != null ? model.Book.ToResource() : null, + Author = includeAuthor && model.Author != null ? model.Author.ToResource() : null, + Book = includeBook && model.Book != null ? model.Book.ToResource() : null, Quality = model.Quality, Size = model.Size, Title = model.Title, diff --git a/src/Readarr.Http/REST/RestModule.cs b/src/Readarr.Http/REST/RestModule.cs index 0f4e71d32..98a9e2f89 100644 --- a/src/Readarr.Http/REST/RestModule.cs +++ b/src/Readarr.Http/REST/RestModule.cs @@ -17,7 +17,7 @@ namespace Readarr.Http.REST private const string ROOT_ROUTE = "/"; private const string ID_ROUTE = @"/(?[\d]{1,10})"; - // See src/Lidarr.Api.V1/Queue/QueueModule.cs + // See src/Readarr.Api.V1/Queue/QueueModule.cs private static readonly HashSet VALID_SORT_KEYS = new HashSet(StringComparer.OrdinalIgnoreCase) { "timeleft", diff --git a/yarn.lock b/yarn.lock index 7b2c1878c..496ef6558 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,23 +2,19 @@ # yarn lockfile v1 -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" - integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" + integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== dependencies: "@babel/highlight" "^7.10.4" -"@babel/compat-data@^7.10.4", "@babel/compat-data@^7.9.6": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.11.0.tgz#e9f73efe09af1355b723a7f39b11bad637d7c99c" - integrity sha512-TPSvJfv73ng0pfnEOh17bYMPQbI95+nGWc71Ss4vZdRBHTDqmM9Z8ZV4rYz8Ks7sfzc95n30k6ODIq5UGnXcYQ== - dependencies: - browserslist "^4.12.0" - invariant "^2.2.4" - semver "^5.5.0" +"@babel/compat-data@^7.11.0", "@babel/compat-data@^7.12.5": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.12.7.tgz#9329b4782a7d6bbd7eef57e11addf91ee3ef1e41" + integrity sha512-YaxPMGs/XIWtYqrdEOZOCPsVWfEoriXopnsz3/i7apYPXQ3698UFhS6dVT1KN5qOsWmVgw/FOrmQgpRaZayGsw== -"@babel/core@7.11.6", "@babel/core@>=7.9.0": +"@babel/core@7.11.6": version "7.11.6" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.11.6.tgz#3a9455dc7387ff1bac45770650bc13ba04a15651" integrity sha512-Wpcv03AGnmkgm6uS6k8iwhIwTrcP0m17TL1n1sy7qD0qelDu4XNeW0dN0mHfa+Gei211yDaLoEe/VlbXQzM4Bg== @@ -41,42 +37,41 @@ source-map "^0.5.0" "@babel/core@>=7.9.0": - version "7.11.6" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.11.6.tgz#3a9455dc7387ff1bac45770650bc13ba04a15651" - integrity sha512-Wpcv03AGnmkgm6uS6k8iwhIwTrcP0m17TL1n1sy7qD0qelDu4XNeW0dN0mHfa+Gei211yDaLoEe/VlbXQzM4Bg== + version "7.12.10" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.10.tgz#b79a2e1b9f70ed3d84bbfb6d8c4ef825f606bccd" + integrity sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w== dependencies: "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.11.6" - "@babel/helper-module-transforms" "^7.11.0" - "@babel/helpers" "^7.10.4" - "@babel/parser" "^7.11.5" - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.11.5" - "@babel/types" "^7.11.5" + "@babel/generator" "^7.12.10" + "@babel/helper-module-transforms" "^7.12.1" + "@babel/helpers" "^7.12.5" + "@babel/parser" "^7.12.10" + "@babel/template" "^7.12.7" + "@babel/traverse" "^7.12.10" + "@babel/types" "^7.12.10" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.1" json5 "^2.1.2" lodash "^4.17.19" - resolve "^1.3.2" semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.11.5", "@babel/generator@^7.11.6", "@babel/generator@^7.9.6": - version "7.11.6" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.6.tgz#b868900f81b163b4d464ea24545c61cbac4dc620" - integrity sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA== +"@babel/generator@^7.11.6", "@babel/generator@^7.12.10", "@babel/generator@^7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.11.tgz#98a7df7b8c358c9a37ab07a24056853016aba3af" + integrity sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA== dependencies: - "@babel/types" "^7.11.5" + "@babel/types" "^7.12.11" jsesc "^2.5.1" source-map "^0.5.0" -"@babel/helper-annotate-as-pure@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz#5bf0d495a3f757ac3bda48b5bf3b3ba309c72ba3" - integrity sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA== +"@babel/helper-annotate-as-pure@^7.10.4", "@babel/helper-annotate-as-pure@^7.12.10": + version "7.12.10" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.10.tgz#54ab9b000e60a93644ce17b3f37d313aaf1d115d" + integrity sha512-XplmVbC1n+KY6jL8/fgLVXXUauDIB+lD5+GsQEh6F6GBF1dq1qy4DP4yXWzDKcoqXB3X58t61e85Fitoww4JVQ== dependencies: - "@babel/types" "^7.10.4" + "@babel/types" "^7.12.10" "@babel/helper-builder-binary-assignment-operator-visitor@^7.10.4": version "7.10.4" @@ -86,54 +81,34 @@ "@babel/helper-explode-assignable-expression" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/helper-builder-react-jsx-experimental@^7.10.4", "@babel/helper-builder-react-jsx-experimental@^7.11.5": - version "7.11.5" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.11.5.tgz#4ea43dd63857b0a35cd1f1b161dc29b43414e79f" - integrity sha512-Vc4aPJnRZKWfzeCBsqTBnzulVNjABVdahSPhtdMD3Vs80ykx4a87jTHtF/VR+alSrDmNvat7l13yrRHauGcHVw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-module-imports" "^7.10.4" - "@babel/types" "^7.11.5" - -"@babel/helper-builder-react-jsx@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz#8095cddbff858e6fa9c326daee54a2f2732c1d5d" - integrity sha512-5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helper-compilation-targets@^7.9.6": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz#804ae8e3f04376607cc791b9d47d540276332bd2" - integrity sha512-a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ== +"@babel/helper-compilation-targets@^7.10.4": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz#cb470c76198db6a24e9dbc8987275631e5d29831" + integrity sha512-+qH6NrscMolUlzOYngSBMIOQpKUGPPsc61Bu5W10mg84LxZ7cmvnBHzARKbDoFxVvqqAbj6Tg6N7bSrWSPXMyw== dependencies: - "@babel/compat-data" "^7.10.4" - browserslist "^4.12.0" - invariant "^2.2.4" - levenary "^1.1.1" + "@babel/compat-data" "^7.12.5" + "@babel/helper-validator-option" "^7.12.1" + browserslist "^4.14.5" semver "^5.5.0" -"@babel/helper-create-class-features-plugin@^7.8.3": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz#9f61446ba80e8240b0a5c85c6fdac8459d6f259d" - integrity sha512-0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A== +"@babel/helper-create-class-features-plugin@^7.10.4", "@babel/helper-create-class-features-plugin@^7.10.5", "@babel/helper-create-class-features-plugin@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz#3c45998f431edd4a9214c5f1d3ad1448a6137f6e" + integrity sha512-hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w== dependencies: "@babel/helper-function-name" "^7.10.4" - "@babel/helper-member-expression-to-functions" "^7.10.5" + "@babel/helper-member-expression-to-functions" "^7.12.1" "@babel/helper-optimise-call-expression" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" + "@babel/helper-replace-supers" "^7.12.1" "@babel/helper-split-export-declaration" "^7.10.4" -"@babel/helper-create-regexp-features-plugin@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz#fdd60d88524659a0b6959c0579925e425714f3b8" - integrity sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g== +"@babel/helper-create-regexp-features-plugin@^7.12.1": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.7.tgz#2084172e95443fa0a09214ba1bb328f9aea1278f" + integrity sha512-idnutvQPdpbduutvi3JVfEgcVIHooQnhvhx0Nk9isOINOIGYkZea1Pk2JlJRiUnMefrlvr0vkByATBY/mB4vjQ== dependencies: "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-regex" "^7.10.4" - regexpu-core "^4.7.0" + regexpu-core "^4.7.1" "@babel/helper-define-map@^7.10.4": version "7.10.5" @@ -145,27 +120,27 @@ lodash "^4.17.19" "@babel/helper-explode-assignable-expression@^7.10.4": - version "7.11.4" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.11.4.tgz#2d8e3470252cc17aba917ede7803d4a7a276a41b" - integrity sha512-ux9hm3zR4WV1Y3xXxXkdG/0gxF9nvI0YVmKVhvK9AfMoaQkemL3sJpXw+Xbz65azo8qJiEz2XVDUpK3KYhH3ZQ== + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz#8006a466695c4ad86a2a5f2fb15b5f2c31ad5633" + integrity sha512-dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA== dependencies: - "@babel/types" "^7.10.4" + "@babel/types" "^7.12.1" -"@babel/helper-function-name@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz#d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a" - integrity sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ== +"@babel/helper-function-name@^7.10.4", "@babel/helper-function-name@^7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz#1fd7738aee5dcf53c3ecff24f1da9c511ec47b42" + integrity sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA== dependencies: - "@babel/helper-get-function-arity" "^7.10.4" - "@babel/template" "^7.10.4" - "@babel/types" "^7.10.4" + "@babel/helper-get-function-arity" "^7.12.10" + "@babel/template" "^7.12.7" + "@babel/types" "^7.12.11" -"@babel/helper-get-function-arity@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz#98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2" - integrity sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A== +"@babel/helper-get-function-arity@^7.12.10": + version "7.12.10" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz#b158817a3165b5faa2047825dfa61970ddcc16cf" + integrity sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag== dependencies: - "@babel/types" "^7.10.4" + "@babel/types" "^7.12.10" "@babel/helper-hoist-variables@^7.10.4": version "7.10.4" @@ -174,117 +149,115 @@ dependencies: "@babel/types" "^7.10.4" -"@babel/helper-member-expression-to-functions@^7.10.4", "@babel/helper-member-expression-to-functions@^7.10.5": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz#ae69c83d84ee82f4b42f96e2a09410935a8f26df" - integrity sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q== +"@babel/helper-member-expression-to-functions@^7.12.1", "@babel/helper-member-expression-to-functions@^7.12.7": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz#aa77bd0396ec8114e5e30787efa78599d874a855" + integrity sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw== dependencies: - "@babel/types" "^7.11.0" + "@babel/types" "^7.12.7" -"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz#4c5c54be04bd31670a7382797d75b9fa2e5b5620" - integrity sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw== +"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.12.1", "@babel/helper-module-imports@^7.12.5": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz#1bfc0229f794988f76ed0a4d4e90860850b54dfb" + integrity sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA== dependencies: - "@babel/types" "^7.10.4" + "@babel/types" "^7.12.5" -"@babel/helper-module-transforms@^7.10.4", "@babel/helper-module-transforms@^7.10.5", "@babel/helper-module-transforms@^7.11.0", "@babel/helper-module-transforms@^7.9.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz#b16f250229e47211abdd84b34b64737c2ab2d359" - integrity sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg== +"@babel/helper-module-transforms@^7.11.0", "@babel/helper-module-transforms@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz#7954fec71f5b32c48e4b303b437c34453fd7247c" + integrity sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w== dependencies: - "@babel/helper-module-imports" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" - "@babel/helper-simple-access" "^7.10.4" + "@babel/helper-module-imports" "^7.12.1" + "@babel/helper-replace-supers" "^7.12.1" + "@babel/helper-simple-access" "^7.12.1" "@babel/helper-split-export-declaration" "^7.11.0" + "@babel/helper-validator-identifier" "^7.10.4" "@babel/template" "^7.10.4" - "@babel/types" "^7.11.0" + "@babel/traverse" "^7.12.1" + "@babel/types" "^7.12.1" lodash "^4.17.19" -"@babel/helper-optimise-call-expression@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz#50dc96413d594f995a77905905b05893cd779673" - integrity sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg== +"@babel/helper-optimise-call-expression@^7.10.4", "@babel/helper-optimise-call-expression@^7.12.10": + version "7.12.10" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.10.tgz#94ca4e306ee11a7dd6e9f42823e2ac6b49881e2d" + integrity sha512-4tpbU0SrSTjjt65UMWSrUOPZTsgvPgGG4S8QSTNHacKzpS51IVWGDj0yCwyeZND/i+LSN2g/O63jEXEWm49sYQ== dependencies: - "@babel/types" "^7.10.4" + "@babel/types" "^7.12.10" "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== -"@babel/helper-regex@^7.10.4": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.10.5.tgz#32dfbb79899073c415557053a19bd055aae50ae0" - integrity sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg== - dependencies: - lodash "^4.17.19" - -"@babel/helper-remap-async-to-generator@^7.10.4": - version "7.11.4" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.11.4.tgz#4474ea9f7438f18575e30b0cac784045b402a12d" - integrity sha512-tR5vJ/vBa9wFy3m5LLv2faapJLnDFxNWff2SAYkSE4rLUdbp7CdObYFgI7wK4T/Mj4UzpjPwzR8Pzmr5m7MHGA== +"@babel/helper-remap-async-to-generator@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz#8c4dbbf916314f6047dc05e6a2217074238347fd" + integrity sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A== dependencies: "@babel/helper-annotate-as-pure" "^7.10.4" "@babel/helper-wrap-function" "^7.10.4" - "@babel/template" "^7.10.4" - "@babel/types" "^7.10.4" + "@babel/types" "^7.12.1" -"@babel/helper-replace-supers@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz#d585cd9388ea06e6031e4cd44b6713cbead9e6cf" - integrity sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A== +"@babel/helper-replace-supers@^7.12.1": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.11.tgz#ea511658fc66c7908f923106dd88e08d1997d60d" + integrity sha512-q+w1cqmhL7R0FNzth/PLLp2N+scXEK/L2AHbXUyydxp828F4FEa5WcVoqui9vFRiHDQErj9Zof8azP32uGVTRA== dependencies: - "@babel/helper-member-expression-to-functions" "^7.10.4" - "@babel/helper-optimise-call-expression" "^7.10.4" - "@babel/traverse" "^7.10.4" - "@babel/types" "^7.10.4" + "@babel/helper-member-expression-to-functions" "^7.12.7" + "@babel/helper-optimise-call-expression" "^7.12.10" + "@babel/traverse" "^7.12.10" + "@babel/types" "^7.12.11" -"@babel/helper-simple-access@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz#0f5ccda2945277a2a7a2d3a821e15395edcf3461" - integrity sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw== +"@babel/helper-simple-access@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz#32427e5aa61547d38eb1e6eaf5fd1426fdad9136" + integrity sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA== dependencies: - "@babel/template" "^7.10.4" - "@babel/types" "^7.10.4" + "@babel/types" "^7.12.1" -"@babel/helper-skip-transparent-expression-wrappers@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz#eec162f112c2f58d3af0af125e3bb57665146729" - integrity sha512-0XIdiQln4Elglgjbwo9wuJpL/K7AGCY26kmEt0+pRP0TAj4jjyNq1MjoRvikrTVqKcx4Gysxt4cXvVFXP/JO2Q== +"@babel/helper-skip-transparent-expression-wrappers@^7.11.0", "@babel/helper-skip-transparent-expression-wrappers@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz#462dc63a7e435ade8468385c63d2b84cce4b3cbf" + integrity sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA== dependencies: - "@babel/types" "^7.11.0" + "@babel/types" "^7.12.1" -"@babel/helper-split-export-declaration@^7.10.4", "@babel/helper-split-export-declaration@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz#f8a491244acf6a676158ac42072911ba83ad099f" - integrity sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg== +"@babel/helper-split-export-declaration@^7.10.4", "@babel/helper-split-export-declaration@^7.11.0", "@babel/helper-split-export-declaration@^7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz#1b4cc424458643c47d37022223da33d76ea4603a" + integrity sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g== dependencies: - "@babel/types" "^7.11.0" + "@babel/types" "^7.12.11" -"@babel/helper-validator-identifier@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" - integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== +"@babel/helper-validator-identifier@^7.10.4", "@babel/helper-validator-identifier@^7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" + integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== -"@babel/helper-wrap-function@^7.10.4", "@babel/helper-wrap-function@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz#8a6f701eab0ff39f765b5a1cfef409990e624b87" - integrity sha512-6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug== +"@babel/helper-validator-option@^7.12.1": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.11.tgz#d66cb8b7a3e7fe4c6962b32020a131ecf0847f4f" + integrity sha512-TBFCyj939mFSdeX7U7DDj32WtzYY7fDcalgq8v3fBZMNOJQNn7nOYzMaUCiPxPYfCup69mtIpqlKgMZLvQ8Xhw== + +"@babel/helper-wrap-function@^7.10.4": + version "7.12.3" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz#3332339fc4d1fbbf1c27d7958c27d34708e990d9" + integrity sha512-Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow== dependencies: "@babel/helper-function-name" "^7.10.4" "@babel/template" "^7.10.4" "@babel/traverse" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/helpers@^7.10.4", "@babel/helpers@^7.9.6": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.10.4.tgz#2abeb0d721aff7c0a97376b9e1f6f65d7a475044" - integrity sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA== +"@babel/helpers@^7.10.4", "@babel/helpers@^7.12.5": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.12.5.tgz#1a1ba4a768d9b58310eda516c449913fe647116e" + integrity sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA== dependencies: "@babel/template" "^7.10.4" - "@babel/traverse" "^7.10.4" - "@babel/types" "^7.10.4" + "@babel/traverse" "^7.12.5" + "@babel/types" "^7.12.5" "@babel/highlight@^7.10.4": version "7.10.4" @@ -295,21 +268,21 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.10.4", "@babel/parser@^7.11.5", "@babel/parser@^7.7.0", "@babel/parser@^7.9.6": - version "7.11.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.5.tgz#c7ff6303df71080ec7a4f5b8c003c58f1cf51037" - integrity sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q== +"@babel/parser@^7.11.5", "@babel/parser@^7.12.10", "@babel/parser@^7.12.11", "@babel/parser@^7.12.7", "@babel/parser@^7.7.0": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.11.tgz#9ce3595bcd74bc5c466905e86c535b8b25011e79" + integrity sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg== -"@babel/plugin-proposal-async-generator-functions@^7.8.3": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz#3491cabf2f7c179ab820606cec27fed15e0e8558" - integrity sha512-cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg== +"@babel/plugin-proposal-async-generator-functions@^7.10.4": + version "7.12.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.12.tgz#04b8f24fd4532008ab4e79f788468fd5a8476566" + integrity sha512-nrz9y0a4xmUrRq51bYkWJIO5SBZyG2ys2qinHsN0zHDHVsUaModrkpyWWWXfGqYQmOL3x9sQIcTNN/pBGpo09A== dependencies: "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-remap-async-to-generator" "^7.10.4" + "@babel/helper-remap-async-to-generator" "^7.12.1" "@babel/plugin-syntax-async-generators" "^7.8.0" -"@babel/plugin-proposal-class-properties@7.10.4", "@babel/plugin-proposal-class-properties@^7.10.4": +"@babel/plugin-proposal-class-properties@7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz#a33bf632da390a59c7a8c570045d1115cd778807" integrity sha512-vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg== @@ -317,6 +290,14 @@ "@babel/helper-create-class-features-plugin" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" +"@babel/plugin-proposal-class-properties@^7.10.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz#a082ff541f2a29a4821065b8add9346c0c16e5de" + integrity sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-proposal-decorators@7.10.5": version "7.10.5" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.10.5.tgz#42898bba478bc4b1ae242a703a953a7ad350ffb4" @@ -326,10 +307,10 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-decorators" "^7.10.4" -"@babel/plugin-proposal-dynamic-import@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz#ba57a26cb98b37741e9d5bca1b8b0ddf8291f17e" - integrity sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ== +"@babel/plugin-proposal-dynamic-import@^7.10.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz#43eb5c2a3487ecd98c5c8ea8b5fdb69a2749b2dc" + integrity sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-dynamic-import" "^7.8.0" @@ -342,7 +323,7 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-export-default-from" "^7.10.4" -"@babel/plugin-proposal-export-namespace-from@7.10.4", "@babel/plugin-proposal-export-namespace-from@^7.10.4": +"@babel/plugin-proposal-export-namespace-from@7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.10.4.tgz#570d883b91031637b3e2958eea3c438e62c05f54" integrity sha512-aNdf0LY6/3WXkhh0Fdb6Zk9j1NMD8ovj3F6r0+3j837Pn1S1PdNtcwJ5EG9WkVPNHPxyJDaxMaAOVq4eki0qbg== @@ -350,6 +331,14 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" +"@babel/plugin-proposal-export-namespace-from@^7.10.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.1.tgz#8b9b8f376b2d88f5dd774e4d24a5cc2e3679b6d4" + integrity sha512-6CThGf0irEkzujYS5LQcjBx8j/4aQGiVv7J9+2f7pGfxqyKh3WnmVJYW3hdrQjyksErMGBPQrCnHfOtna+WLbw== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-proposal-function-sent@7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-function-sent/-/plugin-proposal-function-sent-7.10.4.tgz#05f2daef7b3f09b6c74c9e8a85b430272d206ac4" @@ -359,23 +348,23 @@ "@babel/helper-wrap-function" "^7.10.4" "@babel/plugin-syntax-function-sent" "^7.10.4" -"@babel/plugin-proposal-json-strings@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz#593e59c63528160233bd321b1aebe0820c2341db" - integrity sha512-fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw== +"@babel/plugin-proposal-json-strings@^7.10.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz#d45423b517714eedd5621a9dfdc03fa9f4eb241c" + integrity sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-json-strings" "^7.8.0" "@babel/plugin-proposal-logical-assignment-operators@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.11.0.tgz#9f80e482c03083c87125dee10026b58527ea20c8" - integrity sha512-/f8p4z+Auz0Uaf+i8Ekf1iM7wUNLcViFUGiPxKeXvxTSl63B875YPiVdUDdem7hREcI0E0kSpEhS8tF5RphK7Q== + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz#f2c490d36e1b3c9659241034a5d2cd50263a2751" + integrity sha512-k8ZmVv0JU+4gcUGeCDZOGd0lCIamU/sMtIiX3UWnUc5yzgq6YUGyEolNYD+MLYKfSzgECPcqetVcJP9Afe/aCA== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.8.3": +"@babel/plugin-proposal-nullish-coalescing-operator@7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz#02a7e961fc32e6d5b2db0649e01bf80ddee7e04a" integrity sha512-wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw== @@ -383,15 +372,15 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" -"@babel/plugin-proposal-numeric-separator@7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz#5d6769409699ec9b3b68684cd8116cedff93bad8" - integrity sha512-jWioO1s6R/R+wEHizfaScNsAx+xKgwTLNXSh7tTC4Usj3ItsPEhYkEpU4h+lpnBwq7NBVOJXfO6cRFYcX69JUQ== +"@babel/plugin-proposal-nullish-coalescing-operator@^7.10.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz#3ed4fff31c015e7f3f1467f190dbe545cd7b046c" + integrity sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" -"@babel/plugin-proposal-numeric-separator@^7.8.3": +"@babel/plugin-proposal-numeric-separator@7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz#ce1590ff0a65ad12970a609d78855e9a4c1aef06" integrity sha512-73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA== @@ -399,24 +388,32 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.9.6": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz#bd81f95a1f746760ea43b6c2d3d62b11790ad0af" - integrity sha512-wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA== +"@babel/plugin-proposal-numeric-separator@^7.10.4": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.7.tgz#8bf253de8139099fea193b297d23a9d406ef056b" + integrity sha512-8c+uy0qmnRTeukiGsjLGy6uVs/TFjJchGXUeBqlG4VWYOdJWkhhVPdQ3uHwbmalfJwv2JsV0qffXP4asRfL2SQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-proposal-object-rest-spread@^7.11.0": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz#def9bd03cea0f9b72283dac0ec22d289c7691069" + integrity sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-transform-parameters" "^7.10.4" + "@babel/plugin-transform-parameters" "^7.12.1" -"@babel/plugin-proposal-optional-catch-binding@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz#31c938309d24a78a49d68fdabffaa863758554dd" - integrity sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g== +"@babel/plugin-proposal-optional-catch-binding@^7.10.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz#ccc2421af64d3aae50b558a71cede929a5ab2942" + integrity sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" -"@babel/plugin-proposal-optional-chaining@7.11.0", "@babel/plugin-proposal-optional-chaining@^7.11.0": +"@babel/plugin-proposal-optional-chaining@7.11.0": version "7.11.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz#de5866d0646f6afdaab8a566382fe3a221755076" integrity sha512-v9fZIu3Y8562RRwhm1BbMRxtqZNFmFA2EG+pT2diuU8PT3H6T/KXoZ54KgYisfOFZHV6PfvAiBIZ9Rcz+/JCxA== @@ -425,15 +422,23 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.11.0" "@babel/plugin-syntax-optional-chaining" "^7.8.0" -"@babel/plugin-proposal-optional-chaining@^7.9.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz#de5866d0646f6afdaab8a566382fe3a221755076" - integrity sha512-v9fZIu3Y8562RRwhm1BbMRxtqZNFmFA2EG+pT2diuU8PT3H6T/KXoZ54KgYisfOFZHV6PfvAiBIZ9Rcz+/JCxA== +"@babel/plugin-proposal-optional-chaining@^7.11.0": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.7.tgz#e02f0ea1b5dc59d401ec16fb824679f683d3303c" + integrity sha512-4ovylXZ0PWmwoOvhU2vhnzVNnm88/Sm9nx7V8BPgMvAzn5zDou3/Awy0EjglyubVHasJj+XCEkr/r1X3P5elCA== dependencies: "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-skip-transparent-expression-wrappers" "^7.11.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" "@babel/plugin-syntax-optional-chaining" "^7.8.0" +"@babel/plugin-proposal-private-methods@^7.10.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.1.tgz#86814f6e7a21374c980c10d38b4493e703f4a389" + integrity sha512-mwZ1phvH7/NHK6Kf8LP7MYDogGV+DKB1mryFOEwx5EBNQrosvIczzZFTUmWaeujd5xT6G1ELYWUz3CutMhjE1w== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-proposal-throw-expressions@7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-throw-expressions/-/plugin-proposal-throw-expressions-7.10.4.tgz#501154a3c1b33cb1ad5b899204481fa2859cd3f3" @@ -442,12 +447,12 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-throw-expressions" "^7.10.4" -"@babel/plugin-proposal-unicode-property-regex@^7.4.4", "@babel/plugin-proposal-unicode-property-regex@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz#4483cda53041ce3413b7fe2f00022665ddfaa75d" - integrity sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA== +"@babel/plugin-proposal-unicode-property-regex@^7.10.4", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz#2a183958d417765b9eae334f47758e5d6a82e072" + integrity sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.4" + "@babel/helper-create-regexp-features-plugin" "^7.12.1" "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-async-generators@^7.8.0": @@ -457,10 +462,17 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-decorators@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.10.4.tgz#6853085b2c429f9d322d02f5a635018cdeb2360c" - integrity sha512-2NaoC6fAk2VMdhY1eerkfHV+lVYC1u8b+jmRJISqANCJlTxYy19HGdIkkQtix2UtkcPuPu+IlDgrVseZnU03bw== +"@babel/plugin-syntax-class-properties@^7.10.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz#bcb297c5366e79bebadef509549cd93b04f19978" + integrity sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-decorators@^7.10.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.12.1.tgz#81a8b535b284476c41be6de06853a8802b98c5dd" + integrity sha512-ir9YW5daRrTYiy9UJ2TzdNIJEZu8KclVzDcfSt4iEmOtwQ4llPtWInNKJyKnVXp1vE4bbVd5S31M/im3mYMO1w== dependencies: "@babel/helper-plugin-utils" "^7.10.4" @@ -471,10 +483,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-export-default-from@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.10.4.tgz#e5494f95006355c10292a0ff1ce42a5746002ec8" - integrity sha512-79V6r6Pgudz0RnuMGp5xidu6Z+bPFugh8/Q9eDHonmLp4wKFAZDwygJwYgCzuDu8lFA/sYyT+mc5y2wkd7bTXA== +"@babel/plugin-syntax-export-default-from@^7.10.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.12.1.tgz#a9eb31881f4f9a1115a3d2c6d64ac3f6016b5a9d" + integrity sha512-dP5eGg6tHEkhnRD2/vRG/KJKRSg8gtxu2i+P/8/yFPJn/CfPU5G0/7Gks2i3M6IOVAPQekmsLN9LPsmXFFL4Uw== dependencies: "@babel/helper-plugin-utils" "^7.10.4" @@ -485,10 +497,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-function-sent@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-function-sent/-/plugin-syntax-function-sent-7.10.4.tgz#b551f38b629e2e20908e53624f96f9ab300f5061" - integrity sha512-dwElaRoDQhlVevbgKOlEUTe08QNJo4ZjWw3rqnMbEvH8NRJM+iPN2tTQtzyfNloXD8f3Jdiyf5Pn400B1U3SVA== +"@babel/plugin-syntax-function-sent@^7.10.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-function-sent/-/plugin-syntax-function-sent-7.12.1.tgz#b5355304f0b0fb0cb1bf315903bf7cd13608e811" + integrity sha512-mtBQvNHcIzLnmQZhgzigzrgFzIe95WvBXJuTN0m4CvhDK0gRNQ2MC2AVSzB6w7VnVh/z5+0iHFcbfqKMlFwTkQ== dependencies: "@babel/helper-plugin-utils" "^7.10.4" @@ -499,10 +511,17 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.10.4": +"@babel/plugin-syntax-jsx@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz#9d9d357cc818aa7ae7935917c1257f67677a0926" + integrity sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz#39abaae3cbf710c4373d8429484e6ba21340166c" - integrity sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g== + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== dependencies: "@babel/helper-plugin-utils" "^7.10.4" @@ -513,7 +532,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.0", "@babel/plugin-syntax-numeric-separator@^7.8.3": +"@babel/plugin-syntax-numeric-separator@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== @@ -541,364 +560,314 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-throw-expressions@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-throw-expressions/-/plugin-syntax-throw-expressions-7.10.4.tgz#a588df9fa2203207a3ac7e35f0db3b67bf68eca3" - integrity sha512-Yac/4W71+JdAiOV3aLbnUUe2R0NZzNvdy5EqdauFnBQTxIXT58M89lOplIFVELTSus6PxFMjmbi2vXaJDiV/PQ== +"@babel/plugin-syntax-throw-expressions@^7.10.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-throw-expressions/-/plugin-syntax-throw-expressions-7.12.1.tgz#ff90a57ac599ba685a99274c86604d878c945094" + integrity sha512-+8FLGK1PYYB7D8tU9U5zX23fnzkpxw4a7lAyyZbgk6b6bN0k2dft/xwcxIE+86i54wLJ83BaAboh2Ow6wf6jHw== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-top-level-await@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz#4bbeb8917b54fcf768364e0a81f560e33a3ef57d" - integrity sha512-ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ== +"@babel/plugin-syntax-top-level-await@^7.10.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz#dd6c0b357ac1bb142d98537450a319625d13d2a0" + integrity sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-arrow-functions@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz#e22960d77e697c74f41c501d44d73dbf8a6a64cd" - integrity sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA== +"@babel/plugin-transform-arrow-functions@^7.10.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz#8083ffc86ac8e777fbe24b5967c4b2521f3cb2b3" + integrity sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-async-to-generator@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz#41a5017e49eb6f3cda9392a51eef29405b245a37" - integrity sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ== +"@babel/plugin-transform-async-to-generator@^7.10.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz#3849a49cc2a22e9743cbd6b52926d30337229af1" + integrity sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A== dependencies: - "@babel/helper-module-imports" "^7.10.4" + "@babel/helper-module-imports" "^7.12.1" "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-remap-async-to-generator" "^7.10.4" + "@babel/helper-remap-async-to-generator" "^7.12.1" -"@babel/plugin-transform-block-scoped-functions@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz#1afa595744f75e43a91af73b0d998ecfe4ebc2e8" - integrity sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA== +"@babel/plugin-transform-block-scoped-functions@^7.10.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz#f2a1a365bde2b7112e0a6ded9067fdd7c07905d9" + integrity sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-block-scoping@^7.8.3": - version "7.11.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.11.1.tgz#5b7efe98852bef8d652c0b28144cd93a9e4b5215" - integrity sha512-00dYeDE0EVEHuuM+26+0w/SCL0BH2Qy7LwHuI4Hi4MH5gkC8/AqMN5uWFJIsoXZrAphiMm1iXzBw6L2T+eA0ew== +"@babel/plugin-transform-block-scoping@^7.10.4": + version "7.12.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.12.tgz#d93a567a152c22aea3b1929bb118d1d0a175cdca" + integrity sha512-VOEPQ/ExOVqbukuP7BYJtI5ZxxsmegTwzZ04j1aF0dkSypGo9XpDHuOrABsJu+ie+penpSJheDJ11x1BEZNiyQ== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-classes@^7.9.5": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz#405136af2b3e218bc4a1926228bc917ab1a0adc7" - integrity sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA== +"@babel/plugin-transform-classes@^7.10.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz#65e650fcaddd3d88ddce67c0f834a3d436a32db6" + integrity sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog== dependencies: "@babel/helper-annotate-as-pure" "^7.10.4" "@babel/helper-define-map" "^7.10.4" "@babel/helper-function-name" "^7.10.4" "@babel/helper-optimise-call-expression" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" + "@babel/helper-replace-supers" "^7.12.1" "@babel/helper-split-export-declaration" "^7.10.4" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz#9ded83a816e82ded28d52d4b4ecbdd810cdfc0eb" - integrity sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw== +"@babel/plugin-transform-computed-properties@^7.10.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz#d68cf6c9b7f838a8a4144badbe97541ea0904852" + integrity sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-destructuring@^7.9.5": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz#70ddd2b3d1bea83d01509e9bb25ddb3a74fc85e5" - integrity sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA== +"@babel/plugin-transform-destructuring@^7.10.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz#b9a570fe0d0a8d460116413cb4f97e8e08b2f847" + integrity sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-dotall-regex@^7.4.4", "@babel/plugin-transform-dotall-regex@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz#469c2062105c1eb6a040eaf4fac4b488078395ee" - integrity sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA== +"@babel/plugin-transform-dotall-regex@^7.10.4", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz#a1d16c14862817b6409c0a678d6f9373ca9cd975" + integrity sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.4" + "@babel/helper-create-regexp-features-plugin" "^7.12.1" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-duplicate-keys@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz#697e50c9fee14380fe843d1f306b295617431e47" - integrity sha512-GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA== +"@babel/plugin-transform-duplicate-keys@^7.10.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz#745661baba295ac06e686822797a69fbaa2ca228" + integrity sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-exponentiation-operator@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz#5ae338c57f8cf4001bdb35607ae66b92d665af2e" - integrity sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw== +"@babel/plugin-transform-exponentiation-operator@^7.10.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz#b0f2ed356ba1be1428ecaf128ff8a24f02830ae0" + integrity sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug== dependencies: "@babel/helper-builder-binary-assignment-operator-visitor" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-for-of@^7.9.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz#c08892e8819d3a5db29031b115af511dbbfebae9" - integrity sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ== +"@babel/plugin-transform-for-of@^7.10.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz#07640f28867ed16f9511c99c888291f560921cfa" + integrity sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-function-name@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz#6a467880e0fc9638514ba369111811ddbe2644b7" - integrity sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg== +"@babel/plugin-transform-function-name@^7.10.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz#2ec76258c70fe08c6d7da154003a480620eba667" + integrity sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw== dependencies: "@babel/helper-function-name" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-literals@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz#9f42ba0841100a135f22712d0e391c462f571f3c" - integrity sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ== +"@babel/plugin-transform-literals@^7.10.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz#d73b803a26b37017ddf9d3bb8f4dc58bfb806f57" + integrity sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-member-expression-literals@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz#b1ec44fcf195afcb8db2c62cd8e551c881baf8b7" - integrity sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw== +"@babel/plugin-transform-member-expression-literals@^7.10.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz#496038602daf1514a64d43d8e17cbb2755e0c3ad" + integrity sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-modules-amd@^7.9.6": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz#1b9cddaf05d9e88b3aad339cb3e445c4f020a9b1" - integrity sha512-elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw== +"@babel/plugin-transform-modules-amd@^7.10.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz#3154300b026185666eebb0c0ed7f8415fefcf6f9" + integrity sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ== dependencies: - "@babel/helper-module-transforms" "^7.10.5" + "@babel/helper-module-transforms" "^7.12.1" "@babel/helper-plugin-utils" "^7.10.4" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.9.6": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz#66667c3eeda1ebf7896d41f1f16b17105a2fbca0" - integrity sha512-Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w== +"@babel/plugin-transform-modules-commonjs@^7.10.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz#fa403124542636c786cf9b460a0ffbb48a86e648" + integrity sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag== dependencies: - "@babel/helper-module-transforms" "^7.10.4" + "@babel/helper-module-transforms" "^7.12.1" "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-simple-access" "^7.10.4" + "@babel/helper-simple-access" "^7.12.1" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-systemjs@^7.9.6": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz#6270099c854066681bae9e05f87e1b9cadbe8c85" - integrity sha512-f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw== +"@babel/plugin-transform-modules-systemjs@^7.10.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz#663fea620d593c93f214a464cd399bf6dc683086" + integrity sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q== dependencies: "@babel/helper-hoist-variables" "^7.10.4" - "@babel/helper-module-transforms" "^7.10.5" + "@babel/helper-module-transforms" "^7.12.1" "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-validator-identifier" "^7.10.4" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-umd@^7.9.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz#9a8481fe81b824654b3a0b65da3df89f3d21839e" - integrity sha512-mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA== - dependencies: - "@babel/helper-module-transforms" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz#78b4d978810b6f3bcf03f9e318f2fc0ed41aecb6" - integrity sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.4" - -"@babel/plugin-transform-new-target@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz#9097d753cb7b024cb7381a3b2e52e9513a9c6888" - integrity sha512-YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-object-super@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz#d7146c4d139433e7a6526f888c667e314a093894" - integrity sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" - -"@babel/plugin-transform-parameters@^7.10.4", "@babel/plugin-transform-parameters@^7.9.5": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz#59d339d58d0b1950435f4043e74e2510005e2c4a" - integrity sha512-xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw== +"@babel/plugin-transform-modules-umd@^7.10.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz#eb5a218d6b1c68f3d6217b8fa2cc82fec6547902" + integrity sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q== dependencies: - "@babel/helper-get-function-arity" "^7.10.4" + "@babel/helper-module-transforms" "^7.12.1" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-property-literals@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz#f6fe54b6590352298785b83edd815d214c42e3c0" - integrity sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g== +"@babel/plugin-transform-named-capturing-groups-regex@^7.10.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz#b407f5c96be0d9f5f88467497fa82b30ac3e8753" + integrity sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-create-regexp-features-plugin" "^7.12.1" -"@babel/plugin-transform-react-display-name@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.10.4.tgz#b5795f4e3e3140419c3611b7a2a3832b9aef328d" - integrity sha512-Zd4X54Mu9SBfPGnEcaGcOrVAYOtjT2on8QZkLKEq1S/tHexG39d9XXGZv19VfRrDjPJzFmPfTAqOQS1pfFOujw== +"@babel/plugin-transform-new-target@^7.10.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz#80073f02ee1bb2d365c3416490e085c95759dec0" + integrity sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-react-jsx-development@^7.9.0": - version "7.11.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.11.5.tgz#e1439e6a57ee3d43e9f54ace363fb29cefe5d7b6" - integrity sha512-cImAmIlKJ84sDmpQzm4/0q/2xrXlDezQoixy3qoz1NJeZL/8PRon6xZtluvr4H4FzwlDGI5tCcFupMnXGtr+qw== +"@babel/plugin-transform-object-super@^7.10.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz#4ea08696b8d2e65841d0c7706482b048bed1066e" + integrity sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw== dependencies: - "@babel/helper-builder-react-jsx-experimental" "^7.11.5" "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-jsx" "^7.10.4" + "@babel/helper-replace-supers" "^7.12.1" -"@babel/plugin-transform-react-jsx-self@^7.9.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.10.4.tgz#cd301a5fed8988c182ed0b9d55e9bd6db0bd9369" - integrity sha512-yOvxY2pDiVJi0axdTWHSMi5T0DILN+H+SaeJeACHKjQLezEzhLx9nEF9xgpBLPtkZsks9cnb5P9iBEi21En3gg== +"@babel/plugin-transform-parameters@^7.10.4", "@babel/plugin-transform-parameters@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz#d2e963b038771650c922eff593799c96d853255d" + integrity sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg== dependencies: "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-jsx" "^7.10.4" -"@babel/plugin-transform-react-jsx-source@^7.9.0": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.10.5.tgz#34f1779117520a779c054f2cdd9680435b9222b4" - integrity sha512-wTeqHVkN1lfPLubRiZH3o73f4rfon42HpgxUSs86Nc+8QIcm/B9s8NNVXu/gwGcOyd7yDib9ikxoDLxJP0UiDA== +"@babel/plugin-transform-property-literals@^7.10.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz#41bc81200d730abb4456ab8b3fbd5537b59adecd" + integrity sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ== dependencies: "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-jsx" "^7.10.4" -"@babel/plugin-transform-react-jsx@^7.9.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.10.4.tgz#673c9f913948764a4421683b2bef2936968fddf2" - integrity sha512-L+MfRhWjX0eI7Js093MM6MacKU4M6dnCRa/QPDwYMxjljzSCzzlzKzj9Pk4P3OtrPcxr2N3znR419nr3Xw+65A== +"@babel/plugin-transform-react-display-name@^7.10.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.1.tgz#1cbcd0c3b1d6648c55374a22fc9b6b7e5341c00d" + integrity sha512-cAzB+UzBIrekfYxyLlFqf/OagTvHLcVBb5vpouzkYkBclRPraiygVnafvAoipErZLI8ANv8Ecn6E/m5qPXD26w== dependencies: - "@babel/helper-builder-react-jsx" "^7.10.4" - "@babel/helper-builder-react-jsx-experimental" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-jsx" "^7.10.4" -"@babel/plugin-transform-regenerator@^7.8.7": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz#2015e59d839074e76838de2159db421966fd8b63" - integrity sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw== +"@babel/plugin-transform-react-jsx-development@^7.10.4": + version "7.12.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.12.tgz#bccca33108fe99d95d7f9e82046bfe762e71f4e7" + integrity sha512-i1AxnKxHeMxUaWVXQOSIco4tvVvvCxMSfeBMnMM06mpaJt3g+MpxYQQrDfojUQldP1xxraPSJYSMEljoWM/dCg== dependencies: - regenerator-transform "^0.14.2" + "@babel/plugin-transform-react-jsx" "^7.12.12" -"@babel/plugin-transform-reserved-words@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz#8f2682bcdcef9ed327e1b0861585d7013f8a54dd" - integrity sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ== +"@babel/plugin-transform-react-jsx-self@^7.10.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.12.1.tgz#ef43cbca2a14f1bd17807dbe4376ff89d714cf28" + integrity sha512-FbpL0ieNWiiBB5tCldX17EtXgmzeEZjFrix72rQYeq9X6nUK38HCaxexzVQrZWXanxKJPKVVIU37gFjEQYkPkA== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-shorthand-properties@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz#9fd25ec5cdd555bb7f473e5e6ee1c971eede4dd6" - integrity sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q== +"@babel/plugin-transform-react-jsx-source@^7.10.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.12.1.tgz#d07de6863f468da0809edcf79a1aa8ce2a82a26b" + integrity sha512-keQ5kBfjJNRc6zZN1/nVHCd6LLIHq4aUKcVnvE/2l+ZZROSbqoiGFRtT5t3Is89XJxBQaP7NLZX2jgGHdZvvFQ== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-spread@^7.8.3": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz#fa84d300f5e4f57752fe41a6d1b3c554f13f17cc" - integrity sha512-UwQYGOqIdQJe4aWNyS7noqAnN2VbaczPLiEtln+zPowRNlD+79w3oi2TWfYe0eZgd+gjZCbsydN7lzWysDt+gw== +"@babel/plugin-transform-react-jsx@^7.10.4", "@babel/plugin-transform-react-jsx@^7.12.12": + version "7.12.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.12.tgz#b0da51ffe5f34b9a900e9f1f5fb814f9e512d25e" + integrity sha512-JDWGuzGNWscYcq8oJVCtSE61a5+XAOos+V0HrxnDieUus4UMnBEosDnY1VJqU5iZ4pA04QY7l0+JvHL1hZEfsw== dependencies: + "@babel/helper-annotate-as-pure" "^7.12.10" + "@babel/helper-module-imports" "^7.12.5" "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-skip-transparent-expression-wrappers" "^7.11.0" + "@babel/plugin-syntax-jsx" "^7.12.1" + "@babel/types" "^7.12.12" -"@babel/plugin-transform-sticky-regex@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz#8f3889ee8657581130a29d9cc91d7c73b7c4a28d" - integrity sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-regex" "^7.10.4" - -"@babel/plugin-transform-template-literals@^7.8.3": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz#78bc5d626a6642db3312d9d0f001f5e7639fde8c" - integrity sha512-V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw== +"@babel/plugin-transform-react-pure-annotations@^7.10.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.12.1.tgz#05d46f0ab4d1339ac59adf20a1462c91b37a1a42" + integrity sha512-RqeaHiwZtphSIUZ5I85PEH19LOSzxfuEazoY7/pWASCAIBuATQzpSVD+eT6MebeeZT2F4eSL0u4vw6n4Nm0Mjg== dependencies: "@babel/helper-annotate-as-pure" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-typeof-symbol@^7.8.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz#9509f1a7eec31c4edbffe137c16cc33ff0bc5bfc" - integrity sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA== +"@babel/plugin-transform-regenerator@^7.10.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz#5f0a28d842f6462281f06a964e88ba8d7ab49753" + integrity sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-unicode-regex@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz#e56d71f9282fac6db09c82742055576d5e6d80a8" - integrity sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" + regenerator-transform "^0.14.2" "@babel/plugin-transform-reserved-words@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz#8f2682bcdcef9ed327e1b0861585d7013f8a54dd" - integrity sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ== + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz#6fdfc8cc7edcc42b36a7c12188c6787c873adcd8" + integrity sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-transform-shorthand-properties@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz#9fd25ec5cdd555bb7f473e5e6ee1c971eede4dd6" - integrity sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q== + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz#0bf9cac5550fce0cfdf043420f661d645fdc75e3" + integrity sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-transform-spread@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz#fa84d300f5e4f57752fe41a6d1b3c554f13f17cc" - integrity sha512-UwQYGOqIdQJe4aWNyS7noqAnN2VbaczPLiEtln+zPowRNlD+79w3oi2TWfYe0eZgd+gjZCbsydN7lzWysDt+gw== + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz#527f9f311be4ec7fdc2b79bb89f7bf884b3e1e1e" + integrity sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng== dependencies: "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-skip-transparent-expression-wrappers" "^7.11.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" "@babel/plugin-transform-sticky-regex@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz#8f3889ee8657581130a29d9cc91d7c73b7c4a28d" - integrity sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ== + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.7.tgz#560224613ab23987453948ed21d0b0b193fa7fad" + integrity sha512-VEiqZL5N/QvDbdjfYQBhruN0HYjSPjC4XkeqW4ny/jNtH9gcbgaqBIXYEZCNnESMAGs0/K/R7oFGMhOyu/eIxg== dependencies: "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-regex" "^7.10.4" "@babel/plugin-transform-template-literals@^7.10.4": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz#78bc5d626a6642db3312d9d0f001f5e7639fde8c" - integrity sha512-V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw== + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz#b43ece6ed9a79c0c71119f576d299ef09d942843" + integrity sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw== dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-transform-typeof-symbol@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz#9509f1a7eec31c4edbffe137c16cc33ff0bc5bfc" - integrity sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA== + version "7.12.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.10.tgz#de01c4c8f96580bd00f183072b0d0ecdcf0dec4b" + integrity sha512-JQ6H8Rnsogh//ijxspCjc21YPd3VLVoYtAwv3zQmqAt8YGYUtdo5usNhdl4b9/Vir2kPFZl6n1h0PfUz4hJhaA== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-transform-unicode-escapes@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz#feae523391c7651ddac115dae0a9d06857892007" - integrity sha512-y5XJ9waMti2J+e7ij20e+aH+fho7Wb7W8rNuu72aKRwCHFqQdhkdU2lo3uZ9tQuboEJcUFayXdARhcxLQ3+6Fg== + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz#5232b9f81ccb07070b7c3c36c67a1b78f1845709" + integrity sha512-I8gNHJLIc7GdApm7wkVnStWssPNbSRMPtgHdmH3sRM1zopz09UWPS4x5V4n1yz/MIWTVnJ9sp6IkuXdWM4w+2Q== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-transform-unicode-regex@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz#e56d71f9282fac6db09c82742055576d5e6d80a8" - integrity sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A== + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz#cc9661f61390db5c65e3febaccefd5c6ac3faecb" + integrity sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.4" + "@babel/helper-create-regexp-features-plugin" "^7.12.1" "@babel/helper-plugin-utils" "^7.10.4" "@babel/preset-env@7.11.5": @@ -991,50 +960,51 @@ resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.10.4.tgz#92e8a66d816f9911d11d4cc935be67adfc82dbcf" integrity sha512-BrHp4TgOIy4M19JAfO1LhycVXOPWdDbTRep7eVyatf174Hff+6Uk53sDyajqZPu8W1qXRBiYOfIamek6jA7YVw== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-transform-react-display-name" "^7.8.3" - "@babel/plugin-transform-react-jsx" "^7.9.4" - "@babel/plugin-transform-react-jsx-development" "^7.9.0" - "@babel/plugin-transform-react-jsx-self" "^7.9.0" - "@babel/plugin-transform-react-jsx-source" "^7.9.0" - -"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.4.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4": - version "7.11.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736" - integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw== + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-transform-react-display-name" "^7.10.4" + "@babel/plugin-transform-react-jsx" "^7.10.4" + "@babel/plugin-transform-react-jsx-development" "^7.10.4" + "@babel/plugin-transform-react-jsx-self" "^7.10.4" + "@babel/plugin-transform-react-jsx-source" "^7.10.4" + "@babel/plugin-transform-react-pure-annotations" "^7.10.4" + +"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e" + integrity sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg== dependencies: regenerator-runtime "^0.13.4" -"@babel/template@^7.10.4", "@babel/template@^7.8.6": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278" - integrity sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/parser" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/traverse@^7.10.4", "@babel/traverse@^7.11.5", "@babel/traverse@^7.7.0", "@babel/traverse@^7.9.6": - version "7.11.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.11.5.tgz#be777b93b518eb6d76ee2e1ea1d143daa11e61c3" - integrity sha512-EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ== +"@babel/template@^7.10.4", "@babel/template@^7.12.7": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.7.tgz#c817233696018e39fbb6c491d2fb684e05ed43bc" + integrity sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow== dependencies: "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.11.5" - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.11.0" - "@babel/parser" "^7.11.5" - "@babel/types" "^7.11.5" + "@babel/parser" "^7.12.7" + "@babel/types" "^7.12.7" + +"@babel/traverse@^7.10.4", "@babel/traverse@^7.11.5", "@babel/traverse@^7.12.1", "@babel/traverse@^7.12.10", "@babel/traverse@^7.12.5", "@babel/traverse@^7.7.0": + version "7.12.12" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.12.tgz#d0cd87892704edd8da002d674bc811ce64743376" + integrity sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w== + dependencies: + "@babel/code-frame" "^7.12.11" + "@babel/generator" "^7.12.11" + "@babel/helper-function-name" "^7.12.11" + "@babel/helper-split-export-declaration" "^7.12.11" + "@babel/parser" "^7.12.11" + "@babel/types" "^7.12.12" debug "^4.1.0" globals "^11.1.0" lodash "^4.17.19" -"@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.11.5", "@babel/types@^7.4.4", "@babel/types@^7.7.0", "@babel/types@^7.9.6": - version "7.11.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.11.5.tgz#d9de577d01252d77c6800cee039ee64faf75662d" - integrity sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q== +"@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.5", "@babel/types@^7.12.1", "@babel/types@^7.12.10", "@babel/types@^7.12.11", "@babel/types@^7.12.12", "@babel/types@^7.12.5", "@babel/types@^7.12.7", "@babel/types@^7.4.4", "@babel/types@^7.7.0": + version "7.12.12" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.12.tgz#4608a6ec313abbd87afa55004d373ad04a96c299" + integrity sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ== dependencies: - "@babel/helper-validator-identifier" "^7.10.4" + "@babel/helper-validator-identifier" "^7.12.11" lodash "^4.17.19" to-fast-properties "^2.0.0" @@ -1046,10 +1016,26 @@ exec-sh "^0.3.2" minimist "^1.2.0" -"@fortawesome/fontawesome-common-types@^0.2.28": - version "0.2.30" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.30.tgz#2f1cc5b46bd76723be41d0013a8450c9ba92b777" - integrity sha512-TsRwpTuKwFNiPhk1UfKgw7zNPeV5RhNp2Uw3pws+9gDAkPGKrtjR1y2lI3SYn7+YzyfuNknflpBA1LRKjt7hMg== +"@eslint/eslintrc@^0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.1.3.tgz#7d1a2b2358552cc04834c0979bd4275362e37085" + integrity sha512-4YVwPkANLeNtRjMekzux1ci8hIaH5eGKktGqR0d3LWsKNn5B2X/1Z6Trxy7jQXl9EBGE6Yj02O+t09FMeRllaA== + dependencies: + ajv "^6.12.4" + debug "^4.1.1" + espree "^7.3.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^3.13.1" + lodash "^4.17.19" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" + +"@fortawesome/fontawesome-common-types@^0.2.31": + version "0.2.32" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.32.tgz#3436795d5684f22742989bfa08f46f50f516f259" + integrity sha512-ux2EDjKMpcdHBVLi/eWZynnPxs0BtFVXJkgHIxXRl+9ZFaHPvYamAfCzeeQFqHRjuJtX90wVnMRaMQAAlctz3w== "@fortawesome/fontawesome-free@5.15.0": version "5.15.0" @@ -1120,18 +1106,18 @@ call-me-maybe "^1.0.1" glob-to-regexp "^0.3.0" -"@nodelib/fs.scandir@2.1.3": - version "2.1.3" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b" - integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw== +"@nodelib/fs.scandir@2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz#d4b3549a5db5de2683e0c1071ab4f140904bbf69" + integrity sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA== dependencies: - "@nodelib/fs.stat" "2.0.3" + "@nodelib/fs.stat" "2.0.4" run-parallel "^1.1.9" -"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3" - integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA== +"@nodelib/fs.stat@2.0.4", "@nodelib/fs.stat@^2.0.2": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz#a3f2dd61bab43b8db8fa108a121cfffe4c676655" + integrity sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q== "@nodelib/fs.stat@^1.1.2": version "1.1.3" @@ -1139,11 +1125,11 @@ integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== "@nodelib/fs.walk@^1.2.3": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976" - integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ== + version "1.2.6" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz#cce9396b30aa5afe9e3756608f5831adcb53d063" + integrity sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow== dependencies: - "@nodelib/fs.scandir" "2.1.3" + "@nodelib/fs.scandir" "2.1.4" fastq "^1.6.0" "@react-dnd/asap@^4.0.0": @@ -1223,7 +1209,7 @@ "@sentry/types" "5.24.2" tslib "^1.9.3" -"@stylelint/postcss-css-in-js@^0.37.1": +"@stylelint/postcss-css-in-js@^0.37.2": version "0.37.2" resolved "https://registry.yarnpkg.com/@stylelint/postcss-css-in-js/-/postcss-css-in-js-0.37.2.tgz#7e5a84ad181f4234a2480803422a47b8749af3d2" integrity sha512-nEhsFoJurt8oUmieT8qy4nk81WRHmJynmVwn/Vts08PL9fhgIsMhk1GId5yAN643OzqEEb5S/6At2TZW7pqPDA== @@ -1231,25 +1217,17 @@ "@babel/core" ">=7.9.0" "@stylelint/postcss-markdown@^0.36.1": - version "0.36.1" - resolved "https://registry.yarnpkg.com/@stylelint/postcss-markdown/-/postcss-markdown-0.36.1.tgz#829b87e6c0f108014533d9d7b987dc9efb6632e8" - integrity sha512-iDxMBWk9nB2BPi1VFQ+Dc5+XpvODBHw2n3tYpaBZuEAFQlbtF9If0Qh5LTTwSi/XwdbJ2jt+0dis3i8omyggpw== + version "0.36.2" + resolved "https://registry.yarnpkg.com/@stylelint/postcss-markdown/-/postcss-markdown-0.36.2.tgz#0a540c4692f8dcdfc13c8e352c17e7bfee2bb391" + integrity sha512-2kGbqUVJUGE8dM+bMzXG/PYUWKkjLIkRLWNh39OaADkiabDRdw8ATFCgbMz5xdIcvwspPAluSL7uY+ZiTWdWmQ== dependencies: - remark "^12.0.0" - unist-util-find-all-after "^3.0.1" + remark "^13.0.0" + unist-util-find-all-after "^3.0.2" -"@types/color-name@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" - integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== - -"@types/glob@^7.1.1": - version "7.1.3" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" - integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w== - dependencies: - "@types/minimatch" "*" - "@types/node" "*" +"@types/anymatch@*": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@types/anymatch/-/anymatch-1.3.1.tgz#336badc1beecb9dacc38bea2cf32adf627a8421a" + integrity sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA== "@types/hoist-non-react-statics@^3.3.1": version "3.3.1" @@ -1259,15 +1237,10 @@ "@types/react" "*" hoist-non-react-statics "^3.3.0" -"@types/json-schema@^7.0.5": - version "7.0.6" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0" - integrity sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw== - -"@types/json5@^0.0.29": - version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= +"@types/html-minifier-terser@^5.0.0": + version "5.1.1" + resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#3c9ee980f1a10d6021ae6632ca3e79ca2ec4fb50" + integrity sha512-giAlZwstKbmvMk1OO7WXSj4OZ0keXAcl2TQq4LWHiiPH2ByaH7WeUzng+Qej8UPxxv+8lRTuouo0iaNDBuzIBA== "@types/json-schema@^7.0.5": version "7.0.6" @@ -1279,15 +1252,22 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= +"@types/mdast@^3.0.0": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.3.tgz#2d7d671b1cd1ea3deb306ea75036c2a0407d2deb" + integrity sha512-SXPBMnFVQg1s00dlMCc/jCdvPqdE4mXaMMCeRlxLDmTAEoegHT53xKtkDnzDTOcmMHUfcjyf36/YYZ6SxRdnsw== + dependencies: + "@types/unist" "*" + "@types/minimist@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.0.tgz#69a23a3ad29caf0097f06eda59b361ee2f0639f6" - integrity sha1-aaI6OtKcrwCX8G7aWbNh7i8GOfY= + version "1.2.1" + resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.1.tgz#283f669ff76d7b8260df8ab7a4262cc83d988256" + integrity sha512-fZQQafSREFyuZcdWFAExYjBiCL7AUCdgsk80iO0q4yihYYdcIiH28CcuPTGFgLOCC8RlW49GSQxdHwZP+I7CNg== "@types/node@*": - version "14.6.4" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.6.4.tgz#a145cc0bb14ef9c4777361b7bbafa5cf8e3acb5a" - integrity sha512-Wk7nG1JSaMfMpoMJDKUsWYugliB2Vy55pdjLpmLixeyMi7HizW2I/9QoxsPCkXl3dO+ZOVqPumKaDUv5zJu2uQ== + version "14.14.19" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.19.tgz#5135176a8330b88ece4e9ab1fdcfc0a545b4bab4" + integrity sha512-4nhBPStMK04rruRVtVc6cDqhu7S9GZai0fpXgPXrFpcPX6Xul8xnrjSdGB4KPBVYG/R5+fXWdCM8qBoiULWGPQ== "@types/normalize-package-data@^2.4.0": version "2.4.0" @@ -1310,31 +1290,48 @@ integrity sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug== "@types/react@*": - version "16.9.49" - resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.49.tgz#09db021cf8089aba0cdb12a49f8021a69cce4872" - integrity sha512-DtLFjSj0OYAdVLBbyjhuV9CdGVHCkHn2R+xr3XkBvK2rS1Y1tkc14XSGjYgm5Fjjr90AxH9tiSzc1pCFMGO06g== + version "17.0.0" + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.0.tgz#5af3eb7fad2807092f0046a1302b7823e27919b8" + integrity sha512-aj/L7RIMsRlWML3YB6KZiXB3fV2t41+5RBGYF8z+tAKU43Px8C3cYUZsDvf1/+Bm4FK21QWBrDutu8ZJ/70qOw== dependencies: "@types/prop-types" "*" csstype "^3.0.2" -"@types/unist@^2.0.0", "@types/unist@^2.0.2": +"@types/source-list-map@*": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" + integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA== + +"@types/tapable@*", "@types/tapable@^1.0.5": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.6.tgz#a9ca4b70a18b270ccb2bc0aaafefd1d486b7ea74" + integrity sha512-W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA== + +"@types/uglify-js@*": + version "3.11.1" + resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.11.1.tgz#97ff30e61a0aa6876c270b5f538737e2d6ab8ceb" + integrity sha512-7npvPKV+jINLu1SpSYVWG8KvyJBhBa8tmzMMdDoVc2pWUYHN8KIXlPJhjJ4LT97c4dXJA2SHL/q6ADbDriZN+Q== + dependencies: + source-map "^0.6.1" + +"@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2": version "2.0.3" resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.3.tgz#9c088679876f374eb5983f150d4787aa6fb32d7e" integrity sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ== "@types/webpack-sources@*": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-2.0.0.tgz#08216ab9be2be2e1499beaebc4d469cec81e82a7" - integrity sha512-a5kPx98CNFRKQ+wqawroFunvFqv7GHm/3KOI52NY9xWADgc8smu4R6prt4EU/M4QfVjvgBkMqU4fBhw3QfMVkg== + version "2.1.0" + resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-2.1.0.tgz#8882b0bd62d1e0ce62f183d0d01b72e6e82e8c10" + integrity sha512-LXn/oYIpBeucgP1EIJbKQ2/4ZmpvRl+dlrFdX7+94SKRUV3Evy3FsfMZY318vGhkWUS5MPhtOM3w1/hCOAOXcg== dependencies: "@types/node" "*" "@types/source-list-map" "*" source-map "^0.7.3" "@types/webpack@^4.41.8": - version "4.41.22" - resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.22.tgz#ff9758a17c6bd499e459b91e78539848c32d0731" - integrity sha512-JQDJK6pj8OMV9gWOnN1dcLCyU9Hzs6lux0wBO4lr1+gyEhIBR9U3FMrz12t2GPkg110XAxEAw2WHF6g7nZIbRQ== + version "4.41.25" + resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.25.tgz#4d3b5aecc4e44117b376280fbfd2dc36697968c4" + integrity sha512-cr6kZ+4m9lp86ytQc1jPOJXgINQyz3kLLunZ57jznW+WIAL0JqZbGubQk4GlD42MuQL5JGOABrxdpqqWeovlVQ== dependencies: "@types/anymatch" "*" "@types/node" "*" @@ -1498,7 +1495,7 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== -acorn-jsx@^5.2.0: +acorn-jsx@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== @@ -1509,14 +1506,14 @@ acorn@5.X, acorn@^5.0.3: integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== acorn@^6.4.1: - version "6.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" - integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== + version "6.4.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" + integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== acorn@^7.4.0: - version "7.4.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.0.tgz#e1ad486e6c54501634c6c397c5c121daa383607c" - integrity sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w== + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== add-px-to-style@1.0.0: version "1.0.0" @@ -1542,15 +1539,25 @@ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4: - version "6.12.4" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.4.tgz#0614facc4522127fa713445c6bfd3ebd376e2234" - integrity sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ== + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== dependencies: fast-deep-equal "^3.1.1" fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.4.1" uri-js "^4.2.2" +ajv@^7.0.2: + version "7.0.3" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-7.0.3.tgz#13ae747eff125cafb230ac504b2406cf371eece2" + integrity sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + alphanum-sort@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" @@ -1736,12 +1743,14 @@ array-each@^1.0.0, array-each@^1.0.1: integrity sha1-p5SvDAWrF1KEbudTofIRoFugxE8= array-includes@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.1.tgz#cdd67e6852bdf9c1215460786732255ed2459348" - integrity sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ== + version "3.1.2" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.2.tgz#a8db03e0b88c8c6aeddc49cb132f9bcab4ebf9c8" + integrity sha512-w2GspexNQpx+PutG3QpT437/BenZBj0M/MZGn5mzv/MofYqo0xmRHzn4lFsoDlWJ+THYsGJmFlW68WlDFx7VRw== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.17.0" + es-abstract "^1.18.0-next.1" + get-intrinsic "^1.0.1" is-string "^1.0.5" array-initial@^1.0.0: @@ -1806,20 +1815,22 @@ array-unique@^0.3.2: integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= array.prototype.flat@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz#0de82b426b0318dbfdb940089e38b043d37f6c7b" - integrity sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ== + version "1.2.4" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz#6ef638b43312bd401b4c6199fdec7e2dc9e9a123" + integrity sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" + es-abstract "^1.18.0-next.1" array.prototype.flatmap@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.3.tgz#1c13f84a178566042dd63de4414440db9222e443" - integrity sha512-OOEk+lkePcg+ODXIpvuU9PAryCikCJyo7GlDG1upleEpQRx6mzL9puEBkozQ5iAx20KV0l3DbyQwqciJtqe5Pg== + version "1.2.4" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz#94cfd47cc1556ec0747d97f7c7738c58122004c9" + integrity sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" + es-abstract "^1.18.0-next.1" function-bind "^1.1.1" arrify@^1.0.1: @@ -1927,7 +1938,7 @@ autoprefixer@9.7.5: postcss "^7.0.27" postcss-value-parser "^4.0.3" -autoprefixer@^9.8.0: +autoprefixer@^9.8.6: version "9.8.6" resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f" integrity sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg== @@ -1946,9 +1957,9 @@ aws-sign2@~0.7.0: integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= aws4@^1.8.0: - version "1.10.1" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.10.1.tgz#e1e82e4f3e999e2cfd61b161280d16a111f86428" - integrity sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA== + version "1.11.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" + integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== babel-eslint@10.1.0: version "10.1.0" @@ -2029,9 +2040,9 @@ balanced-match@^1.0.0: integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= base64-js@^1.0.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" - integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== base@^0.11.1: version "0.11.2" @@ -2085,7 +2096,7 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== -bn.js@^5.1.1: +bn.js@^5.0.0, bn.js@^5.1.1: version "5.1.3" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.3.tgz#beca005408f642ebebea80b042b4d18d2ac0ee6b" integrity sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ== @@ -2182,11 +2193,11 @@ browserify-des@^1.0.0: safe-buffer "^5.1.2" browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" - integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= + version "4.1.0" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" + integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== dependencies: - bn.js "^4.1.0" + bn.js "^5.0.0" randombytes "^2.0.1" browserify-sign@^4.0.0: @@ -2211,15 +2222,16 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^4.0.0, browserslist@^4.11.0, browserslist@^4.11.1, browserslist@^4.12.0, browserslist@^4.8.5: - version "4.14.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.1.tgz#cb2b490ba881d45dc3039078c7ed04411eaf3fa3" - integrity sha512-zyBTIHydW37pnb63c7fHFXUG6EcqWOqoMdDx6cdyaDFriZ20EoVxcE95S54N+heRqY8m8IUgB5zYta/gCwSaaA== +browserslist@^4.0.0, browserslist@^4.11.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.16.0: + version "4.16.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.0.tgz#410277627500be3cb28a1bfe037586fbedf9488b" + integrity sha512-/j6k8R0p3nxOC6kx5JGAxsnhc9ixaWJfYc+TNTzxg6+ARaESAvQGV7h0uNOB4t+pLQJZWzcrMxXOxjgsCj3dqQ== dependencies: - caniuse-lite "^1.0.30001124" - electron-to-chromium "^1.3.562" - escalade "^3.0.2" - node-releases "^1.1.60" + caniuse-lite "^1.0.30001165" + colorette "^1.2.1" + electron-to-chromium "^1.3.621" + escalade "^3.1.1" + node-releases "^1.1.67" bser@2.1.1: version "2.1.1" @@ -2305,6 +2317,14 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" +call-bind@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.0.tgz#24127054bb3f9bdcb4b1fb82418186072f77b8ce" + integrity sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.0" + call-me-maybe@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" @@ -2335,12 +2355,12 @@ callsites@^3.0.0: integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== camel-case@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.1.tgz#1fc41c854f00e2f7d0139dfeba1542d6896fe547" - integrity sha512-7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q== + version "4.1.2" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" + integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== dependencies: - pascal-case "^3.1.1" - tslib "^1.10.0" + pascal-case "^3.1.2" + tslib "^2.0.3" camelcase-css@^2.0.1: version "2.0.1" @@ -2376,10 +2396,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001036, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001124: - version "1.0.30001124" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001124.tgz#5d9998190258e11630d674fc50ea8e579ae0ced2" - integrity sha512-zQW8V3CdND7GHRH6rxm6s59Ww4g/qGWTheoboW9nfeMg7sUoopIfKCcNZUjwYRCOrvereh3kwDpZj4VLQ7zGtA== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001036, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001165: + version "1.0.30001171" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001171.tgz#3291e11e02699ad0a29e69b8d407666fc843eba7" + integrity sha512-5Alrh8TTYPG9IH4UkRqEBZoEToWRLvPbSQokvzSz0lii8/FOWKG4keO1HoYfPWs8IF/NH/dyNPg1cmJGvV3Zlg== capture-exit@^2.0.0: version "2.0.0" @@ -2393,11 +2413,6 @@ caseless@~0.12.0: resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -ccount@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.0.5.tgz#ac82a944905a65ce204eb03023157edf29425c17" - integrity sha512-MOli1W+nfbPLlKEhInaxhRdp7KVLFxLN5ykwzHgLsLI3H3gs5jjFAK4Eoj3OzzcxCtumDaI8onoVDeQyWaNTkw== - chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" @@ -2426,11 +2441,6 @@ chalk@^4.0.0, chalk@^4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -character-entities-html4@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-1.1.4.tgz#0e64b0a3753ddbf1fdc044c5fd01d0199a02e125" - integrity sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g== - character-entities-legacy@^1.0.0: version "1.1.4" resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" @@ -2466,9 +2476,9 @@ chokidar@^2.0.0, chokidar@^2.1.8: fsevents "^1.2.7" chokidar@^3.4.1: - version "3.4.2" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.2.tgz#38dc8e658dec3809741eb3ef7bb0a47fe424232d" - integrity sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A== + version "3.4.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.3.tgz#c1df38231448e45ca4ac588e6c79573ba6a57d5b" + integrity sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ== dependencies: anymatch "~3.1.1" braces "~3.0.2" @@ -2476,7 +2486,7 @@ chokidar@^3.4.1: is-binary-path "~2.1.0" is-glob "~4.0.1" normalize-path "~3.0.0" - readdirp "~3.4.0" + readdirp "~3.5.0" optionalDependencies: fsevents "~2.1.2" @@ -2614,11 +2624,6 @@ code-point-at@^1.0.0: resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= -collapse-white-space@^1.0.2: - version "1.0.6" - resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.6.tgz#e63629c0016665792060dbbeb79c42239d2c5287" - integrity sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ== - collection-map@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/collection-map/-/collection-map-1.0.0.tgz#aea0f06f8d26c780c2b75494385544b2255af18c" @@ -2667,10 +2672,10 @@ color-string@^0.3.0: dependencies: color-name "^1.0.0" -color-string@^1.5.2: - version "1.5.3" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc" - integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw== +color-string@^1.5.4: + version "1.5.4" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.4.tgz#dd51cd25cfee953d138fe4002372cc3d0e504cb6" + integrity sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw== dependencies: color-name "^1.0.0" simple-swizzle "^0.2.2" @@ -2690,12 +2695,12 @@ color@^0.11.0: color-string "^0.3.0" color@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/color/-/color-3.1.2.tgz#68148e7f85d41ad7649c5fa8c8106f098d229e10" - integrity sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg== + version "3.1.3" + resolved "https://registry.yarnpkg.com/color/-/color-3.1.3.tgz#ca67fb4e7b97d611dcde39eceed422067d91596e" + integrity sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ== dependencies: color-convert "^1.9.1" - color-string "^1.5.2" + color-string "^1.5.4" colorette@^1.2.1: version "1.2.1" @@ -2818,14 +2823,14 @@ copy-props@^2.0.1: is-plain-object "^2.0.1" core-js-compat@^3.6.2: - version "3.6.5" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.5.tgz#2a51d9a4e25dfd6e690251aa81f99e3c05481f1c" - integrity sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng== + version "3.8.2" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.8.2.tgz#3717f51f6c3d2ebba8cbf27619b57160029d1d4c" + integrity sha512-LO8uL9lOIyRRrQmZxHZFl1RV+ZbcsAkFWTktn5SmH40WgLtSNYN4m4W2v9ONT147PxBY/XrRhrWq8TlvObyUjQ== dependencies: - browserslist "^4.8.5" + browserslist "^4.16.0" semver "7.0.0" -core-js@3: +core-js@3.6.5: version "3.6.5" resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a" integrity sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA== @@ -2836,9 +2841,9 @@ core-js@^1.0.0: integrity sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY= core-js@^2.4.0: - version "2.6.11" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" - integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== + version "2.6.12" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" + integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" @@ -2988,17 +2993,7 @@ css-select-base-adapter@^0.1.1: resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== -css-select@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" - integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg= - dependencies: - boolbase "~1.0.0" - css-what "2.1" - domutils "1.5.1" - nth-check "~1.0.1" - -css-select@^2.0.0: +css-select@^2.0.0, css-select@^2.0.2: version "2.1.0" resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== @@ -3016,23 +3011,18 @@ css-tree@1.0.0-alpha.37: mdn-data "2.0.4" source-map "^0.6.1" -css-tree@1.0.0-alpha.39: - version "1.0.0-alpha.39" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.39.tgz#2bff3ffe1bb3f776cf7eefd91ee5cba77a149eeb" - integrity sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA== +css-tree@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.2.tgz#9ae393b5dafd7dae8a622475caec78d3d8fbd7b5" + integrity sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ== dependencies: - mdn-data "2.0.6" + mdn-data "2.0.14" source-map "^0.6.1" -css-what@2.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" - integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== - css-what@^3.2.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.1.tgz#81cb70b609e4b1351b1e54cbc90fd9c54af86e2e" - integrity sha512-wHOppVDKl4vTAOWzJt5Ek37Sgd9qq1Bmj/T1OjvicWbU5W7ru7Pqbn0Jdqii3Drx/h+dixHKXNhZYx7blthL7g== + version "3.4.2" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" + integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== css@2.X, css@^2.2.1: version "2.2.4" @@ -3118,16 +3108,16 @@ cssnano@^4.1.10: postcss "^7.0.0" csso@^4.0.2: - version "4.0.3" - resolved "https://registry.yarnpkg.com/csso/-/csso-4.0.3.tgz#0d9985dc852c7cc2b2cacfbbe1079014d1a8e903" - integrity sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ== + version "4.2.0" + resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" + integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== dependencies: - css-tree "1.0.0-alpha.39" + css-tree "^1.1.2" csstype@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.3.tgz#2b410bbeba38ba9633353aff34b05d9755d065f8" - integrity sha512-jPl+wbWPOWJ7SXsWyqGRk3lGecbar0Cb0OvZF/r/ZU011R4YqiRehgkQ9p4eQfo9DSDLqLL3wHwfxeJiuIsNag== + version "3.0.5" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.5.tgz#7fdec6a28a67ae18647c51668a9ff95bb2fa7bb8" + integrity sha512-uVDi8LpBUKQj6sdxNaTetL6FpeCqTjOvAQuQUa/qAqq8oOd4ivkbhgnqayl0dnPal8Tb/yB1tF+gOvCBiicaiQ== cuint@^0.2.2: version "0.2.2" @@ -3164,9 +3154,9 @@ debug-fabulous@1.X: object-assign "4.X" debug@3.X, debug@^3.1.0: - version "3.2.6" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" - integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: ms "^2.1.1" @@ -3177,10 +3167,10 @@ debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: dependencies: ms "2.0.0" -debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz#7f150f93920e94c58f5574c2fd01a3110effe7f1" - integrity sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg== +debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== dependencies: ms "2.1.2" @@ -3422,9 +3412,9 @@ domelementtype@1, domelementtype@^1.3.1: integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== domelementtype@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.2.tgz#f3b6e549201e46f588b59463dd77187131fe6971" - integrity sha512-wFwTwCVebUrMgGeAwRL/NhZtHAUyT9n9yg4IMDwf10+6iCMxSkVq9MGCVEH+QZWo1nNidy8kNvwmv4zWHDTqvA== + version "2.1.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.1.0.tgz#a851c080a6d1c3d94344aed151d99f669edf585e" + integrity sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w== domhandler@^2.3.0: version "2.4.2" @@ -3433,14 +3423,6 @@ domhandler@^2.3.0: dependencies: domelementtype "1" -domutils@1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" - integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8= - dependencies: - dom-serializer "0" - domelementtype "1" - domutils@^1.5.1, domutils@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" @@ -3449,13 +3431,13 @@ domutils@^1.5.1, domutils@^1.7.0: dom-serializer "0" domelementtype "1" -dot-case@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.3.tgz#21d3b52efaaba2ea5fda875bb1aa8124521cf4aa" - integrity sha512-7hwEmg6RiSQfm/GwPL4AAWXKy3YNNZA3oFv2Pdiey0mwkRCPZ9x6SZbkLcn8Ma5PYeVokzoD4Twv2n7LKp5WeA== +dot-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" + integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== dependencies: - no-case "^3.0.3" - tslib "^1.10.0" + no-case "^3.0.4" + tslib "^2.0.3" dot-prop@^5.2.0: version "5.3.0" @@ -3490,10 +3472,10 @@ ecc-jsbn@~0.1.1: jsbn "~0.1.0" safer-buffer "^2.1.0" -electron-to-chromium@^1.3.562: - version "1.3.562" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.562.tgz#79c20277ee1c8d0173a22af00e38433b752bc70f" - integrity sha512-WhRe6liQ2q/w1MZc8mD8INkenHivuHdrr4r5EQHNomy3NJux+incP6M6lDMd0paShP3MD0WGe5R1TWmEClf+Bg== +electron-to-chromium@^1.3.621: + version "1.3.633" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.633.tgz#16dd5aec9de03894e8d14a1db4cda8a369b9b7fe" + integrity sha512-bsVCsONiVX1abkWdH7KtpuDAhsQ3N3bjPYhROSAXE78roJKet0Y5wznA14JE9pzbwSZmSMAW6KiKYf1RvbTJkA== element-class@0.2.2: version "0.2.2" @@ -3542,7 +3524,7 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0: dependencies: once "^1.4.0" -enhanced-resolve@^4.1.0, enhanced-resolve@^4.3.0: +enhanced-resolve@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz#3b806f3bfafc1ec7de69551ef93cca46c1704126" integrity sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ== @@ -3564,14 +3546,14 @@ entities@^1.1.1: integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== entities@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.3.tgz#5c487e5742ab93c15abb5da22759b8590ec03b7f" - integrity sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ== + version "2.1.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5" + integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w== errno@^0.1.3, errno@~0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" - integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== + version "0.1.8" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" + integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== dependencies: prr "~1.0.1" @@ -3589,7 +3571,7 @@ error@^7.0.0: dependencies: string-template "~0.2.1" -es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.17.5: +es-abstract@^1.17.0-next.1, es-abstract@^1.17.2: version "1.17.7" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.7.tgz#a4de61b2f66989fc7421676c1cb9787573ace54c" integrity sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g== @@ -3606,7 +3588,7 @@ es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstrac string.prototype.trimend "^1.0.1" string.prototype.trimstart "^1.0.1" -es-abstract@^1.18.0-next.0, es-abstract@^1.18.0-next.1: +es-abstract@^1.18.0-next.1: version "1.18.0-next.1" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.1.tgz#6e3a0a4bda717e5023ab3b8e90bec36108d22c68" integrity sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA== @@ -3624,24 +3606,6 @@ es-abstract@^1.18.0-next.0, es-abstract@^1.18.0-next.1: string.prototype.trimend "^1.0.1" string.prototype.trimstart "^1.0.1" -es-abstract@^1.18.0-next.0: - version "1.18.0-next.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.0.tgz#b302834927e624d8e5837ed48224291f2c66e6fc" - integrity sha512-elZXTZXKn51hUBdJjSZGYRujuzilgXo8vSPQzjGYXLvSlGiCo8VO8ZGV3kjo9a0WNJJ57hENagwbtlRuHuzkcQ== - dependencies: - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.2.0" - is-negative-zero "^2.0.0" - is-regex "^1.1.1" - object-inspect "^1.8.0" - object-keys "^1.1.1" - object.assign "^4.1.0" - string.prototype.trimend "^1.0.1" - string.prototype.trimstart "^1.0.1" - es-to-primitive@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" @@ -3692,10 +3656,10 @@ es6-weak-map@^2.0.1, es6-weak-map@^2.0.2: es6-iterator "^2.0.3" es6-symbol "^3.1.1" -escalade@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.0.2.tgz#6a580d70edb87880f22b4c91d0d56078df6962c4" - integrity sha512-gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ== +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" @@ -3747,10 +3711,10 @@ eslint-plugin-import@2.22.0: resolve "^1.17.0" tsconfig-paths "^3.9.0" -eslint-plugin-react@7.20.5: - version "7.20.5" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.20.5.tgz#29480f3071f64a04b2c3d99d9b460ce0f76fb857" - integrity sha512-ajbJfHuFnpVNJjhyrfq+pH1C0gLc2y94OiCbAXT5O0J0YCKaFEHDV8+3+mDOr+w8WguRX+vSs1bM2BDG0VLvCw== +eslint-plugin-react@7.21.3: + version "7.21.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.21.3.tgz#71655d2af5155b19285ec929dd2cdc67a4470b52" + integrity sha512-OI4GwTCqyIb4ipaOEGLWdaOHCXZZydStAsBEPB2e1ZfNM37bojpgO1BoOQbFb0eLVz3QLDx7b+6kYcrxCuJfhw== dependencies: array-includes "^3.1.1" array.prototype.flatmap "^1.2.3" @@ -3777,10 +3741,10 @@ eslint-scope@^4.0.3: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-scope@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.0.tgz#d0f971dfe59c69e0cada684b23d49dbf82600ce5" - integrity sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w== +eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== dependencies: esrecurse "^4.3.0" estraverse "^4.1.1" @@ -3797,10 +3761,10 @@ eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3 resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== -eslint@7.5.0: - version "7.5.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.5.0.tgz#9ecbfad62216d223b82ac9ffea7ef3444671d135" - integrity sha512-vlUP10xse9sWt9SGRtcr1LAC67BENcQMFeV+w5EvLEoFe3xJ8cF1Skd0msziRx/VMC+72B4DxreCE+OR12OA6Q== +eslint@7.10.0: + version "7.10.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.10.0.tgz#494edb3e4750fb791133ca379e786a8f648c72b9" + integrity sha512-BDVffmqWl7JJXqCjAK6lWtcQThZB/aP1HXSH1JKwGwv0LQEdvpR7qzNrUT487RM39B5goWuboFad5ovMBmD8yA== dependencies: "@babel/code-frame" "^7.0.0" "@eslint/eslintrc" "^0.1.3" @@ -3810,10 +3774,10 @@ eslint@7.5.0: debug "^4.0.1" doctrine "^3.0.0" enquirer "^2.3.5" - eslint-scope "^5.1.0" + eslint-scope "^5.1.1" eslint-utils "^2.1.0" eslint-visitor-keys "^1.3.0" - espree "^7.2.0" + espree "^7.3.0" esquery "^1.2.0" esutils "^2.0.2" file-entry-cache "^5.0.1" @@ -3840,13 +3804,13 @@ eslint@7.5.0: text-table "^0.2.0" v8-compile-cache "^2.0.3" -espree@^7.2.0: - version "7.3.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.0.tgz#dc30437cf67947cf576121ebd780f15eeac72348" - integrity sha512-dksIWsvKCixn1yrEXO8UosNSxaDoSYpq9reEjZSbHLpT5hpaCAKTLBwq0RHtLrIr+c0ByiYzWT8KTMRzoRCNlw== +espree@^7.3.0: + version "7.3.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" + integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== dependencies: acorn "^7.4.0" - acorn-jsx "^5.2.0" + acorn-jsx "^5.3.1" eslint-visitor-keys "^1.3.0" esprima@^4.0.0: @@ -3873,7 +3837,7 @@ esquery@^1.2.0: dependencies: estraverse "^5.1.0" -esrecurse@^4.1.0: +esrecurse@^4.1.0, esrecurse@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== @@ -4116,9 +4080,9 @@ fastest-levenshtein@^1.0.12: integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow== fastq@^1.6.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.8.0.tgz#550e1f9f59bbc65fe185cb6a9b4d95357107f481" - integrity sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q== + version "1.10.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.10.0.tgz#74dbefccade964932cdf500473ef302719c652bb" + integrity sha512-NL2Qc5L3iQEsyYzweq7qfgy5OtXCmGzGvhElGEd/SoFWEMOEczNh5s5ocaF01HDetxz+p8ecjNPA6cZxxIHmzA== dependencies: reusify "^1.0.4" @@ -4428,9 +4392,9 @@ fuse.js@6.4.1: integrity sha512-+hAS7KYgLXontDh/vqffs7wIBw0ceb9Sx8ywZQhOsiQGcSO5zInGhttWOUYQYlvV/yYMJOacQ129Xs3mP3+oZQ== gensync@^1.0.0-beta.1: - version "1.0.0-beta.1" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" - integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== get-caller-file@^1.0.1: version "1.0.3" @@ -4442,6 +4406,15 @@ get-caller-file@^2.0.1: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== +get-intrinsic@^1.0.0, get-intrinsic@^1.0.1, get-intrinsic@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.0.2.tgz#6820da226e50b24894e08859469dc68361545d49" + integrity sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + get-node-dimensions@^1.2.0: version "1.2.1" resolved "https://registry.yarnpkg.com/get-node-dimensions/-/get-node-dimensions-1.2.1.tgz#fb7b4bb57060fb4247dd51c9d690dfbec56b0823" @@ -4607,20 +4580,6 @@ globals@^12.1.0: dependencies: type-fest "^0.8.1" -globby@^10.0.1: - version "10.0.2" - resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.2.tgz#277593e745acaa4646c3ab411289ec47a0392543" - integrity sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg== - dependencies: - "@types/glob" "^7.1.1" - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.0.3" - glob "^7.1.3" - ignore "^5.1.1" - merge2 "^1.2.3" - slash "^3.0.0" - globby@^11.0.1: version "11.0.1" resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.1.tgz#9a2bf107a068f3ffeabc49ad702c79ede8cfd357" @@ -5018,7 +4977,7 @@ html-webpack-plugin@4.5.0: tapable "^1.1.3" util.promisify "1.0.0" -htmlparser2@^3.10.0, htmlparser2@^3.3.0: +htmlparser2@^3.10.0, htmlparser2@^3.10.1: version "3.10.1" resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== @@ -5031,9 +4990,9 @@ htmlparser2@^3.10.0, htmlparser2@^3.3.0: readable-stream "^3.1.1" http-parser-js@>=0.5.1: - version "0.5.2" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.2.tgz#da2e31d237b393aae72ace43882dd7e270a8ff77" - integrity sha512-opCO9ASqg5Wy2FNo7A0sxy71yGbbkJJXLdgMK04Tcypw9jr2MgWbyubb0+WdmDmGnFflO7fRbqbaihh/ENDlRQ== + version "0.5.3" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.3.tgz#01d2709c79d41698bb01d4decc5e9da4e4a033d9" + integrity sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg== http-signature@~1.2.0: version "1.2.0" @@ -5064,9 +5023,9 @@ icss-utils@^4.0.0, icss-utils@^4.1.1: postcss "^7.0.14" ieee754@^1.1.4: - version "1.1.13" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" - integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== iferr@^0.1.5: version "0.1.5" @@ -5083,7 +5042,7 @@ ignore@^4.0.6: resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== -ignore@^5.1.1, ignore@^5.1.4, ignore@^5.1.8: +ignore@^5.1.4, ignore@^5.1.8: version "5.1.8" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== @@ -5109,9 +5068,9 @@ import-fresh@^2.0.0: resolve-from "^3.0.0" import-fresh@^3.0.0, import-fresh@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" - integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== dependencies: parent-module "^1.0.0" resolve-from "^4.0.0" @@ -5156,7 +5115,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -5172,9 +5131,9 @@ inherits@2.0.3: integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= ini@^1.3.4, ini@^1.3.5: - version "1.3.5" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== internal-slot@^1.0.2: version "1.0.2" @@ -5234,11 +5193,6 @@ is-alphabetical@^1.0.0: resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== -is-alphanumeric@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz#4a9cef71daf4c001c1d81d63d140cf53fd6889f4" - integrity sha1-Spzvcdr0wAHB2B1j0UDPU/1oifQ= - is-alphanumerical@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf" @@ -5248,9 +5202,11 @@ is-alphanumerical@^1.0.0: is-decimal "^1.0.0" is-arguments@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" - integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.0.tgz#62353031dfbee07ceb34656a6bde59efecae8dd9" + integrity sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg== + dependencies: + call-bind "^1.0.0" is-arrayish@^0.2.1: version "0.2.1" @@ -5282,9 +5238,9 @@ is-buffer@^1.1.5: integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== is-buffer@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623" - integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A== + version "2.0.5" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" + integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== is-callable@^1.1.4, is-callable@^1.2.2: version "1.2.2" @@ -5303,6 +5259,13 @@ is-color-stop@^1.0.0: rgb-regex "^1.0.1" rgba-regex "^1.0.0" +is-core-module@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" + integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== + dependencies: + has "^1.0.3" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -5322,7 +5285,7 @@ is-date-object@^1.0.1: resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== -is-decimal@^1.0.0, is-decimal@^1.0.2: +is-decimal@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== @@ -5433,9 +5396,9 @@ is-negated-glob@^1.0.0: integrity sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI= is-negative-zero@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.0.tgz#9553b121b0fac28869da9ed459e20c7543788461" - integrity sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE= + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" + integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== is-number@^2.1.0: version "2.1.0" @@ -5508,7 +5471,7 @@ is-promise@^2.1: resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== -is-regex@^1.0.4, is-regex@^1.1.0, is-regex@^1.1.1: +is-regex@^1.0.4, is-regex@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg== @@ -5578,21 +5541,11 @@ is-valid-glob@^1.0.0: resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-1.0.0.tgz#29bf3eff701be2d4d315dbacc39bc39fe8f601aa" integrity sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao= -is-whitespace-character@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz#0858edd94a95594c7c9dd0b5c174ec6e45ee4aa7" - integrity sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w== - is-windows@^1.0.1, is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== -is-word-character@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.4.tgz#ce0e73216f98599060592f62ff31354ddbeb0230" - integrity sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA== - is-wsl@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" @@ -5659,9 +5612,9 @@ jquery@3.5.1: integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== js-yaml@^3.13.0, js-yaml@^3.13.1: - version "3.14.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" - integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== dependencies: argparse "^1.0.7" esprima "^4.0.0" @@ -5696,6 +5649,11 @@ json-schema-traverse@^0.4.1: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + json-schema@0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" @@ -5929,6 +5887,13 @@ loader-utils@^2.0.0: emojis-list "^3.0.0" json5 "^2.1.2" +localforage@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/localforage/-/localforage-1.8.1.tgz#f6c0a24b41ab33b10e4dc84342dd696f6f3e3433" + integrity sha512-azSSJJfc7h4bVpi0PGi+SmLQKJl2/8NErI+LhJsrORNikMZnhaQ7rv9fHj+ofwgSHrKRlsDCL/639a6nECIKuQ== + dependencies: + lie "3.1.1" + locate-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" @@ -6002,18 +5967,11 @@ lodash.upperfirst@4.3.1: resolved "https://registry.yarnpkg.com/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz#1365edf431480481ef0d1c68957a5ed99d49f7ce" integrity sha1-E2Xt9DFIBIHvDRxolXpe2Z1J984= -lodash@4.17.20, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.3, lodash@^4.17.5: +lodash@4.17.20, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.5: version "4.17.20" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== -log-symbols@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" - integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== - dependencies: - chalk "^2.0.1" - log-symbols@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" @@ -6021,7 +5979,7 @@ log-symbols@^4.0.0: dependencies: chalk "^4.0.0" -longest-streak@^2.0.1: +longest-streak@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.4.tgz#b8599957da5b5dab64dee3fe316fa774597d90e4" integrity sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg== @@ -6033,12 +5991,12 @@ loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3 dependencies: js-tokens "^3.0.0 || ^4.0.0" -lower-case@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.1.tgz#39eeb36e396115cc05e29422eaea9e692c9408c7" - integrity sha512-LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ== +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== dependencies: - tslib "^1.10.0" + tslib "^2.0.3" lru-cache@^5.1.1: version "5.1.1" @@ -6047,6 +6005,13 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + lru-queue@0.1: version "0.1.0" resolved "https://registry.yarnpkg.com/lru-queue/-/lru-queue-0.1.0.tgz#2738bd9f0d3cf4f84490c5736c48699ac632cda3" @@ -6103,18 +6068,6 @@ map-visit@^1.0.0: dependencies: object-visit "^1.0.0" -markdown-escapes@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.4.tgz#c95415ef451499d7602b91095f3c8e8975f78535" - integrity sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg== - -markdown-table@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-2.0.0.tgz#194a90ced26d31fe753d8b9434430214c011865b" - integrity sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A== - dependencies: - repeat-string "^1.0.0" - matchdep@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/matchdep/-/matchdep-2.0.0.tgz#c6f34834a0d8dbc3b37c27ee8bbcb27c7775582e" @@ -6144,23 +6097,44 @@ md5.js@^1.3.4: inherits "^2.0.1" safe-buffer "^5.1.2" -mdast-util-compact@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/mdast-util-compact/-/mdast-util-compact-2.0.1.tgz#cabc69a2f43103628326f35b1acf735d55c99490" - integrity sha512-7GlnT24gEwDrdAwEHrU4Vv5lLWrEer4KOkAiKT9nYstsTad7Oc1TwqT2zIMKRdZF7cTuaf+GA1E4Kv7jJh8mPA== +mdast-util-from-markdown@^0.8.0: + version "0.8.4" + resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.4.tgz#2882100c1b9fc967d3f83806802f303666682d32" + integrity sha512-jj891B5pV2r63n2kBTFh8cRI2uR9LQHsXG1zSDqfhXkIlDzrTcIlbB5+5aaYEkl8vOPIOPLf8VT7Ere1wWTMdw== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-to-string "^2.0.0" + micromark "~2.11.0" + parse-entities "^2.0.0" + unist-util-stringify-position "^2.0.0" + +mdast-util-to-markdown@^0.6.0: + version "0.6.2" + resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.2.tgz#8fe6f42a2683c43c5609dfb40407c095409c85b4" + integrity sha512-iRczns6WMvu0hUw02LXsPDJshBIwtUPbvHBWo19IQeU0YqmzlA8Pd30U8V7uiI0VPkxzS7A/NXBXH6u+HS87Zg== dependencies: - unist-util-visit "^2.0.0" + "@types/unist" "^2.0.0" + longest-streak "^2.0.0" + mdast-util-to-string "^2.0.0" + parse-entities "^2.0.0" + repeat-string "^1.0.0" + zwitch "^1.0.0" + +mdast-util-to-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz#b8cfe6a713e1091cb5b728fc48885a4767f8b97b" + integrity sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w== + +mdn-data@2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" + integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== mdn-data@2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== -mdn-data@2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.6.tgz#852dc60fcaa5daa2e8cf6c9189c440ed3e042978" - integrity sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA== - memoizee@0.4.X: version "0.4.14" resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.14.tgz#07a00f204699f9a95c2d9e77218271c7cd610d57" @@ -6191,7 +6165,7 @@ memory-fs@^0.5.0: errno "^0.1.3" readable-stream "^2.0.1" -meow@^7.0.1: +meow@^7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/meow/-/meow-7.1.1.tgz#7c01595e3d337fcb0ec4e8eed1666ea95903d306" integrity sha512-GWHvA5QOcS412WCo8vwKDlTelGLsCGBVevQB5Kva961rmNfun0PCbv5+xta2kUMFJyR8/oWnn7ddeKdosbAPbA== @@ -6213,6 +6187,14 @@ merge2@^1.2.3, merge2@^1.3.0: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== +micromark@~2.11.0: + version "2.11.2" + resolved "https://registry.yarnpkg.com/micromark/-/micromark-2.11.2.tgz#e8b6a05f54697d2d3d27fc89600c6bc40dd05f35" + integrity sha512-IXuP76p2uj8uMg4FQc1cRE7lPCLsfAXuEfdjtdO55VRiFO1asrCSQ5g43NmPqFtRwzEnEhafRVzn2jg0UiKArQ== + dependencies: + debug "^4.0.0" + parse-entities "^2.0.0" + micromatch@^2.1.5: version "2.3.11" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" @@ -6267,22 +6249,22 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.44.0: - version "1.44.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" - integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== +mime-db@1.45.0: + version "1.45.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.45.0.tgz#cceeda21ccd7c3a745eba2decd55d4b73e7879ea" + integrity sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w== mime-types@^2.1.12, mime-types@^2.1.26, mime-types@~2.1.19: - version "2.1.27" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" - integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== + version "2.1.28" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.28.tgz#1160c4757eab2c5363888e005273ecf79d2a0ecd" + integrity sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ== dependencies: - mime-db "1.44.0" + mime-db "1.45.0" mime@^2.3.1: - version "2.4.6" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.6.tgz#e5b407c90db442f2beb5b162373d07b69affa4d1" - integrity sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA== + version "2.4.7" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.7.tgz#962aed9be0ed19c91fd7dc2ece5d7f4e89a90d74" + integrity sha512-dhNd1uA2u397uQk3Nv5LM4lm93WYDUXFn3Fu291FJerns4jyTudqhIWe4W04YLy7Uk1tm1Ore04NpjRvQp/NPA== min-indent@^1.0.0: version "1.0.1" @@ -6290,11 +6272,11 @@ min-indent@^1.0.0: integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== mini-create-react-context@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/mini-create-react-context/-/mini-create-react-context-0.4.0.tgz#df60501c83151db69e28eac0ef08b4002efab040" - integrity sha512-b0TytUgFSbgFJGzJqXPKCFCBWigAjpjo+Fl7Vf7ZbKRDptszpppKxXH6DRXEABZ/gcEQczeb0iZ7JvL8e8jjCA== + version "0.4.1" + resolved "https://registry.yarnpkg.com/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz#072171561bfdc922da08a60c2197a497cc2d1d5e" + integrity sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ== dependencies: - "@babel/runtime" "^7.5.5" + "@babel/runtime" "^7.12.1" tiny-warning "^1.0.3" mini-css-extract-plugin@0.9.0: @@ -6401,20 +6383,25 @@ ms@2.0.0: resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= -ms@2.1.2, ms@^2.1.1: +ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== +ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + mute-stdout@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/mute-stdout/-/mute-stdout-1.0.1.tgz#acb0300eb4de23a7ddeec014e3e96044b3472331" integrity sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg== nan@^2.12.1: - version "2.14.1" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" - integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== + version "2.14.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" + integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== nanomatch@^1.2.9: version "1.2.13" @@ -6458,13 +6445,13 @@ nice-try@^1.0.4: resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== -no-case@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.3.tgz#c21b434c1ffe48b39087e86cfb4d2582e9df18f8" - integrity sha512-ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw== +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== dependencies: - lower-case "^2.0.1" - tslib "^1.10.0" + lower-case "^2.0.2" + tslib "^2.0.3" node-addon-api@^1.1.0: version "1.7.2" @@ -6513,10 +6500,10 @@ node-libs-browser@^2.2.1: util "^0.11.0" vm-browserify "^1.0.1" -node-releases@^1.1.60: - version "1.1.60" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.60.tgz#6948bdfce8286f0b5d0e5a88e8384e954dfe7084" - integrity sha512-gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA== +node-releases@^1.1.67: + version "1.1.67" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.67.tgz#28ebfcccd0baa6aad8e8d4d8fe4cbc49ae239c12" + integrity sha512-V5QF9noGFl3EymEwUYzO+3NTDpGfQB4ve6Qfnzf3UNydMhjQRVPR1DZTuvWiLzaFJYw2fmDwAfnRNEVb64hSIg== node.extend@2.0.2: version "2.0.2" @@ -6592,7 +6579,7 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" -nth-check@^1.0.2, nth-check@~1.0.1: +nth-check@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== @@ -6633,18 +6620,18 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-inspect@^1.7.0, object-inspect@^1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0" - integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA== +object-inspect@^1.8.0, object-inspect@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a" + integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw== object-is@^1.0.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.3.tgz#2e3b9e65560137455ee3bd62aec4d90a2ea1cc81" - integrity sha512-teyqLvFWzLkq5B9ki8FVWA902UER2qkxmdA4nLf+wjOLAWgxzCWZNCxpDq9MvE8MmhWNr+I8w3BN49Vx36Y6Xg== + version "1.1.4" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.4.tgz#63d6c83c00a43f4cbc9434eb9757c8a5b8565068" + integrity sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" @@ -6659,12 +6646,12 @@ object-visit@^1.0.0: isobject "^3.0.0" object.assign@^4.0.4, object.assign@^4.1.0, object.assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.1.tgz#303867a666cdd41936ecdedfb1f8f3e32a478cdd" - integrity sha512-VT/cxmx5yaoHSOTSyrCygIDFco+RsibY2NM0a4RdEeY/4KgqezwFtK1yr3U67xYhqJSlASm2pKhLVzPj2lr4bA== + version "4.1.2" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.18.0-next.0" has-symbols "^1.0.1" object-keys "^1.1.1" @@ -6679,31 +6666,33 @@ object.defaults@^1.0.0, object.defaults@^1.1.0: isobject "^3.0.0" object.entries@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.2.tgz#bc73f00acb6b6bb16c203434b10f9a7e797d3add" - integrity sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA== + version "1.1.3" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.3.tgz#c601c7f168b62374541a07ddbd3e2d5e4f7711a6" + integrity sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.17.5" + es-abstract "^1.18.0-next.1" has "^1.0.3" object.fromentries@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.2.tgz#4a09c9b9bb3843dd0f89acdb517a794d4f355ac9" - integrity sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ== + version "2.0.3" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.3.tgz#13cefcffa702dc67750314a3305e8cb3fad1d072" + integrity sha512-IDUSMXs6LOSJBWE++L0lzIbSqHl9KDCfff2x/JSEIDtEUavUnyMYC2ZGay/04Zq4UT8lvd4xNhU4/YHKibAOlw== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - function-bind "^1.1.1" + es-abstract "^1.18.0-next.1" has "^1.0.3" object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" - integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg== + version "2.1.1" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz#0dfda8d108074d9c563e80490c883b6661091544" + integrity sha512-6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" + es-abstract "^1.18.0-next.1" object.map@^1.0.0: version "1.0.1" @@ -6737,13 +6726,13 @@ object.reduce@^1.0.0: make-iterator "^1.0.0" object.values@^1.1.0, object.values@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e" - integrity sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA== + version "1.1.2" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.2.tgz#7a2015e06fcb0f546bd652486ce8583a4731c731" + integrity sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - function-bind "^1.1.1" + es-abstract "^1.18.0-next.1" has "^1.0.3" once@^1.3.0, once@^1.3.1, once@^1.3.2, once@^1.4.0: @@ -6871,12 +6860,12 @@ parallel-transform@^1.1.0: readable-stream "^2.1.5" param-case@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.3.tgz#4be41f8399eff621c56eebb829a5e451d9801238" - integrity sha512-VWBVyimc1+QrzappRs7waeN2YmoZFCGXWASRYX1/rGHtXqEcrGEIDm+jqIwFa2fRXNgQEwrxaYuIrX0WcAguTA== + version "3.0.4" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" + integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== dependencies: - dot-case "^3.0.3" - tslib "^1.10.0" + dot-case "^3.0.4" + tslib "^2.0.3" parent-module@^1.0.0: version "1.0.1" @@ -6962,13 +6951,13 @@ parse-passwd@^1.0.0: resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= -pascal-case@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.1.tgz#5ac1975133ed619281e88920973d2cd1f279de5f" - integrity sha512-XIeHKqIrsquVTQL2crjq3NfJUxmdLasn3TYOU0VBM+UX2a6ztAWBlJQBePLGY7VHW8+2dRadeIPK5+KImwTxQA== +pascal-case@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" + integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== dependencies: - no-case "^3.0.3" - tslib "^1.10.0" + no-case "^3.0.4" + tslib "^2.0.3" pascalcase@^0.1.1: version "0.1.1" @@ -7163,9 +7152,9 @@ posix-character-classes@^0.1.0: integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= postcss-calc@^7.0.1: - version "7.0.4" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.4.tgz#5e177ddb417341e6d4a193c5d9fd8ada79094f8b" - integrity sha512-0I79VRAd1UTkaHzY9w83P39YGO/M3bG7/tNLrHGEunBolfoGM0hSjrGvjoeaj0JE/zIw5GsI2KZ0UwDJqv5hjw== + version "7.0.5" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.5.tgz#f8a6e99f12e619c2ebc23cf6c486fdc15860933e" + integrity sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg== dependencies: postcss "^7.0.27" postcss-selector-parser "^6.0.2" @@ -7617,10 +7606,10 @@ postcss@^6.0.23: source-map "^0.6.1" supports-color "^5.4.0" -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.18, postcss@^7.0.2, postcss@^7.0.21, postcss@^7.0.23, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.31, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6, postcss@^7.0.7: - version "7.0.32" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.32.tgz#4310d6ee347053da3433db2be492883d62cec59d" - integrity sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw== +postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.18, postcss@^7.0.2, postcss@^7.0.21, postcss@^7.0.23, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.31, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: + version "7.0.35" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24" + integrity sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg== dependencies: chalk "^2.4.2" source-map "^0.6.1" @@ -7647,12 +7636,12 @@ preserve@^0.2.0: integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks= pretty-error@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3" - integrity sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM= + version "2.1.2" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.2.tgz#be89f82d81b1c86ec8fdfbc385045882727f93b6" + integrity sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw== dependencies: - renderkid "^2.0.1" - utila "~0.4" + lodash "^4.17.20" + renderkid "^2.0.4" pretty-hrtime@^1.0.0: version "1.0.3" @@ -7877,9 +7866,9 @@ react-autowhatever@^10.2.1: section-iterator "^2.0.0" react-clientside-effect@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/react-clientside-effect/-/react-clientside-effect-1.2.2.tgz#6212fb0e07b204e714581dd51992603d1accc837" - integrity sha512-nRmoyxeok5PBO6ytPvSjKp9xwXg9xagoTK1mMjwnQxqM9Hd7MNPl+LS1bOSOe+CV2+4fnEquc7H/S8QD3q697A== + version "1.2.3" + resolved "https://registry.yarnpkg.com/react-clientside-effect/-/react-clientside-effect-1.2.3.tgz#95c95f520addfb71743608b990bfe01eb002012b" + integrity sha512-96HOmjJjjemxZD4qMdaMWFl3d/3Dqm/MAXnThoP8+jQihevYs8VzooqYWlVEPmkp9tVIa06i67R7FF1qsuzUwQ== dependencies: "@babel/runtime" "^7.0.0" @@ -8174,10 +8163,10 @@ readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" -readdirp@~3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada" - integrity sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ== +readdirp@~3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" + integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== dependencies: picomatch "^2.2.1" @@ -8243,9 +8232,9 @@ regenerate-unicode-properties@^8.2.0: regenerate "^1.4.0" regenerate@^1.4.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.1.tgz#cad92ad8e6b591773485fbe05a485caf4f457e6f" - integrity sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A== + version "1.4.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== regenerator-runtime@^0.11.0: version "0.11.1" @@ -8292,7 +8281,7 @@ regexpp@^3.1.0: resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== -regexpu-core@^4.7.0: +regexpu-core@^4.7.1: version "4.7.1" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6" integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ== @@ -8321,56 +8310,28 @@ relateurl@^0.2.7: resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= -remark-parse@^8.0.0: - version "8.0.3" - resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-8.0.3.tgz#9c62aa3b35b79a486454c690472906075f40c7e1" - integrity sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q== +remark-parse@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-9.0.0.tgz#4d20a299665880e4f4af5d90b7c7b8a935853640" + integrity sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw== dependencies: - ccount "^1.0.0" - collapse-white-space "^1.0.2" - is-alphabetical "^1.0.0" - is-decimal "^1.0.0" - is-whitespace-character "^1.0.0" - is-word-character "^1.0.0" - markdown-escapes "^1.0.0" - parse-entities "^2.0.0" - repeat-string "^1.5.4" - state-toggle "^1.0.0" - trim "0.0.1" - trim-trailing-lines "^1.0.0" - unherit "^1.0.4" - unist-util-remove-position "^2.0.0" - vfile-location "^3.0.0" - xtend "^4.0.1" - -remark-stringify@^8.0.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-8.1.1.tgz#e2a9dc7a7bf44e46a155ec78996db896780d8ce5" - integrity sha512-q4EyPZT3PcA3Eq7vPpT6bIdokXzFGp9i85igjmhRyXWmPs0Y6/d2FYwUNotKAWyLch7g0ASZJn/KHHcHZQ163A== - dependencies: - ccount "^1.0.0" - is-alphanumeric "^1.0.0" - is-decimal "^1.0.0" - is-whitespace-character "^1.0.0" - longest-streak "^2.0.1" - markdown-escapes "^1.0.0" - markdown-table "^2.0.0" - mdast-util-compact "^2.0.0" - parse-entities "^2.0.0" - repeat-string "^1.5.4" - state-toggle "^1.0.0" - stringify-entities "^3.0.0" - unherit "^1.0.4" - xtend "^4.0.1" + mdast-util-from-markdown "^0.8.0" + +remark-stringify@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-9.0.1.tgz#576d06e910548b0a7191a71f27b33f1218862894" + integrity sha512-mWmNg3ZtESvZS8fv5PTvaPckdL4iNlCHTt8/e/8oN08nArHRHjNZMKzA/YW3+p7/lYqIw4nx1XsjCBo/AxNChg== + dependencies: + mdast-util-to-markdown "^0.6.0" -remark@^12.0.0: - version "12.0.1" - resolved "https://registry.yarnpkg.com/remark/-/remark-12.0.1.tgz#f1ddf68db7be71ca2bad0a33cd3678b86b9c709f" - integrity sha512-gS7HDonkdIaHmmP/+shCPejCEEW+liMp/t/QwmF0Xt47Rpuhl32lLtDV1uKWvGoq+kxr5jSgg5oAIpGuyULjUw== +remark@^13.0.0: + version "13.0.0" + resolved "https://registry.yarnpkg.com/remark/-/remark-13.0.0.tgz#d15d9bf71a402f40287ebe36067b66d54868e425" + integrity sha512-HDz1+IKGtOyWN+QgBiAT0kn+2s6ovOxHyPAFGKVE81VSzJ+mq7RwHFledEvB5F1p4iJvOah/LOKdFuzvRnNLCA== dependencies: - remark-parse "^8.0.0" - remark-stringify "^8.0.0" - unified "^9.0.0" + remark-parse "^9.0.0" + remark-stringify "^9.0.0" + unified "^9.1.0" remove-bom-buffer@^3.0.0: version "3.0.0" @@ -8394,23 +8355,23 @@ remove-trailing-separator@^1.0.1, remove-trailing-separator@^1.1.0: resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= -renderkid@^2.0.1: - version "2.0.3" - resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.3.tgz#380179c2ff5ae1365c522bf2fcfcff01c5b74149" - integrity sha512-z8CLQp7EZBPCwCnncgf9C4XAi3WR0dv+uWu/PjIyhhAb5d6IJ/QZqlHFprHeKT+59//V6BNUsLbvN8+2LarxGA== +renderkid@^2.0.4: + version "2.0.5" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.5.tgz#483b1ac59c6601ab30a7a596a5965cabccfdd0a5" + integrity sha512-ccqoLg+HLOHq1vdfYNm4TBeaCDIi1FLt3wGojTDSvdewUv65oTmI3cnT2E4hRjl1gzKZIPK+KZrXzlUYKnR+vQ== dependencies: - css-select "^1.1.0" + css-select "^2.0.2" dom-converter "^0.2" - htmlparser2 "^3.3.0" + htmlparser2 "^3.10.1" + lodash "^4.17.20" strip-ansi "^3.0.0" - utila "^0.4.0" repeat-element@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== -repeat-string@^1.0.0, repeat-string@^1.5.2, repeat-string@^1.5.4, repeat-string@^1.6.1: +repeat-string@^1.0.0, repeat-string@^1.5.2, repeat-string@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= @@ -8420,11 +8381,6 @@ replace-ext@0.0.1: resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924" integrity sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ= -replace-ext@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" - integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs= - replace-ext@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.1.tgz#2d6d996d04a15855d967443631dd5f77825b016a" @@ -8470,6 +8426,11 @@ require-directory@^2.1.1: resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + require-main-filename@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" @@ -8541,10 +8502,11 @@ resolve-url@^0.2.1: integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.17.0, resolve@^1.3.2, resolve@^1.4.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" - integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== + version "1.19.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" + integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== dependencies: + is-core-module "^2.1.0" path-parse "^1.0.6" ret@~0.1.10: @@ -8607,9 +8569,9 @@ rsvp@^4.8.4: integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== run-parallel@^1.1.9: - version "1.1.9" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" - integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== + version "1.1.10" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.10.tgz#60a51b2ae836636c81377df16cb107351bcd13ef" + integrity sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw== run-queue@^1.0.0, run-queue@^1.0.3: version "1.0.3" @@ -8691,7 +8653,7 @@ schema-utils@^1.0.0: ajv-errors "^1.0.0" ajv-keywords "^3.1.0" -schema-utils@^2.6.0, schema-utils@^2.6.5, schema-utils@^2.6.6: +schema-utils@^2.6.0, schema-utils@^2.6.5, schema-utils@^2.6.6, schema-utils@^2.7.0, schema-utils@^2.7.1: version "2.7.1" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== @@ -8728,9 +8690,11 @@ semver@7.0.0: integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== semver@^7.2.1: - version "7.3.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" - integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== + version "7.3.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" + integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== + dependencies: + lru-cache "^6.0.0" serialize-javascript@^4.0.0: version "4.0.0" @@ -8809,13 +8773,14 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -side-channel@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.3.tgz#cdc46b057550bbab63706210838df5d4c19519c3" - integrity sha512-A6+ByhlLkksFoUepsGxfj5x1gTSrs+OydsRptUxeNCabQpCFUvcwIczgOigI8vhY/OJCnPnyE9rGiwgvr9cS1g== +side-channel@^1.0.2, side-channel@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== dependencies: - es-abstract "^1.18.0-next.0" - object-inspect "^1.8.0" + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.3" @@ -8965,9 +8930,9 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.6" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz#c80757383c28abf7296744998cbc106ae8b854ce" - integrity sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw== + version "3.0.7" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65" + integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ== specificity@^0.4.1: version "0.4.1" @@ -9018,11 +8983,6 @@ stack-trace@0.0.10: resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA= -state-toggle@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.3.tgz#e123b16a88e143139b09c6852221bc9815917dfe" - integrity sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ== - static-extend@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" @@ -9114,32 +9074,33 @@ string-width@^4.2.0: strip-ansi "^6.0.0" string.prototype.matchall@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz#48bb510326fb9fdeb6a33ceaa81a6ea04ef7648e" - integrity sha512-N/jp6O5fMf9os0JU3E72Qhf590RSRZU/ungsL/qJUYVTNv7hTG0P/dbPjxINVN9jpscu3nzYwKESU3P3RY5tOg== + version "4.0.3" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.3.tgz#24243399bc31b0a49d19e2b74171a15653ec996a" + integrity sha512-OBxYDA2ifZQ2e13cP82dWFMaCV9CGF8GzmN4fljBVw5O5wep0lu4gacm1OL6MjROoUnB8VbkWRThqkV2YFLNxw== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.17.0" + es-abstract "^1.18.0-next.1" has-symbols "^1.0.1" internal-slot "^1.0.2" regexp.prototype.flags "^1.3.0" - side-channel "^1.0.2" + side-channel "^1.0.3" string.prototype.trimend@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" - integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== + version "1.0.3" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz#a22bd53cca5c7cf44d7c9d5c732118873d6cd18b" + integrity sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.17.5" string.prototype.trimstart@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" - integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== + version "1.0.3" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz#9b4cb590e123bb36564401d59824298de50fd5aa" + integrity sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.17.5" string_decoder@0.10, string_decoder@~0.10.x: version "0.10.31" @@ -9160,17 +9121,6 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -stringify-entities@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-3.0.1.tgz#32154b91286ab0869ab2c07696223bd23b6dbfc0" - integrity sha512-Lsk3ISA2++eJYqBMPKcr/8eby1I6L0gP0NlxF8Zja6c05yr/yCYyb2c9PwXjd08Ib3If1vn1rbs1H5ZtVuOfvQ== - dependencies: - character-entities-html4 "^1.0.0" - character-entities-legacy "^1.0.0" - is-alphanumerical "^1.0.0" - is-decimal "^1.0.2" - is-hexadecimal "^1.0.0" - strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" @@ -9229,7 +9179,7 @@ strip-indent@^3.0.0: dependencies: min-indent "^1.0.0" -strip-json-comments@^3.1.0: +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== @@ -9265,17 +9215,17 @@ stylelint-order@4.1.0: postcss "^7.0.31" postcss-sorting "^5.0.1" -stylelint@13.6.1: - version "13.6.1" - resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-13.6.1.tgz#cc1d76338116d55e8ff2be94c4a4386c1239b878" - integrity sha512-XyvKyNE7eyrqkuZ85Citd/Uv3ljGiuYHC6UiztTR6sWS9rza8j3UeQv/eGcQS9NZz/imiC4GKdk1EVL3wst5vw== +stylelint@13.7.2: + version "13.7.2" + resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-13.7.2.tgz#6f3c58eea4077680ed0ceb0d064b22b100970486" + integrity sha512-mmieorkfmO+ZA6CNDu1ic9qpt4tFvH2QUB7vqXgrMVHe5ENU69q7YDq0YUg/UHLuCsZOWhUAvcMcLzLDIERzSg== dependencies: "@stylelint/postcss-css-in-js" "^0.37.2" "@stylelint/postcss-markdown" "^0.36.1" - autoprefixer "^9.8.0" + autoprefixer "^9.8.6" balanced-match "^1.0.0" chalk "^4.1.0" - cosmiconfig "^6.0.0" + cosmiconfig "^7.0.0" debug "^4.1.1" execall "^2.0.0" fast-glob "^3.2.4" @@ -9315,7 +9265,7 @@ stylelint@13.6.1: style-search "^0.1.0" sugarss "^2.0.0" svg-tags "^1.0.0" - table "^5.4.6" + table "^6.0.1" v8-compile-cache "^2.1.1" write-file-atomic "^3.0.3" @@ -9345,7 +9295,7 @@ supports-color@^6.1.0: dependencies: has-flag "^3.0.0" -supports-color@^7.1.0: +supports-color@^7.1.0, supports-color@^7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== @@ -9400,11 +9350,11 @@ table@^5.2.3: string-width "^3.0.0" table@^6.0.1: - version "6.0.3" - resolved "https://registry.yarnpkg.com/table/-/table-6.0.3.tgz#e5b8a834e37e27ad06de2e0fda42b55cfd8a0123" - integrity sha512-8321ZMcf1B9HvVX/btKv8mMZahCjn2aYrDlpqHaBFCfnox64edeH9kEid0vTLTRR8gWR2A20aDgeuTTea4sVtw== + version "6.0.6" + resolved "https://registry.yarnpkg.com/table/-/table-6.0.6.tgz#e9223f1e851213e2e43ab584b0fec33fb09a8e7a" + integrity sha512-OInCtPmDNieVBkVFi6C8RwU2S2H0h8mF3e3TQK4nreaUNCpooQUkI+A/KuEkm5FawfhWIfNqG+qfelVVR+V00g== dependencies: - ajv "^6.12.4" + ajv "^7.0.2" lodash "^4.17.20" slice-ansi "^4.0.0" string-width "^4.2.0" @@ -9478,9 +9428,9 @@ time-stamp@^1.0.0: integrity sha1-dkpaEa9QVhkhsTPztE5hhofg9cM= timers-browserify@^2.0.4: - version "2.0.11" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" - integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ== + version "2.0.12" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" + integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== dependencies: setimmediate "^1.0.4" @@ -9623,16 +9573,6 @@ trim-newlines@^3.0.0: resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.0.tgz#79726304a6a898aa8373427298d54c2ee8b1cb30" integrity sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA== -trim-trailing-lines@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-1.1.3.tgz#7f0739881ff76657b7776e10874128004b625a94" - integrity sha512-4ku0mmjXifQcTVfYDfR5lpgV7zVqPg6zV9rdZmwOPqq0+Zq19xDqEgagqVbc4pOOShbncuAOIs59R3+3gcF3ZA== - -trim@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" - integrity sha1-WFhUf2spB1fulczMZm+1AITEYN0= - trough@^1.0.0: version "1.0.5" resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" @@ -9654,9 +9594,14 @@ tsconfig-paths@^3.9.0: strip-bom "^3.0.0" tslib@^1.9.0, tslib@^1.9.3: - version "1.13.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" - integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.3.tgz#8e0741ac45fc0c226e58a17bfc3e64b9bc6ca61c" + integrity sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ== tty-browserify@0.0.0: version "0.0.0" @@ -9725,9 +9670,9 @@ typedarray@^0.0.6: integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= ua-parser-js@^0.7.18: - version "0.7.22" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.22.tgz#960df60a5f911ea8f1c818f3747b99c6e177eae3" - integrity sha512-YUxzMjJ5T71w6a8WWVcMGM6YWOTX27rCoIQgLXiWaxqXSx9D7DNjiGWn1aJIRSQ5qr0xuhra77bSIh6voR/46Q== + version "0.7.23" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.23.tgz#704d67f951e13195fbcd3d78818577f5bc1d547b" + integrity sha512-m4hvMLxgGHXG3O3fQVAyyAQpZzDOvwnhOTjYz5Xmr7r/+LpkNy3vJXdVRWgd1TkAb7NGROZuSy96CrlNVjA7KA== unc-path-regex@^0.1.2: version "0.1.2" @@ -9755,14 +9700,6 @@ undertaker@^1.2.1: object.reduce "^1.0.0" undertaker-registry "^1.0.0" -unherit@^1.0.4: - version "1.1.3" - resolved "https://registry.yarnpkg.com/unherit/-/unherit-1.1.3.tgz#6c9b503f2b41b262330c80e91c8614abdaa69c22" - integrity sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ== - dependencies: - inherits "^2.0.0" - xtend "^4.0.0" - unicode-canonical-property-names-ecmascript@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" @@ -9786,7 +9723,7 @@ unicode-property-aliases-ecmascript@^1.0.4: resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== -unified@^9.0.0: +unified@^9.1.0: version "9.2.0" resolved "https://registry.yarnpkg.com/unified/-/unified-9.2.0.tgz#67a62c627c40589edebbf60f53edfd4d822027f8" integrity sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg== @@ -9840,24 +9777,17 @@ unique-stream@^2.0.2: json-stable-stringify-without-jsonify "^1.0.1" through2-filter "^3.0.0" -unist-util-find-all-after@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/unist-util-find-all-after/-/unist-util-find-all-after-3.0.1.tgz#95cc62f48812d879b4685a0512bf1b838da50e9a" - integrity sha512-0GICgc++sRJesLwEYDjFVJPJttBpVQaTNgc6Jw0Jhzvfs+jtKePEMu+uD+PqkRUrAvGQqwhpDwLGWo1PK8PDEw== +unist-util-find-all-after@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/unist-util-find-all-after/-/unist-util-find-all-after-3.0.2.tgz#fdfecd14c5b7aea5e9ef38d5e0d5f774eeb561f6" + integrity sha512-xaTC/AGZ0rIM2gM28YVRAFPIZpzbpDtU3dRmp7EXlNVA8ziQc4hY3H7BHXM1J49nEmiqc3svnqMReW+PGqbZKQ== dependencies: unist-util-is "^4.0.0" unist-util-is@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.0.2.tgz#c7d1341188aa9ce5b3cff538958de9895f14a5de" - integrity sha512-Ofx8uf6haexJwI1gxWMGg6I/dLnF2yE+KibhD3/diOqY2TinLcqHXCV6OI5gFVn3xQqDH+u0M625pfKwIwgBKQ== - -unist-util-remove-position@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz#5d19ca79fdba712301999b2b73553ca8f3b352cc" - integrity sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA== - dependencies: - unist-util-visit "^2.0.0" + version "4.0.4" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.0.4.tgz#3e9e8de6af2eb0039a59f50c9b3e99698a924f50" + integrity sha512-3dF39j/u423v4BBQrk1AQ2Ve1FxY5W3JKwXxVFzBODQ6WEvccguhgp802qQLKSnxPODE6WuRZtV+ohlUg4meBA== unist-util-stringify-position@^2.0.0: version "2.0.3" @@ -9866,23 +9796,6 @@ unist-util-stringify-position@^2.0.0: dependencies: "@types/unist" "^2.0.2" -unist-util-visit-parents@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-3.1.0.tgz#4dd262fb9dcfe44f297d53e882fc6ff3421173d5" - integrity sha512-0g4wbluTF93npyPrp/ymd3tCDTMnP0yo2akFD2FIBAYXq/Sga3lwaU1D8OYKbtpioaI6CkDcQ6fsMnmtzt7htw== - dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^4.0.0" - -unist-util-visit@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-2.0.3.tgz#c3703893146df47203bb8a9795af47d7b971208c" - integrity sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q== - dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^4.0.0" - unist-util-visit-parents "^3.0.0" - unquote@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" @@ -9993,7 +9906,7 @@ util@^0.11.0: dependencies: inherits "2.0.3" -utila@^0.4.0, utila@~0.4: +utila@~0.4: version "0.4.0" resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= @@ -10004,9 +9917,9 @@ uuid@^3.3.2: integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== v8-compile-cache@^2.0.3, v8-compile-cache@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz#54bc3cdd43317bca91e35dcaf305b1a7237de745" - integrity sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ== + version "2.2.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132" + integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q== v8flags@^3.2.0: version "3.2.0" @@ -10047,11 +9960,6 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" -vfile-location@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-3.1.0.tgz#81cd8a04b0ac935185f4fce16f270503fc2f692f" - integrity sha512-FCZ4AN9xMcjFIG1oGmZKo61PjwJHRVA+0/tPUP2ul4uIwjGGndIxavEMRpWn5p4xwm/ZsdXp9YNygf1ZyE4x8g== - vfile-message@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.4.tgz#5b43b88171d409eae58477d13f23dd41d52c371a" @@ -10061,13 +9969,12 @@ vfile-message@^2.0.0: unist-util-stringify-position "^2.0.0" vfile@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.2.0.tgz#26c78ac92eb70816b01d4565e003b7e65a2a0e01" - integrity sha512-a/alcwCvtuc8OX92rqqo7PflxiCgXRFjdyoGVuYV+qbgCb0GgZJRvIgCD4+U/Kl1yhaRsaTwksF88xbPyGsgpw== + version "4.2.1" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.2.1.tgz#03f1dce28fc625c625bc6514350fbdb00fa9e624" + integrity sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA== dependencies: "@types/unist" "^2.0.0" is-buffer "^2.0.0" - replace-ext "1.0.0" unist-util-stringify-position "^2.0.0" vfile-message "^2.0.0" @@ -10173,23 +10080,23 @@ warning@^4.0.2, warning@^4.0.3: dependencies: loose-envify "^1.0.0" -watchpack-chokidar2@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz#9948a1866cbbd6cb824dea13a7ed691f6c8ddff0" - integrity sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA== +watchpack-chokidar2@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" + integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== dependencies: chokidar "^2.1.8" -watchpack@^1.6.0, watchpack@^1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.4.tgz#6e9da53b3c80bb2d6508188f5b200410866cd30b" - integrity sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg== +watchpack@^1.7.4: + version "1.7.5" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" + integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== dependencies: graceful-fs "^4.1.2" neo-async "^2.5.0" optionalDependencies: chokidar "^3.4.1" - watchpack-chokidar2 "^2.0.0" + watchpack-chokidar2 "^2.0.1" weak-napi@^1.0.3: version "1.0.3" @@ -10223,39 +10130,10 @@ webpack-stream@6.1.0: vinyl "^2.1.0" webpack "^4.26.1" -webpack@4.42.1: - version "4.42.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.42.1.tgz#ae707baf091f5ca3ef9c38b884287cfe8f1983ef" - integrity sha512-SGfYMigqEfdGchGhFFJ9KyRpQKnipvEvjc1TwrXEPCM6H5Wywu10ka8o3KGrMzSMxMQKt8aCHUFh5DaQ9UmyRg== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/wasm-edit" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - acorn "^6.2.1" - ajv "^6.10.2" - ajv-keywords "^3.4.1" - chrome-trace-event "^1.0.2" - enhanced-resolve "^4.1.0" - eslint-scope "^4.0.3" - json-parse-better-errors "^1.0.2" - loader-runner "^2.4.0" - loader-utils "^1.2.3" - memory-fs "^0.4.1" - micromatch "^3.1.10" - mkdirp "^0.5.3" - neo-async "^2.6.1" - node-libs-browser "^2.2.1" - schema-utils "^1.0.0" - tapable "^1.1.3" - terser-webpack-plugin "^1.4.3" - watchpack "^1.6.0" - webpack-sources "^1.4.1" - -webpack@^4.26.1: - version "4.44.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.44.1.tgz#17e69fff9f321b8f117d1fda714edfc0b939cc21" - integrity sha512-4UOGAohv/VGUNQJstzEywwNxqX417FnjZgZJpJQegddzPmTvph37eBIRbRTfdySXzVtJXLJfbMN3mMYhM6GdmQ== +webpack@4.44.2, webpack@^4.26.1: + version "4.44.2" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.44.2.tgz#6bfe2b0af055c8b2d1e90ed2cd9363f841266b72" + integrity sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q== dependencies: "@webassemblyjs/ast" "1.9.0" "@webassemblyjs/helper-module-context" "1.9.0" @@ -10296,9 +10174,9 @@ websocket-extensions@>=0.1.1: integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== whatwg-fetch@>=0.10.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.4.0.tgz#e11de14f4878f773fbebcde8871b2c0699af8b30" - integrity sha512-rsum2ulz2iuZH08mJkT0Yi6JnKhwdw4oeyMjokgxd+mmqYSd9cPpOQf01TIWgjxG/U4+QR+AwKq6lSbXVxkyoQ== + version "3.5.0" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.5.0.tgz#605a2cd0a7146e5db141e29d1c62ab84c0c4c868" + integrity sha512-jXkLtsR42xhXg7akoDKvKWE40eJeI+2KZqcp2h3NsOrRnDvtWX36KcKl30dy+hxECivdk2BVUHVNrPtoMBUx6A== which-module@^1.0.0: version "1.0.0" @@ -10390,7 +10268,7 @@ ws@^6.0.0: dependencies: async-limiter "~1.0.0" -xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: +xtend@^4.0.0, xtend@~4.0.0, xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== @@ -10408,15 +10286,20 @@ y18n@^3.2.1: integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= y18n@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" - integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== + version "4.0.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" + integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== yallist@^3.0.2: version "3.1.1" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + yaml@^1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" @@ -10481,3 +10364,8 @@ yargs@^7.1.0: which-module "^1.0.0" y18n "^3.2.1" yargs-parser "5.0.0-security.0" + +zwitch@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-1.0.5.tgz#d11d7381ffed16b742f6af7b3f223d5cd9fe9920" + integrity sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==