├── .editorconfig ├── .gitattributes ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.yml │ ├── config.yml │ └── feature_request.yml ├── PULL_REQUEST_TEMPLATE.md ├── actions │ ├── archive │ │ └── action.yml │ ├── package │ │ ├── action.yml │ │ └── package.sh │ ├── publish-test-artifact │ │ └── action.yml │ └── test │ │ └── action.yml ├── labeler.yml ├── release.yml └── workflows │ ├── api_docs.yml │ ├── build.yml │ ├── deploy.yml │ ├── labeler.yml │ └── lock.yml ├── .gitignore ├── .yarnrc ├── CLA.md ├── CONTRIBUTING.md ├── COPYRIGHT.md ├── FUNDING.yml ├── LICENSE.md ├── Logo ├── 1024.png ├── 128.png ├── 16.png ├── 256.png ├── 32.png ├── 400.png ├── 48.png ├── 512.png ├── 64.png ├── 72.png ├── 800.png ├── 96-Outline-White.png ├── Jetbrains │ ├── dottrace.svg │ ├── jetbrains.svg │ ├── resharper.svg │ └── teamcity.svg ├── Sonarr.svg └── sonarr-simple.svg ├── README.md ├── SECURITY.md ├── build.sh ├── distribution ├── build-package.sh ├── debian │ ├── install.sh │ └── sonarr.service ├── docker-build │ ├── Dockerfile │ └── debian-start.sh ├── macOS │ └── Sonarr.app │ │ └── Contents │ │ ├── Info.plist │ │ └── Resources │ │ └── sonarr.icns └── windows │ └── setup │ ├── build.bat │ ├── inno │ ├── Default.isl │ ├── ISCC.exe │ ├── ISCmplr.dll │ ├── ISPP.dll │ ├── Setup.e32 │ ├── SetupLdr.e32 │ ├── WizModernImage.bmp │ ├── WizModernSmallImage.bmp │ └── islzma.dll │ └── sonarr.iss ├── docker └── tests │ ├── mono │ ├── complete │ │ └── Dockerfile │ ├── sonarr │ │ └── Dockerfile │ └── startup.sh │ └── run-all.sh ├── docs.sh ├── frontend ├── .eslintignore ├── .eslintrc.js ├── .prettierignore ├── .prettierrc.json ├── .stylelintrc ├── .tern-project ├── .vscode │ ├── extensions.json │ └── settings.json ├── babel.config.js ├── build │ ├── webpack.config.js │ └── webpack │ │ └── css-variables-loader.js ├── postcss.config.js ├── src │ ├── Activity │ │ ├── Blocklist │ │ │ ├── Blocklist.js │ │ │ ├── BlocklistConnector.js │ │ │ ├── BlocklistDetailsModal.js │ │ │ ├── BlocklistRow.css │ │ │ ├── BlocklistRow.css.d.ts │ │ │ ├── BlocklistRow.js │ │ │ └── BlocklistRowConnector.js │ │ ├── History │ │ │ ├── Details │ │ │ │ ├── HistoryDetails.css │ │ │ │ ├── HistoryDetails.css.d.ts │ │ │ │ ├── HistoryDetails.js │ │ │ │ ├── HistoryDetailsConnector.js │ │ │ │ ├── HistoryDetailsModal.css │ │ │ │ ├── HistoryDetailsModal.css.d.ts │ │ │ │ └── HistoryDetailsModal.js │ │ │ ├── History.js │ │ │ ├── HistoryConnector.js │ │ │ ├── HistoryEventTypeCell.css │ │ │ ├── HistoryEventTypeCell.css.d.ts │ │ │ ├── HistoryEventTypeCell.js │ │ │ ├── HistoryFilterModal.tsx │ │ │ ├── HistoryRow.css │ │ │ ├── HistoryRow.css.d.ts │ │ │ ├── HistoryRow.js │ │ │ └── HistoryRowConnector.js │ │ └── Queue │ │ │ ├── ProtocolLabel.css │ │ │ ├── ProtocolLabel.css.d.ts │ │ │ ├── ProtocolLabel.js │ │ │ ├── Queue.js │ │ │ ├── QueueConnector.js │ │ │ ├── QueueDetails.css │ │ │ ├── QueueDetails.css.d.ts │ │ │ ├── QueueDetails.js │ │ │ ├── QueueFilterModal.tsx │ │ │ ├── QueueOptions.js │ │ │ ├── QueueOptionsConnector.js │ │ │ ├── QueueRow.css │ │ │ ├── QueueRow.css.d.ts │ │ │ ├── QueueRow.js │ │ │ ├── QueueRowConnector.js │ │ │ ├── QueueStatus.css │ │ │ ├── QueueStatus.css.d.ts │ │ │ ├── QueueStatus.js │ │ │ ├── QueueStatusCell.css │ │ │ ├── QueueStatusCell.css.d.ts │ │ │ ├── QueueStatusCell.js │ │ │ ├── RemoveQueueItemModal.css │ │ │ ├── RemoveQueueItemModal.css.d.ts │ │ │ ├── RemoveQueueItemModal.tsx │ │ │ ├── Status │ │ │ └── QueueStatusConnector.js │ │ │ ├── TimeleftCell.css │ │ │ ├── TimeleftCell.css.d.ts │ │ │ └── TimeleftCell.js │ ├── AddSeries │ │ ├── AddNewSeries │ │ │ ├── AddNewSeries.css │ │ │ ├── AddNewSeries.css.d.ts │ │ │ ├── AddNewSeries.js │ │ │ ├── AddNewSeriesConnector.js │ │ │ ├── AddNewSeriesModal.js │ │ │ ├── AddNewSeriesModalContent.css │ │ │ ├── AddNewSeriesModalContent.css.d.ts │ │ │ ├── AddNewSeriesModalContent.js │ │ │ ├── AddNewSeriesModalContentConnector.js │ │ │ ├── AddNewSeriesSearchResult.css │ │ │ ├── AddNewSeriesSearchResult.css.d.ts │ │ │ ├── AddNewSeriesSearchResult.js │ │ │ └── AddNewSeriesSearchResultConnector.js │ │ ├── ImportSeries │ │ │ ├── Import │ │ │ │ ├── ImportSeries.js │ │ │ │ ├── ImportSeriesConnector.js │ │ │ │ ├── ImportSeriesFooter.css │ │ │ │ ├── ImportSeriesFooter.css.d.ts │ │ │ │ ├── ImportSeriesFooter.js │ │ │ │ ├── ImportSeriesFooterConnector.js │ │ │ │ ├── ImportSeriesHeader.css │ │ │ │ ├── ImportSeriesHeader.css.d.ts │ │ │ │ ├── ImportSeriesHeader.js │ │ │ │ ├── ImportSeriesRow.css │ │ │ │ ├── ImportSeriesRow.css.d.ts │ │ │ │ ├── ImportSeriesRow.js │ │ │ │ ├── ImportSeriesRowConnector.js │ │ │ │ ├── ImportSeriesSelected.css │ │ │ │ ├── ImportSeriesTable.js │ │ │ │ ├── ImportSeriesTableConnector.js │ │ │ │ └── SelectSeries │ │ │ │ │ ├── ImportSeriesSearchResult.css │ │ │ │ │ ├── ImportSeriesSearchResult.css.d.ts │ │ │ │ │ ├── ImportSeriesSearchResult.js │ │ │ │ │ ├── ImportSeriesSearchResultConnector.js │ │ │ │ │ ├── ImportSeriesSelectSeries.css │ │ │ │ │ ├── ImportSeriesSelectSeries.css.d.ts │ │ │ │ │ ├── ImportSeriesSelectSeries.js │ │ │ │ │ ├── ImportSeriesSelectSeriesConnector.js │ │ │ │ │ ├── ImportSeriesTitle.css │ │ │ │ │ ├── ImportSeriesTitle.css.d.ts │ │ │ │ │ └── ImportSeriesTitle.js │ │ │ ├── ImportSeries.js │ │ │ └── SelectFolder │ │ │ │ ├── ImportSeriesSelectFolder.css │ │ │ │ ├── ImportSeriesSelectFolder.css.d.ts │ │ │ │ ├── ImportSeriesSelectFolder.js │ │ │ │ └── ImportSeriesSelectFolderConnector.js │ │ ├── SeriesMonitorNewItemsOptionsPopoverContent.js │ │ ├── SeriesMonitoringOptionsPopoverContent.js │ │ └── SeriesTypePopoverContent.js │ ├── App │ │ ├── App.js │ │ ├── AppRoutes.js │ │ ├── AppUpdatedModal.js │ │ ├── AppUpdatedModalConnector.js │ │ ├── AppUpdatedModalContent.css │ │ ├── AppUpdatedModalContent.css.d.ts │ │ ├── AppUpdatedModalContent.js │ │ ├── AppUpdatedModalContentConnector.js │ │ ├── ApplyTheme.js │ │ ├── ColorImpairedContext.js │ │ ├── ConnectionLostModal.css │ │ ├── ConnectionLostModal.css.d.ts │ │ ├── ConnectionLostModal.js │ │ ├── ConnectionLostModalConnector.js │ │ ├── ModelBase.ts │ │ ├── SelectContext.tsx │ │ └── State │ │ │ ├── AppSectionState.ts │ │ │ ├── AppState.ts │ │ │ ├── CalendarAppState.ts │ │ │ ├── ClientSideCollectionAppState.ts │ │ │ ├── CommandAppState.ts │ │ │ ├── CustomFiltersAppState.ts │ │ │ ├── EpisodeFilesAppState.ts │ │ │ ├── EpisodesAppState.ts │ │ │ ├── HistoryAppState.ts │ │ │ ├── InteractiveImportAppState.ts │ │ │ ├── ParseAppState.ts │ │ │ ├── QueueAppState.ts │ │ │ ├── RootFolderAppState.ts │ │ │ ├── SeriesAppState.ts │ │ │ ├── SettingsAppState.ts │ │ │ ├── SystemAppState.ts │ │ │ └── TagsAppState.ts │ ├── Calendar │ │ ├── Agenda │ │ │ ├── Agenda.css │ │ │ ├── Agenda.css.d.ts │ │ │ ├── Agenda.js │ │ │ ├── AgendaConnector.js │ │ │ ├── AgendaEvent.css │ │ │ ├── AgendaEvent.css.d.ts │ │ │ ├── AgendaEvent.js │ │ │ └── AgendaEventConnector.js │ │ ├── Calendar.css │ │ ├── Calendar.css.d.ts │ │ ├── Calendar.js │ │ ├── CalendarConnector.js │ │ ├── CalendarFilterModal.tsx │ │ ├── CalendarPage.css │ │ ├── CalendarPage.css.d.ts │ │ ├── CalendarPage.js │ │ ├── CalendarPageConnector.js │ │ ├── Day │ │ │ ├── CalendarDay.css │ │ │ ├── CalendarDay.css.d.ts │ │ │ ├── CalendarDay.tsx │ │ │ ├── CalendarDayConnector.js │ │ │ ├── CalendarDays.css │ │ │ ├── CalendarDays.css.d.ts │ │ │ ├── CalendarDays.js │ │ │ ├── CalendarDaysConnector.js │ │ │ ├── DayOfWeek.css │ │ │ ├── DayOfWeek.css.d.ts │ │ │ ├── DayOfWeek.js │ │ │ ├── DaysOfWeek.css │ │ │ ├── DaysOfWeek.css.d.ts │ │ │ ├── DaysOfWeek.js │ │ │ └── DaysOfWeekConnector.js │ │ ├── Events │ │ │ ├── CalendarEvent.css │ │ │ ├── CalendarEvent.css.d.ts │ │ │ ├── CalendarEvent.js │ │ │ ├── CalendarEventConnector.js │ │ │ ├── CalendarEventGroup.css │ │ │ ├── CalendarEventGroup.css.d.ts │ │ │ ├── CalendarEventGroup.js │ │ │ ├── CalendarEventGroupConnector.js │ │ │ └── CalendarEventQueueDetails.js │ │ ├── Header │ │ │ ├── CalendarHeader.css │ │ │ ├── CalendarHeader.css.d.ts │ │ │ ├── CalendarHeader.js │ │ │ ├── CalendarHeaderConnector.js │ │ │ └── CalendarHeaderViewButton.js │ │ ├── Legend │ │ │ ├── Legend.css │ │ │ ├── Legend.css.d.ts │ │ │ ├── Legend.js │ │ │ ├── LegendConnector.js │ │ │ ├── LegendIconItem.css │ │ │ ├── LegendIconItem.css.d.ts │ │ │ ├── LegendIconItem.js │ │ │ ├── LegendItem.css │ │ │ ├── LegendItem.css.d.ts │ │ │ └── LegendItem.js │ │ ├── Options │ │ │ ├── CalendarOptionsModal.js │ │ │ ├── CalendarOptionsModalContent.js │ │ │ └── CalendarOptionsModalContentConnector.js │ │ ├── calendarViews.js │ │ ├── getStatusStyle.js │ │ └── iCal │ │ │ ├── CalendarLinkModal.js │ │ │ ├── CalendarLinkModalContent.js │ │ │ └── CalendarLinkModalContentConnector.js │ ├── Commands │ │ ├── Command.ts │ │ └── commandNames.js │ ├── Components │ │ ├── Alert.css │ │ ├── Alert.css.d.ts │ │ ├── Alert.js │ │ ├── Card.css │ │ ├── Card.css.d.ts │ │ ├── Card.js │ │ ├── CircularProgressBar.css │ │ ├── CircularProgressBar.css.d.ts │ │ ├── CircularProgressBar.js │ │ ├── DescriptionList │ │ │ ├── DescriptionList.css │ │ │ ├── DescriptionList.css.d.ts │ │ │ ├── DescriptionList.js │ │ │ ├── DescriptionListItem.js │ │ │ ├── DescriptionListItemDescription.css │ │ │ ├── DescriptionListItemDescription.css.d.ts │ │ │ ├── DescriptionListItemDescription.js │ │ │ ├── DescriptionListItemTitle.css │ │ │ ├── DescriptionListItemTitle.css.d.ts │ │ │ └── DescriptionListItemTitle.js │ │ ├── DragPreviewLayer.css │ │ ├── DragPreviewLayer.css.d.ts │ │ ├── DragPreviewLayer.js │ │ ├── Error │ │ │ ├── ErrorBoundary.js │ │ │ ├── ErrorBoundaryError.css │ │ │ ├── ErrorBoundaryError.css.d.ts │ │ │ └── ErrorBoundaryError.tsx │ │ ├── FieldSet.css │ │ ├── FieldSet.css.d.ts │ │ ├── FieldSet.js │ │ ├── FileBrowser │ │ │ ├── FileBrowserModal.css │ │ │ ├── FileBrowserModal.css.d.ts │ │ │ ├── FileBrowserModal.js │ │ │ ├── FileBrowserModalContent.css │ │ │ ├── FileBrowserModalContent.css.d.ts │ │ │ ├── FileBrowserModalContent.js │ │ │ ├── FileBrowserModalContentConnector.js │ │ │ ├── FileBrowserRow.css │ │ │ ├── FileBrowserRow.css.d.ts │ │ │ └── FileBrowserRow.js │ │ ├── Filter │ │ │ ├── Builder │ │ │ │ ├── BoolFilterBuilderRowValue.js │ │ │ │ ├── DateFilterBuilderRowValue.css │ │ │ │ ├── DateFilterBuilderRowValue.css.d.ts │ │ │ │ ├── DateFilterBuilderRowValue.js │ │ │ │ ├── FilterBuilderModalContent.css │ │ │ │ ├── FilterBuilderModalContent.css.d.ts │ │ │ │ ├── FilterBuilderModalContent.js │ │ │ │ ├── FilterBuilderModalContentConnector.js │ │ │ │ ├── FilterBuilderRow.css │ │ │ │ ├── FilterBuilderRow.css.d.ts │ │ │ │ ├── FilterBuilderRow.js │ │ │ │ ├── FilterBuilderRowValue.js │ │ │ │ ├── FilterBuilderRowValueConnector.js │ │ │ │ ├── FilterBuilderRowValueProps.ts │ │ │ │ ├── FilterBuilderRowValueTag.css │ │ │ │ ├── FilterBuilderRowValueTag.css.d.ts │ │ │ │ ├── FilterBuilderRowValueTag.js │ │ │ │ ├── HistoryEventTypeFilterBuilderRowValue.tsx │ │ │ │ ├── IndexerFilterBuilderRowValueConnector.js │ │ │ │ ├── LanguageFilterBuilderRowValue.tsx │ │ │ │ ├── ProtocolFilterBuilderRowValue.js │ │ │ │ ├── QualityFilterBuilderRowValueConnector.js │ │ │ │ ├── QualityProfileFilterBuilderRowValueConnector.js │ │ │ │ ├── SeriesFilterBuilderRowValue.tsx │ │ │ │ ├── SeriesStatusFilterBuilderRowValue.js │ │ │ │ ├── SeriesTypeFilterBuilderRowValue.js │ │ │ │ └── TagFilterBuilderRowValueConnector.js │ │ │ ├── CustomFilters │ │ │ │ ├── CustomFilter.css │ │ │ │ ├── CustomFilter.css.d.ts │ │ │ │ ├── CustomFilter.js │ │ │ │ ├── CustomFiltersModalContent.css │ │ │ │ ├── CustomFiltersModalContent.css.d.ts │ │ │ │ ├── CustomFiltersModalContent.js │ │ │ │ └── CustomFiltersModalContentConnector.js │ │ │ └── FilterModal.js │ │ ├── Form │ │ │ ├── AutoCompleteInput.js │ │ │ ├── AutoSuggestInput.css │ │ │ ├── AutoSuggestInput.css.d.ts │ │ │ ├── AutoSuggestInput.js │ │ │ ├── CaptchaInput.css │ │ │ ├── CaptchaInput.css.d.ts │ │ │ ├── CaptchaInput.js │ │ │ ├── CaptchaInputConnector.js │ │ │ ├── CheckInput.css │ │ │ ├── CheckInput.css.d.ts │ │ │ ├── CheckInput.js │ │ │ ├── DeviceInput.css │ │ │ ├── DeviceInput.css.d.ts │ │ │ ├── DeviceInput.js │ │ │ ├── DeviceInputConnector.js │ │ │ ├── DownloadClientSelectInputConnector.js │ │ │ ├── EnhancedSelectInput.css │ │ │ ├── EnhancedSelectInput.css.d.ts │ │ │ ├── EnhancedSelectInput.js │ │ │ ├── EnhancedSelectInputConnector.js │ │ │ ├── EnhancedSelectInputOption.css │ │ │ ├── EnhancedSelectInputOption.css.d.ts │ │ │ ├── EnhancedSelectInputOption.js │ │ │ ├── EnhancedSelectInputSelectedValue.css │ │ │ ├── EnhancedSelectInputSelectedValue.css.d.ts │ │ │ ├── EnhancedSelectInputSelectedValue.js │ │ │ ├── Form.css │ │ │ ├── Form.css.d.ts │ │ │ ├── Form.js │ │ │ ├── FormGroup.css │ │ │ ├── FormGroup.css.d.ts │ │ │ ├── FormGroup.js │ │ │ ├── FormInputButton.css │ │ │ ├── FormInputButton.css.d.ts │ │ │ ├── FormInputButton.js │ │ │ ├── FormInputGroup.css │ │ │ ├── FormInputGroup.css.d.ts │ │ │ ├── FormInputGroup.js │ │ │ ├── FormInputHelpText.css │ │ │ ├── FormInputHelpText.css.d.ts │ │ │ ├── FormInputHelpText.js │ │ │ ├── FormLabel.css │ │ │ ├── FormLabel.css.d.ts │ │ │ ├── FormLabel.js │ │ │ ├── HintedSelectInputOption.css │ │ │ ├── HintedSelectInputOption.css.d.ts │ │ │ ├── HintedSelectInputOption.js │ │ │ ├── HintedSelectInputSelectedValue.css │ │ │ ├── HintedSelectInputSelectedValue.css.d.ts │ │ │ ├── HintedSelectInputSelectedValue.js │ │ │ ├── IndexerFlagsSelectInput.tsx │ │ │ ├── IndexerSelectInputConnector.js │ │ │ ├── Input.css │ │ │ ├── KeyValueListInput.css │ │ │ ├── KeyValueListInput.css.d.ts │ │ │ ├── KeyValueListInput.js │ │ │ ├── KeyValueListInputItem.css │ │ │ ├── KeyValueListInputItem.css.d.ts │ │ │ ├── KeyValueListInputItem.js │ │ │ ├── LanguageSelectInputConnector.js │ │ │ ├── MonitorEpisodesSelectInput.js │ │ │ ├── MonitorNewItemsSelectInput.js │ │ │ ├── NumberInput.js │ │ │ ├── OAuthInput.js │ │ │ ├── OAuthInputConnector.js │ │ │ ├── PasswordInput.css │ │ │ ├── PasswordInput.css.d.ts │ │ │ ├── PasswordInput.js │ │ │ ├── PathInput.css │ │ │ ├── PathInput.css.d.ts │ │ │ ├── PathInput.js │ │ │ ├── PathInputConnector.js │ │ │ ├── ProviderFieldFormGroup.js │ │ │ ├── QualityProfileSelectInputConnector.js │ │ │ ├── RootFolderSelectInput.js │ │ │ ├── RootFolderSelectInputConnector.js │ │ │ ├── RootFolderSelectInputOption.css │ │ │ ├── RootFolderSelectInputOption.css.d.ts │ │ │ ├── RootFolderSelectInputOption.js │ │ │ ├── RootFolderSelectInputSelectedValue.css │ │ │ ├── RootFolderSelectInputSelectedValue.css.d.ts │ │ │ ├── RootFolderSelectInputSelectedValue.js │ │ │ ├── SelectInput.css │ │ │ ├── SelectInput.css.d.ts │ │ │ ├── SelectInput.js │ │ │ ├── SeriesTypeSelectInput.tsx │ │ │ ├── SeriesTypeSelectInputOption.css │ │ │ ├── SeriesTypeSelectInputOption.css.d.ts │ │ │ ├── SeriesTypeSelectInputOption.tsx │ │ │ ├── SeriesTypeSelectInputSelectedValue.css │ │ │ ├── SeriesTypeSelectInputSelectedValue.css.d.ts │ │ │ ├── SeriesTypeSelectInputSelectedValue.tsx │ │ │ ├── TagInput.css │ │ │ ├── TagInput.css.d.ts │ │ │ ├── TagInput.js │ │ │ ├── TagInputConnector.js │ │ │ ├── TagInputInput.css │ │ │ ├── TagInputInput.css.d.ts │ │ │ ├── TagInputInput.js │ │ │ ├── TagInputTag.css │ │ │ ├── TagInputTag.css.d.ts │ │ │ ├── TagInputTag.js │ │ │ ├── TagSelectInputConnector.js │ │ │ ├── TextArea.css │ │ │ ├── TextArea.css.d.ts │ │ │ ├── TextArea.js │ │ │ ├── TextInput.css │ │ │ ├── TextInput.css.d.ts │ │ │ ├── TextInput.js │ │ │ ├── TextTagInputConnector.js │ │ │ ├── UMaskInput.css │ │ │ ├── UMaskInput.css.d.ts │ │ │ └── UMaskInput.js │ │ ├── HeartRating.css │ │ ├── HeartRating.css.d.ts │ │ ├── HeartRating.js │ │ ├── Icon.css │ │ ├── Icon.css.d.ts │ │ ├── Icon.js │ │ ├── Label.css │ │ ├── Label.css.d.ts │ │ ├── Label.js │ │ ├── Link │ │ │ ├── Button.css │ │ │ ├── Button.css.d.ts │ │ │ ├── Button.js │ │ │ ├── ClipboardButton.css │ │ │ ├── ClipboardButton.css.d.ts │ │ │ ├── ClipboardButton.js │ │ │ ├── IconButton.css │ │ │ ├── IconButton.css.d.ts │ │ │ ├── IconButton.js │ │ │ ├── Link.css │ │ │ ├── Link.css.d.ts │ │ │ ├── Link.tsx │ │ │ ├── SpinnerButton.css │ │ │ ├── SpinnerButton.css.d.ts │ │ │ ├── SpinnerButton.js │ │ │ ├── SpinnerErrorButton.css │ │ │ ├── SpinnerErrorButton.css.d.ts │ │ │ ├── SpinnerErrorButton.js │ │ │ └── SpinnerIconButton.js │ │ ├── Loading │ │ │ ├── LoadingIndicator.css │ │ │ ├── LoadingIndicator.css.d.ts │ │ │ ├── LoadingIndicator.js │ │ │ ├── LoadingMessage.css │ │ │ ├── LoadingMessage.css.d.ts │ │ │ └── LoadingMessage.js │ │ ├── Markdown │ │ │ └── InlineMarkdown.js │ │ ├── Measure.js │ │ ├── Menu │ │ │ ├── FilterMenu.css │ │ │ ├── FilterMenu.css.d.ts │ │ │ ├── FilterMenu.js │ │ │ ├── FilterMenuContent.js │ │ │ ├── FilterMenuItem.js │ │ │ ├── Menu.css │ │ │ ├── Menu.css.d.ts │ │ │ ├── Menu.js │ │ │ ├── MenuButton.css │ │ │ ├── MenuButton.css.d.ts │ │ │ ├── MenuButton.js │ │ │ ├── MenuContent.css │ │ │ ├── MenuContent.css.d.ts │ │ │ ├── MenuContent.js │ │ │ ├── MenuItem.css │ │ │ ├── MenuItem.css.d.ts │ │ │ ├── MenuItem.js │ │ │ ├── MenuItemSeparator.css │ │ │ ├── MenuItemSeparator.css.d.ts │ │ │ ├── MenuItemSeparator.js │ │ │ ├── PageMenuButton.css │ │ │ ├── PageMenuButton.css.d.ts │ │ │ ├── PageMenuButton.js │ │ │ ├── SelectedMenuItem.css │ │ │ ├── SelectedMenuItem.css.d.ts │ │ │ ├── SelectedMenuItem.js │ │ │ ├── SortMenu.js │ │ │ ├── SortMenuItem.js │ │ │ ├── ToolbarMenuButton.css │ │ │ ├── ToolbarMenuButton.css.d.ts │ │ │ ├── ToolbarMenuButton.js │ │ │ ├── ViewMenu.js │ │ │ └── ViewMenuItem.js │ │ ├── MetadataAttribution.css │ │ ├── MetadataAttribution.css.d.ts │ │ ├── MetadataAttribution.js │ │ ├── Modal │ │ │ ├── ConfirmModal.js │ │ │ ├── Modal.css │ │ │ ├── Modal.css.d.ts │ │ │ ├── Modal.js │ │ │ ├── ModalBody.css │ │ │ ├── ModalBody.css.d.ts │ │ │ ├── ModalBody.js │ │ │ ├── ModalContent.css │ │ │ ├── ModalContent.css.d.ts │ │ │ ├── ModalContent.js │ │ │ ├── ModalError.css │ │ │ ├── ModalError.css.d.ts │ │ │ ├── ModalError.js │ │ │ ├── ModalFooter.css │ │ │ ├── ModalFooter.css.d.ts │ │ │ ├── ModalFooter.js │ │ │ ├── ModalHeader.css │ │ │ ├── ModalHeader.css.d.ts │ │ │ └── ModalHeader.js │ │ ├── MonitorToggleButton.css │ │ ├── MonitorToggleButton.css.d.ts │ │ ├── MonitorToggleButton.js │ │ ├── NotFound.css │ │ ├── NotFound.css.d.ts │ │ ├── NotFound.js │ │ ├── Page │ │ │ ├── ErrorPage.css │ │ │ ├── ErrorPage.css.d.ts │ │ │ ├── ErrorPage.js │ │ │ ├── Header │ │ │ │ ├── KeyboardShortcutsModal.js │ │ │ │ ├── KeyboardShortcutsModalContent.css │ │ │ │ ├── KeyboardShortcutsModalContent.css.d.ts │ │ │ │ ├── KeyboardShortcutsModalContent.js │ │ │ │ ├── KeyboardShortcutsModalContentConnector.js │ │ │ │ ├── PageHeader.css │ │ │ │ ├── PageHeader.css.d.ts │ │ │ │ ├── PageHeader.js │ │ │ │ ├── PageHeaderActionsMenu.css │ │ │ │ ├── PageHeaderActionsMenu.css.d.ts │ │ │ │ ├── PageHeaderActionsMenu.js │ │ │ │ ├── PageHeaderActionsMenuConnector.js │ │ │ │ ├── SeriesSearchInput.css │ │ │ │ ├── SeriesSearchInput.css.d.ts │ │ │ │ ├── SeriesSearchInput.js │ │ │ │ ├── SeriesSearchInputConnector.js │ │ │ │ ├── SeriesSearchResult.css │ │ │ │ ├── SeriesSearchResult.css.d.ts │ │ │ │ ├── SeriesSearchResult.js │ │ │ │ └── fuse.worker.js │ │ │ ├── LoadingPage.css │ │ │ ├── LoadingPage.css.d.ts │ │ │ ├── LoadingPage.js │ │ │ ├── Page.css │ │ │ ├── Page.css.d.ts │ │ │ ├── Page.js │ │ │ ├── PageConnector.js │ │ │ ├── PageContent.css │ │ │ ├── PageContent.css.d.ts │ │ │ ├── PageContent.js │ │ │ ├── PageContentBody.css │ │ │ ├── PageContentBody.css.d.ts │ │ │ ├── PageContentBody.tsx │ │ │ ├── PageContentError.css │ │ │ ├── PageContentError.css.d.ts │ │ │ ├── PageContentError.js │ │ │ ├── PageContentFooter.css │ │ │ ├── PageContentFooter.css.d.ts │ │ │ ├── PageContentFooter.js │ │ │ ├── PageJumpBar.css │ │ │ ├── PageJumpBar.css.d.ts │ │ │ ├── PageJumpBar.js │ │ │ ├── PageJumpBarItem.css │ │ │ ├── PageJumpBarItem.css.d.ts │ │ │ ├── PageJumpBarItem.js │ │ │ ├── PageSectionContent.js │ │ │ ├── Sidebar │ │ │ │ ├── Messages │ │ │ │ │ ├── Message.css │ │ │ │ │ ├── Message.css.d.ts │ │ │ │ │ ├── Message.js │ │ │ │ │ ├── MessageConnector.js │ │ │ │ │ ├── Messages.css │ │ │ │ │ ├── Messages.css.d.ts │ │ │ │ │ ├── Messages.js │ │ │ │ │ └── MessagesConnector.js │ │ │ │ ├── PageSidebar.css │ │ │ │ ├── PageSidebar.css.d.ts │ │ │ │ ├── PageSidebar.js │ │ │ │ ├── PageSidebarItem.css │ │ │ │ ├── PageSidebarItem.css.d.ts │ │ │ │ ├── PageSidebarItem.js │ │ │ │ ├── PageSidebarStatus.css │ │ │ │ └── PageSidebarStatus.js │ │ │ └── Toolbar │ │ │ │ ├── PageToolbar.css │ │ │ │ ├── PageToolbar.css.d.ts │ │ │ │ ├── PageToolbar.js │ │ │ │ ├── PageToolbarButton.css │ │ │ │ ├── PageToolbarButton.css.d.ts │ │ │ │ ├── PageToolbarButton.js │ │ │ │ ├── PageToolbarOverflowMenuItem.css │ │ │ │ ├── PageToolbarOverflowMenuItem.css.d.ts │ │ │ │ ├── PageToolbarOverflowMenuItem.tsx │ │ │ │ ├── PageToolbarSection.css │ │ │ │ ├── PageToolbarSection.css.d.ts │ │ │ │ ├── PageToolbarSection.js │ │ │ │ ├── PageToolbarSeparator.css │ │ │ │ ├── PageToolbarSeparator.css.d.ts │ │ │ │ └── PageToolbarSeparator.js │ │ ├── Portal.js │ │ ├── ProgressBar.css │ │ ├── ProgressBar.css.d.ts │ │ ├── ProgressBar.js │ │ ├── Router │ │ │ └── Switch.js │ │ ├── Scroller │ │ │ ├── OverlayScroller.css │ │ │ ├── OverlayScroller.css.d.ts │ │ │ ├── OverlayScroller.js │ │ │ ├── Scroller.css │ │ │ ├── Scroller.css.d.ts │ │ │ └── Scroller.tsx │ │ ├── SignalRConnector.js │ │ ├── SpinnerIcon.js │ │ ├── Table │ │ │ ├── Cells │ │ │ │ ├── RelativeDateCell.css │ │ │ │ ├── RelativeDateCell.css.d.ts │ │ │ │ ├── RelativeDateCell.js │ │ │ │ ├── RelativeDateCellConnector.js │ │ │ │ ├── TableRowCell.css │ │ │ │ ├── TableRowCell.css.d.ts │ │ │ │ ├── TableRowCell.js │ │ │ │ ├── TableRowCellButton.css │ │ │ │ ├── TableRowCellButton.css.d.ts │ │ │ │ ├── TableRowCellButton.tsx │ │ │ │ ├── TableSelectCell.css │ │ │ │ ├── TableSelectCell.css.d.ts │ │ │ │ ├── TableSelectCell.js │ │ │ │ ├── VirtualTableRowCell.css │ │ │ │ ├── VirtualTableRowCell.css.d.ts │ │ │ │ ├── VirtualTableRowCell.js │ │ │ │ ├── VirtualTableSelectCell.css │ │ │ │ ├── VirtualTableSelectCell.css.d.ts │ │ │ │ └── VirtualTableSelectCell.js │ │ │ ├── Column.ts │ │ │ ├── Table.css │ │ │ ├── Table.css.d.ts │ │ │ ├── Table.js │ │ │ ├── TableBody.js │ │ │ ├── TableHeader.js │ │ │ ├── TableHeaderCell.css │ │ │ ├── TableHeaderCell.css.d.ts │ │ │ ├── TableHeaderCell.js │ │ │ ├── TableOptions │ │ │ │ ├── TableOptionsColumn.css │ │ │ │ ├── TableOptionsColumn.css.d.ts │ │ │ │ ├── TableOptionsColumn.js │ │ │ │ ├── TableOptionsColumnDragPreview.css │ │ │ │ ├── TableOptionsColumnDragPreview.css.d.ts │ │ │ │ ├── TableOptionsColumnDragPreview.js │ │ │ │ ├── TableOptionsColumnDragSource.css │ │ │ │ ├── TableOptionsColumnDragSource.css.d.ts │ │ │ │ ├── TableOptionsColumnDragSource.js │ │ │ │ ├── TableOptionsModal.css │ │ │ │ ├── TableOptionsModal.css.d.ts │ │ │ │ ├── TableOptionsModal.js │ │ │ │ └── TableOptionsModalWrapper.js │ │ │ ├── TablePager.css │ │ │ ├── TablePager.css.d.ts │ │ │ ├── TablePager.js │ │ │ ├── TableRow.css │ │ │ ├── TableRow.css.d.ts │ │ │ ├── TableRow.js │ │ │ ├── TableRowButton.css │ │ │ ├── TableRowButton.css.d.ts │ │ │ ├── TableRowButton.js │ │ │ ├── TableSelectAllHeaderCell.css │ │ │ ├── TableSelectAllHeaderCell.css.d.ts │ │ │ ├── TableSelectAllHeaderCell.js │ │ │ ├── VirtualTable.css │ │ │ ├── VirtualTable.css.d.ts │ │ │ ├── VirtualTable.js │ │ │ ├── VirtualTableHeader.css │ │ │ ├── VirtualTableHeader.css.d.ts │ │ │ ├── VirtualTableHeader.js │ │ │ ├── VirtualTableHeaderCell.css │ │ │ ├── VirtualTableHeaderCell.css.d.ts │ │ │ ├── VirtualTableHeaderCell.js │ │ │ ├── VirtualTableRow.css │ │ │ ├── VirtualTableRow.css.d.ts │ │ │ ├── VirtualTableRow.js │ │ │ ├── VirtualTableRowButton.css │ │ │ ├── VirtualTableRowButton.css.d.ts │ │ │ ├── VirtualTableRowButton.js │ │ │ ├── VirtualTableSelectAllHeaderCell.css │ │ │ ├── VirtualTableSelectAllHeaderCell.css.d.ts │ │ │ └── VirtualTableSelectAllHeaderCell.js │ │ ├── TagList.css │ │ ├── TagList.css.d.ts │ │ ├── TagList.js │ │ ├── TagListConnector.js │ │ ├── Tooltip │ │ │ ├── Popover.css │ │ │ ├── Popover.css.d.ts │ │ │ ├── Popover.js │ │ │ ├── Tooltip.css │ │ │ ├── Tooltip.css.d.ts │ │ │ └── Tooltip.js │ │ ├── keyboardShortcuts.js │ │ ├── withCurrentPage.js │ │ └── withScrollPosition.tsx │ ├── Content │ │ ├── Fonts │ │ │ ├── Roboto-Light.ttf │ │ │ ├── Roboto-Light.woff │ │ │ ├── Roboto-Light.woff2 │ │ │ ├── Roboto-Regular.ttf │ │ │ ├── Roboto-Regular.woff │ │ │ ├── Roboto-Regular.woff2 │ │ │ ├── UbuntuMono-Regular.eot │ │ │ ├── UbuntuMono-Regular.ttf │ │ │ ├── UbuntuMono-Regular.woff │ │ │ ├── fonts.css │ │ │ ├── text-security-disc.ttf │ │ │ └── text-security-disc.woff │ │ ├── Images │ │ │ ├── 404.png │ │ │ ├── Icons │ │ │ │ ├── android-chrome-192x192.png │ │ │ │ ├── android-chrome-512x512.png │ │ │ │ ├── apple-touch-icon.png │ │ │ │ ├── browserconfig.xml │ │ │ │ ├── favicon-16x16.png │ │ │ │ ├── favicon-32x32.png │ │ │ │ ├── favicon-debug-16x16.png │ │ │ │ ├── favicon-debug-32x32.png │ │ │ │ ├── favicon-debug.ico │ │ │ │ ├── favicon.ico │ │ │ │ ├── manifest.json │ │ │ │ ├── mstile-144x144.png │ │ │ │ ├── mstile-150x150.png │ │ │ │ ├── mstile-310x150.png │ │ │ │ ├── mstile-310x310.png │ │ │ │ ├── mstile-70x70.png │ │ │ │ └── safari-pinned-tab.svg │ │ │ ├── error.png │ │ │ ├── logo.svg │ │ │ ├── poster-dark.png │ │ │ └── thetvdb.png │ │ └── robots.txt │ ├── Diag │ │ └── ConsoleApi.js │ ├── DownloadClient │ │ └── DownloadProtocol.ts │ ├── Episode │ │ ├── Episode.ts │ │ ├── EpisodeDetailsModal.js │ │ ├── EpisodeDetailsModalContent.css │ │ ├── EpisodeDetailsModalContent.css.d.ts │ │ ├── EpisodeDetailsModalContent.js │ │ ├── EpisodeDetailsModalContentConnector.js │ │ ├── EpisodeFormats.js │ │ ├── EpisodeLanguages.js │ │ ├── EpisodeNumber.css │ │ ├── EpisodeNumber.css.d.ts │ │ ├── EpisodeNumber.js │ │ ├── EpisodeQuality.js │ │ ├── EpisodeSearchCell.css │ │ ├── EpisodeSearchCell.css.d.ts │ │ ├── EpisodeSearchCell.js │ │ ├── EpisodeSearchCellConnector.js │ │ ├── EpisodeStatus.css │ │ ├── EpisodeStatus.css.d.ts │ │ ├── EpisodeStatus.js │ │ ├── EpisodeStatusConnector.js │ │ ├── EpisodeTitleLink.css │ │ ├── EpisodeTitleLink.css.d.ts │ │ ├── EpisodeTitleLink.tsx │ │ ├── FinaleType.css │ │ ├── FinaleType.css.d.ts │ │ ├── FinaleType.tsx │ │ ├── History │ │ │ ├── EpisodeHistory.js │ │ │ ├── EpisodeHistoryConnector.js │ │ │ ├── EpisodeHistoryRow.css │ │ │ ├── EpisodeHistoryRow.css.d.ts │ │ │ └── EpisodeHistoryRow.js │ │ ├── IndexerFlags.tsx │ │ ├── SceneInfo.css │ │ ├── SceneInfo.css.d.ts │ │ ├── SceneInfo.js │ │ ├── Search │ │ │ ├── EpisodeSearch.css │ │ │ ├── EpisodeSearch.css.d.ts │ │ │ ├── EpisodeSearch.js │ │ │ └── EpisodeSearchConnector.js │ │ ├── SeasonEpisodeNumber.js │ │ ├── Summary │ │ │ ├── EpisodeAiring.js │ │ │ ├── EpisodeAiringConnector.js │ │ │ ├── EpisodeFileRow.css │ │ │ ├── EpisodeFileRow.css.d.ts │ │ │ ├── EpisodeFileRow.js │ │ │ ├── EpisodeSummary.css │ │ │ ├── EpisodeSummary.css.d.ts │ │ │ ├── EpisodeSummary.js │ │ │ ├── EpisodeSummaryConnector.js │ │ │ └── MediaInfo.js │ │ ├── episodeEntities.js │ │ └── getFinaleTypeName.ts │ ├── EpisodeFile │ │ ├── EpisodeFile.ts │ │ ├── EpisodeFileLanguageConnector.js │ │ ├── MediaInfo.js │ │ ├── MediaInfoConnector.js │ │ └── mediaInfoTypes.js │ ├── FirstRun │ │ ├── AuthenticationRequiredModal.js │ │ ├── AuthenticationRequiredModalContent.css │ │ ├── AuthenticationRequiredModalContent.css.d.ts │ │ ├── AuthenticationRequiredModalContent.js │ │ └── AuthenticationRequiredModalContentConnector.js │ ├── Helpers │ │ ├── Hooks │ │ │ ├── useMeasure.ts │ │ │ ├── useModalOpenState.ts │ │ │ ├── usePrevious.tsx │ │ │ └── useSelectState.tsx │ │ ├── Props │ │ │ ├── ScrollDirection.ts │ │ │ ├── Shapes │ │ │ │ ├── createRouteMatchShape.js │ │ │ │ ├── locationShape.js │ │ │ │ ├── settingShape.js │ │ │ │ └── tagShape.js │ │ │ ├── SortDirection.ts │ │ │ ├── TooltipPosition.ts │ │ │ ├── align.js │ │ │ ├── filterBuilderTypes.js │ │ │ ├── filterBuilderValueTypes.js │ │ │ ├── filterTypePredicates.js │ │ │ ├── filterTypes.js │ │ │ ├── icons.js │ │ │ ├── index.js │ │ │ ├── inputTypes.js │ │ │ ├── kinds.js │ │ │ ├── messageTypes.js │ │ │ ├── scrollDirections.js │ │ │ ├── sizes.js │ │ │ ├── sortDirections.js │ │ │ └── tooltipPositions.js │ │ ├── dragTypes.js │ │ ├── elementChildren.js │ │ └── getDisplayName.js │ ├── InteractiveImport │ │ ├── Episode │ │ │ ├── SelectEpisodeModal.tsx │ │ │ ├── SelectEpisodeModalContent.css │ │ │ ├── SelectEpisodeModalContent.css.d.ts │ │ │ ├── SelectEpisodeModalContent.tsx │ │ │ └── SelectEpisodeRow.js │ │ ├── Folder │ │ │ ├── InteractiveImportSelectFolderModalContent.css │ │ │ ├── InteractiveImportSelectFolderModalContent.css.d.ts │ │ │ ├── InteractiveImportSelectFolderModalContent.tsx │ │ │ ├── RecentFolder.ts │ │ │ ├── RecentFolderRow.css │ │ │ ├── RecentFolderRow.css.d.ts │ │ │ └── RecentFolderRow.js │ │ ├── ImportMode.ts │ │ ├── IndexerFlags │ │ │ ├── SelectIndexerFlagsModal.tsx │ │ │ ├── SelectIndexerFlagsModalContent.css │ │ │ ├── SelectIndexerFlagsModalContent.css.d.ts │ │ │ └── SelectIndexerFlagsModalContent.tsx │ │ ├── Interactive │ │ │ ├── InteractiveImportModalContent.css │ │ │ ├── InteractiveImportModalContent.css.d.ts │ │ │ ├── InteractiveImportModalContent.tsx │ │ │ ├── InteractiveImportRow.css │ │ │ ├── InteractiveImportRow.css.d.ts │ │ │ ├── InteractiveImportRow.tsx │ │ │ ├── InteractiveImportRowCellPlaceholder.css │ │ │ ├── InteractiveImportRowCellPlaceholder.css.d.ts │ │ │ └── InteractiveImportRowCellPlaceholder.tsx │ │ ├── InteractiveImport.ts │ │ ├── InteractiveImportModal.tsx │ │ ├── Language │ │ │ ├── SelectLanguageModal.tsx │ │ │ ├── SelectLanguageModalContent.css │ │ │ ├── SelectLanguageModalContent.css.d.ts │ │ │ └── SelectLanguageModalContent.tsx │ │ ├── Quality │ │ │ ├── SelectQualityModal.tsx │ │ │ └── SelectQualityModalContent.tsx │ │ ├── ReleaseGroup │ │ │ ├── SelectReleaseGroupModal.tsx │ │ │ ├── SelectReleaseGroupModalContent.css │ │ │ ├── SelectReleaseGroupModalContent.css.d.ts │ │ │ └── SelectReleaseGroupModalContent.tsx │ │ ├── ReleaseType.ts │ │ ├── Season │ │ │ ├── SelectSeasonModal.tsx │ │ │ ├── SelectSeasonModalContent.tsx │ │ │ ├── SelectSeasonRow.css │ │ │ ├── SelectSeasonRow.css.d.ts │ │ │ └── SelectSeasonRow.tsx │ │ └── Series │ │ │ ├── SelectSeriesModal.tsx │ │ │ ├── SelectSeriesModalContent.css │ │ │ ├── SelectSeriesModalContent.css.d.ts │ │ │ ├── SelectSeriesModalContent.tsx │ │ │ ├── SelectSeriesModalTableHeader.css │ │ │ ├── SelectSeriesModalTableHeader.css.d.ts │ │ │ ├── SelectSeriesModalTableHeader.tsx │ │ │ ├── SelectSeriesRow.css │ │ │ ├── SelectSeriesRow.css.d.ts │ │ │ └── SelectSeriesRow.js │ ├── InteractiveSearch │ │ ├── InteractiveSearch.css │ │ ├── InteractiveSearch.css.d.ts │ │ ├── InteractiveSearch.js │ │ ├── InteractiveSearchConnector.js │ │ ├── InteractiveSearchFilterModalConnector.js │ │ ├── InteractiveSearchRow.css │ │ ├── InteractiveSearchRow.css.d.ts │ │ ├── InteractiveSearchRow.tsx │ │ ├── OverrideMatch │ │ │ ├── DownloadClient │ │ │ │ ├── SelectDownloadClientModal.tsx │ │ │ │ ├── SelectDownloadClientModalContent.tsx │ │ │ │ ├── SelectDownloadClientRow.css │ │ │ │ ├── SelectDownloadClientRow.css.d.ts │ │ │ │ └── SelectDownloadClientRow.tsx │ │ │ ├── OverrideMatchData.css │ │ │ ├── OverrideMatchData.css.d.ts │ │ │ ├── OverrideMatchData.tsx │ │ │ ├── OverrideMatchModal.tsx │ │ │ ├── OverrideMatchModalContent.css │ │ │ ├── OverrideMatchModalContent.css.d.ts │ │ │ └── OverrideMatchModalContent.tsx │ │ ├── Peers.js │ │ ├── ReleaseEpisode.ts │ │ ├── ReleaseSceneIndicator.css │ │ ├── ReleaseSceneIndicator.css.d.ts │ │ └── ReleaseSceneIndicator.tsx │ ├── Language │ │ └── Language.ts │ ├── Organize │ │ ├── OrganizePreviewModal.js │ │ ├── OrganizePreviewModalConnector.js │ │ ├── OrganizePreviewModalContent.css │ │ ├── OrganizePreviewModalContent.css.d.ts │ │ ├── OrganizePreviewModalContent.js │ │ ├── OrganizePreviewModalContentConnector.js │ │ ├── OrganizePreviewRow.css │ │ ├── OrganizePreviewRow.css.d.ts │ │ └── OrganizePreviewRow.js │ ├── Parse │ │ ├── Parse.css │ │ ├── Parse.css.d.ts │ │ ├── Parse.tsx │ │ ├── ParseModal.tsx │ │ ├── ParseModalContent.css │ │ ├── ParseModalContent.css.d.ts │ │ ├── ParseModalContent.tsx │ │ ├── ParseResult.css │ │ ├── ParseResult.css.d.ts │ │ ├── ParseResult.tsx │ │ ├── ParseResultItem.css │ │ ├── ParseResultItem.css.d.ts │ │ ├── ParseResultItem.tsx │ │ ├── ParseToolbarButton.tsx │ │ └── parseStateSelector.ts │ ├── Quality │ │ └── Quality.ts │ ├── RootFolder │ │ ├── RootFolderRow.css │ │ ├── RootFolderRow.css.d.ts │ │ ├── RootFolderRow.tsx │ │ └── RootFolders.tsx │ ├── Season │ │ └── formatSeason.ts │ ├── Series │ │ ├── Delete │ │ │ ├── DeleteSeriesModal.js │ │ │ ├── DeleteSeriesModalContent.css │ │ │ ├── DeleteSeriesModalContent.css.d.ts │ │ │ ├── DeleteSeriesModalContent.js │ │ │ └── DeleteSeriesModalContentConnector.js │ │ ├── Details │ │ │ ├── EpisodeRow.css │ │ │ ├── EpisodeRow.css.d.ts │ │ │ ├── EpisodeRow.js │ │ │ ├── EpisodeRowConnector.js │ │ │ ├── SeasonInfo.css │ │ │ ├── SeasonInfo.css.d.ts │ │ │ ├── SeasonInfo.js │ │ │ ├── SeriesAlternateTitles.css │ │ │ ├── SeriesAlternateTitles.css.d.ts │ │ │ ├── SeriesAlternateTitles.js │ │ │ ├── SeriesDetails.css │ │ │ ├── SeriesDetails.css.d.ts │ │ │ ├── SeriesDetails.js │ │ │ ├── SeriesDetailsConnector.js │ │ │ ├── SeriesDetailsLinks.css │ │ │ ├── SeriesDetailsLinks.css.d.ts │ │ │ ├── SeriesDetailsLinks.js │ │ │ ├── SeriesDetailsPageConnector.js │ │ │ ├── SeriesDetailsSeason.css │ │ │ ├── SeriesDetailsSeason.css.d.ts │ │ │ ├── SeriesDetailsSeason.js │ │ │ ├── SeriesDetailsSeasonConnector.js │ │ │ ├── SeriesGenres.css │ │ │ ├── SeriesGenres.css.d.ts │ │ │ ├── SeriesGenres.js │ │ │ ├── SeriesTags.js │ │ │ └── SeriesTagsConnector.js │ │ ├── Edit │ │ │ ├── EditSeriesModal.js │ │ │ ├── EditSeriesModalConnector.js │ │ │ ├── EditSeriesModalContent.css │ │ │ ├── EditSeriesModalContent.css.d.ts │ │ │ ├── EditSeriesModalContent.js │ │ │ └── EditSeriesModalContentConnector.js │ │ ├── History │ │ │ ├── SeriesHistoryModal.js │ │ │ ├── SeriesHistoryModalContent.js │ │ │ ├── SeriesHistoryModalContentConnector.js │ │ │ ├── SeriesHistoryRow.css │ │ │ ├── SeriesHistoryRow.css.d.ts │ │ │ ├── SeriesHistoryRow.js │ │ │ └── SeriesHistoryRowConnector.js │ │ ├── Index │ │ │ ├── Menus │ │ │ │ ├── SeriesIndexFilterMenu.tsx │ │ │ │ ├── SeriesIndexSortMenu.tsx │ │ │ │ └── SeriesIndexViewMenu.tsx │ │ │ ├── Overview │ │ │ │ ├── Options │ │ │ │ │ ├── SeriesIndexOverviewOptionsModal.tsx │ │ │ │ │ └── SeriesIndexOverviewOptionsModalContent.tsx │ │ │ │ ├── SeriesIndexOverview.css │ │ │ │ ├── SeriesIndexOverview.css.d.ts │ │ │ │ ├── SeriesIndexOverview.tsx │ │ │ │ ├── SeriesIndexOverviewInfo.css │ │ │ │ ├── SeriesIndexOverviewInfo.css.d.ts │ │ │ │ ├── SeriesIndexOverviewInfo.tsx │ │ │ │ ├── SeriesIndexOverviewInfoRow.css │ │ │ │ ├── SeriesIndexOverviewInfoRow.css.d.ts │ │ │ │ ├── SeriesIndexOverviewInfoRow.tsx │ │ │ │ ├── SeriesIndexOverviews.css │ │ │ │ ├── SeriesIndexOverviews.tsx │ │ │ │ └── selectOverviewOptions.ts │ │ │ ├── Posters │ │ │ │ ├── Options │ │ │ │ │ ├── SeriesIndexPosterOptionsModal.tsx │ │ │ │ │ └── SeriesIndexPosterOptionsModalContent.tsx │ │ │ │ ├── SeriesIndexPoster.css │ │ │ │ ├── SeriesIndexPoster.css.d.ts │ │ │ │ ├── SeriesIndexPoster.tsx │ │ │ │ ├── SeriesIndexPosterInfo.css │ │ │ │ ├── SeriesIndexPosterInfo.css.d.ts │ │ │ │ ├── SeriesIndexPosterInfo.tsx │ │ │ │ ├── SeriesIndexPosters.tsx │ │ │ │ └── selectPosterOptions.ts │ │ │ ├── ProgressBar │ │ │ │ ├── SeriesIndexProgressBar.css │ │ │ │ ├── SeriesIndexProgressBar.css.d.ts │ │ │ │ └── SeriesIndexProgressBar.tsx │ │ │ ├── Select │ │ │ │ ├── Delete │ │ │ │ │ ├── DeleteSeriesModal.tsx │ │ │ │ │ ├── DeleteSeriesModalContent.css │ │ │ │ │ ├── DeleteSeriesModalContent.css.d.ts │ │ │ │ │ └── DeleteSeriesModalContent.tsx │ │ │ │ ├── Edit │ │ │ │ │ ├── EditSeriesModal.tsx │ │ │ │ │ ├── EditSeriesModalContent.css │ │ │ │ │ ├── EditSeriesModalContent.css.d.ts │ │ │ │ │ └── EditSeriesModalContent.tsx │ │ │ │ ├── Organize │ │ │ │ │ ├── OrganizeSeriesModal.tsx │ │ │ │ │ ├── OrganizeSeriesModalContent.css │ │ │ │ │ ├── OrganizeSeriesModalContent.css.d.ts │ │ │ │ │ └── OrganizeSeriesModalContent.tsx │ │ │ │ ├── SeasonPass │ │ │ │ │ ├── ChangeMonitoringModal.tsx │ │ │ │ │ ├── ChangeMonitoringModalContent.css │ │ │ │ │ ├── ChangeMonitoringModalContent.css.d.ts │ │ │ │ │ ├── ChangeMonitoringModalContent.tsx │ │ │ │ │ ├── SeasonDetails.css │ │ │ │ │ ├── SeasonDetails.css.d.ts │ │ │ │ │ ├── SeasonDetails.tsx │ │ │ │ │ ├── SeasonPassSeason.css │ │ │ │ │ ├── SeasonPassSeason.css.d.ts │ │ │ │ │ └── SeasonPassSeason.tsx │ │ │ │ ├── SeriesIndexPosterSelect.css │ │ │ │ ├── SeriesIndexPosterSelect.css.d.ts │ │ │ │ ├── SeriesIndexPosterSelect.tsx │ │ │ │ ├── SeriesIndexSelectAllButton.tsx │ │ │ │ ├── SeriesIndexSelectAllMenuItem.tsx │ │ │ │ ├── SeriesIndexSelectFooter.css │ │ │ │ ├── SeriesIndexSelectFooter.css.d.ts │ │ │ │ ├── SeriesIndexSelectFooter.tsx │ │ │ │ ├── SeriesIndexSelectModeButton.tsx │ │ │ │ ├── SeriesIndexSelectModeMenuItem.tsx │ │ │ │ └── Tags │ │ │ │ │ ├── TagsModal.tsx │ │ │ │ │ ├── TagsModalContent.css │ │ │ │ │ ├── TagsModalContent.css.d.ts │ │ │ │ │ └── TagsModalContent.tsx │ │ │ ├── SeriesIndex.css │ │ │ ├── SeriesIndex.css.d.ts │ │ │ ├── SeriesIndex.tsx │ │ │ ├── SeriesIndexFilterModal.tsx │ │ │ ├── SeriesIndexFooter.css │ │ │ ├── SeriesIndexFooter.css.d.ts │ │ │ ├── SeriesIndexFooter.tsx │ │ │ ├── SeriesIndexRefreshSeriesButton.tsx │ │ │ ├── Table │ │ │ │ ├── SeasonsCell.css │ │ │ │ ├── SeasonsCell.css.d.ts │ │ │ │ ├── SeasonsCell.tsx │ │ │ │ ├── SeriesIndexRow.css │ │ │ │ ├── SeriesIndexRow.css.d.ts │ │ │ │ ├── SeriesIndexRow.tsx │ │ │ │ ├── SeriesIndexTable.css │ │ │ │ ├── SeriesIndexTable.css.d.ts │ │ │ │ ├── SeriesIndexTable.tsx │ │ │ │ ├── SeriesIndexTableHeader.css │ │ │ │ ├── SeriesIndexTableHeader.css.d.ts │ │ │ │ ├── SeriesIndexTableHeader.tsx │ │ │ │ ├── SeriesIndexTableOptions.tsx │ │ │ │ ├── SeriesStatusCell.css │ │ │ │ ├── SeriesStatusCell.css.d.ts │ │ │ │ ├── SeriesStatusCell.tsx │ │ │ │ ├── hasGrowableColumns.ts │ │ │ │ └── selectTableOptions.ts │ │ │ ├── createSeriesIndexItemSelector.ts │ │ │ └── createSeriesQueueDetailsSelector.ts │ │ ├── MonitoringOptions │ │ │ ├── MonitoringOptionModalConnector.js │ │ │ ├── MonitoringOptionsModal.js │ │ │ ├── MonitoringOptionsModalContent.css │ │ │ ├── MonitoringOptionsModalContent.css.d.ts │ │ │ ├── MonitoringOptionsModalContent.js │ │ │ └── MonitoringOptionsModalContentConnector.js │ │ ├── MoveSeries │ │ │ ├── MoveSeriesModal.css │ │ │ ├── MoveSeriesModal.css.d.ts │ │ │ └── MoveSeriesModal.js │ │ ├── NoSeries.css │ │ ├── NoSeries.css.d.ts │ │ ├── NoSeries.js │ │ ├── Search │ │ │ ├── SeasonInteractiveSearchModal.js │ │ │ ├── SeasonInteractiveSearchModalConnector.js │ │ │ └── SeasonInteractiveSearchModalContent.js │ │ ├── Series.ts │ │ ├── SeriesBanner.js │ │ ├── SeriesImage.js │ │ ├── SeriesPoster.js │ │ ├── SeriesStatus.js │ │ └── SeriesTitleLink.js │ ├── Settings │ │ ├── AdvancedSettingsButton.css │ │ ├── AdvancedSettingsButton.css.d.ts │ │ ├── AdvancedSettingsButton.js │ │ ├── CustomFormats │ │ │ ├── CustomFormatSettingsPage.tsx │ │ │ └── CustomFormats │ │ │ │ ├── CustomFormat.css │ │ │ │ ├── CustomFormat.css.d.ts │ │ │ │ ├── CustomFormat.js │ │ │ │ ├── CustomFormats.css │ │ │ │ ├── CustomFormats.css.d.ts │ │ │ │ ├── CustomFormats.js │ │ │ │ ├── CustomFormatsConnector.js │ │ │ │ ├── EditCustomFormatModal.js │ │ │ │ ├── EditCustomFormatModalConnector.js │ │ │ │ ├── EditCustomFormatModalContent.css │ │ │ │ ├── EditCustomFormatModalContent.css.d.ts │ │ │ │ ├── EditCustomFormatModalContent.js │ │ │ │ ├── EditCustomFormatModalContentConnector.js │ │ │ │ ├── ExportCustomFormatModal.js │ │ │ │ ├── ExportCustomFormatModalContent.css │ │ │ │ ├── ExportCustomFormatModalContent.css.d.ts │ │ │ │ ├── ExportCustomFormatModalContent.js │ │ │ │ ├── ExportCustomFormatModalContentConnector.js │ │ │ │ ├── ImportCustomFormatModal.js │ │ │ │ ├── ImportCustomFormatModalContent.css │ │ │ │ ├── ImportCustomFormatModalContent.css.d.ts │ │ │ │ ├── ImportCustomFormatModalContent.js │ │ │ │ ├── ImportCustomFormatModalContentConnector.js │ │ │ │ └── Specifications │ │ │ │ ├── AddSpecificationItem.css │ │ │ │ ├── AddSpecificationItem.css.d.ts │ │ │ │ ├── AddSpecificationItem.js │ │ │ │ ├── AddSpecificationModal.js │ │ │ │ ├── AddSpecificationModalContent.css │ │ │ │ ├── AddSpecificationModalContent.css.d.ts │ │ │ │ ├── AddSpecificationModalContent.js │ │ │ │ ├── AddSpecificationModalContentConnector.js │ │ │ │ ├── AddSpecificationPresetMenuItem.js │ │ │ │ ├── EditSpecificationModal.js │ │ │ │ ├── EditSpecificationModalConnector.js │ │ │ │ ├── EditSpecificationModalContent.css │ │ │ │ ├── EditSpecificationModalContent.css.d.ts │ │ │ │ ├── EditSpecificationModalContent.js │ │ │ │ ├── EditSpecificationModalContentConnector.js │ │ │ │ ├── Specification.css │ │ │ │ ├── Specification.css.d.ts │ │ │ │ └── Specification.js │ │ ├── DownloadClients │ │ │ ├── DownloadClientSettings.js │ │ │ ├── DownloadClientSettingsConnector.js │ │ │ ├── DownloadClients │ │ │ │ ├── AddDownloadClientItem.css │ │ │ │ ├── AddDownloadClientItem.css.d.ts │ │ │ │ ├── AddDownloadClientItem.js │ │ │ │ ├── AddDownloadClientModal.js │ │ │ │ ├── AddDownloadClientModalContent.css │ │ │ │ ├── AddDownloadClientModalContent.css.d.ts │ │ │ │ ├── AddDownloadClientModalContent.js │ │ │ │ ├── AddDownloadClientModalContentConnector.js │ │ │ │ ├── AddDownloadClientPresetMenuItem.js │ │ │ │ ├── DownloadClient.css │ │ │ │ ├── DownloadClient.css.d.ts │ │ │ │ ├── DownloadClient.js │ │ │ │ ├── DownloadClients.css │ │ │ │ ├── DownloadClients.css.d.ts │ │ │ │ ├── DownloadClients.js │ │ │ │ ├── DownloadClientsConnector.js │ │ │ │ ├── EditDownloadClientModal.js │ │ │ │ ├── EditDownloadClientModalConnector.js │ │ │ │ ├── EditDownloadClientModalContent.css │ │ │ │ ├── EditDownloadClientModalContent.css.d.ts │ │ │ │ ├── EditDownloadClientModalContent.js │ │ │ │ ├── EditDownloadClientModalContentConnector.js │ │ │ │ └── Manage │ │ │ │ │ ├── Edit │ │ │ │ │ ├── ManageDownloadClientsEditModal.tsx │ │ │ │ │ ├── ManageDownloadClientsEditModalContent.css │ │ │ │ │ ├── ManageDownloadClientsEditModalContent.css.d.ts │ │ │ │ │ └── ManageDownloadClientsEditModalContent.tsx │ │ │ │ │ ├── ManageDownloadClientsModal.tsx │ │ │ │ │ ├── ManageDownloadClientsModalContent.css │ │ │ │ │ ├── ManageDownloadClientsModalContent.css.d.ts │ │ │ │ │ ├── ManageDownloadClientsModalContent.tsx │ │ │ │ │ ├── ManageDownloadClientsModalRow.css │ │ │ │ │ ├── ManageDownloadClientsModalRow.css.d.ts │ │ │ │ │ ├── ManageDownloadClientsModalRow.tsx │ │ │ │ │ └── Tags │ │ │ │ │ ├── TagsModal.tsx │ │ │ │ │ ├── TagsModalContent.css │ │ │ │ │ ├── TagsModalContent.css.d.ts │ │ │ │ │ └── TagsModalContent.tsx │ │ │ ├── Options │ │ │ │ ├── DownloadClientOptions.js │ │ │ │ └── DownloadClientOptionsConnector.js │ │ │ └── RemotePathMappings │ │ │ │ ├── EditRemotePathMappingModal.js │ │ │ │ ├── EditRemotePathMappingModalConnector.js │ │ │ │ ├── EditRemotePathMappingModalContent.css │ │ │ │ ├── EditRemotePathMappingModalContent.css.d.ts │ │ │ │ ├── EditRemotePathMappingModalContent.js │ │ │ │ ├── EditRemotePathMappingModalContentConnector.js │ │ │ │ ├── RemotePathMapping.css │ │ │ │ ├── RemotePathMapping.css.d.ts │ │ │ │ ├── RemotePathMapping.js │ │ │ │ ├── RemotePathMappings.css │ │ │ │ ├── RemotePathMappings.css.d.ts │ │ │ │ ├── RemotePathMappings.js │ │ │ │ └── RemotePathMappingsConnector.js │ │ ├── General │ │ │ ├── AnalyticSettings.js │ │ │ ├── BackupSettings.js │ │ │ ├── GeneralSettings.js │ │ │ ├── GeneralSettingsConnector.js │ │ │ ├── HostSettings.js │ │ │ ├── LoggingSettings.js │ │ │ ├── ProxySettings.js │ │ │ ├── SecuritySettings.js │ │ │ └── UpdateSettings.js │ │ ├── ImportLists │ │ │ ├── ImportListExclusions │ │ │ │ ├── EditImportListExclusionModal.tsx │ │ │ │ ├── EditImportListExclusionModalContent.css │ │ │ │ ├── EditImportListExclusionModalContent.css.d.ts │ │ │ │ ├── EditImportListExclusionModalContent.tsx │ │ │ │ ├── ImportListExclusion.css.d.ts │ │ │ │ ├── ImportListExclusionRow.css │ │ │ │ ├── ImportListExclusionRow.css.d.ts │ │ │ │ ├── ImportListExclusionRow.tsx │ │ │ │ ├── ImportListExclusions.css.d.ts │ │ │ │ └── ImportListExclusions.tsx │ │ │ ├── ImportListSettings.js │ │ │ ├── ImportListSettingsConnector.js │ │ │ ├── ImportLists │ │ │ │ ├── AddImportListItem.css │ │ │ │ ├── AddImportListItem.css.d.ts │ │ │ │ ├── AddImportListItem.js │ │ │ │ ├── AddImportListModal.js │ │ │ │ ├── AddImportListModalContent.css │ │ │ │ ├── AddImportListModalContent.css.d.ts │ │ │ │ ├── AddImportListModalContent.js │ │ │ │ ├── AddImportListModalContentConnector.js │ │ │ │ ├── AddImportListPresetMenuItem.js │ │ │ │ ├── EditImportListModal.js │ │ │ │ ├── EditImportListModalConnector.js │ │ │ │ ├── EditImportListModalContent.css │ │ │ │ ├── EditImportListModalContent.css.d.ts │ │ │ │ ├── EditImportListModalContent.js │ │ │ │ ├── EditImportListModalContentConnector.js │ │ │ │ ├── ImportList.css │ │ │ │ ├── ImportList.css.d.ts │ │ │ │ ├── ImportList.js │ │ │ │ ├── ImportLists.css │ │ │ │ ├── ImportLists.css.d.ts │ │ │ │ ├── ImportLists.js │ │ │ │ ├── ImportListsConnector.js │ │ │ │ └── Manage │ │ │ │ │ ├── Edit │ │ │ │ │ ├── ManageImportListsEditModal.tsx │ │ │ │ │ ├── ManageImportListsEditModalContent.css │ │ │ │ │ ├── ManageImportListsEditModalContent.css.d.ts │ │ │ │ │ └── ManageImportListsEditModalContent.tsx │ │ │ │ │ ├── ManageImportListsModal.tsx │ │ │ │ │ ├── ManageImportListsModalContent.css │ │ │ │ │ ├── ManageImportListsModalContent.css.d.ts │ │ │ │ │ ├── ManageImportListsModalContent.tsx │ │ │ │ │ ├── ManageImportListsModalRow.css │ │ │ │ │ ├── ManageImportListsModalRow.css.d.ts │ │ │ │ │ ├── ManageImportListsModalRow.tsx │ │ │ │ │ └── Tags │ │ │ │ │ ├── TagsModal.tsx │ │ │ │ │ ├── TagsModalContent.css │ │ │ │ │ ├── TagsModalContent.css.d.ts │ │ │ │ │ └── TagsModalContent.tsx │ │ │ └── Options │ │ │ │ └── ImportListOptions.tsx │ │ ├── Indexers │ │ │ ├── IndexerSettings.js │ │ │ ├── IndexerSettingsConnector.js │ │ │ ├── Indexers │ │ │ │ ├── AddIndexerItem.css │ │ │ │ ├── AddIndexerItem.css.d.ts │ │ │ │ ├── AddIndexerItem.js │ │ │ │ ├── AddIndexerModal.js │ │ │ │ ├── AddIndexerModalContent.css │ │ │ │ ├── AddIndexerModalContent.css.d.ts │ │ │ │ ├── AddIndexerModalContent.js │ │ │ │ ├── AddIndexerModalContentConnector.js │ │ │ │ ├── AddIndexerPresetMenuItem.js │ │ │ │ ├── EditIndexerModal.js │ │ │ │ ├── EditIndexerModalConnector.js │ │ │ │ ├── EditIndexerModalContent.css │ │ │ │ ├── EditIndexerModalContent.css.d.ts │ │ │ │ ├── EditIndexerModalContent.js │ │ │ │ ├── EditIndexerModalContentConnector.js │ │ │ │ ├── Indexer.css │ │ │ │ ├── Indexer.css.d.ts │ │ │ │ ├── Indexer.js │ │ │ │ ├── Indexers.css │ │ │ │ ├── Indexers.css.d.ts │ │ │ │ ├── Indexers.js │ │ │ │ ├── IndexersConnector.js │ │ │ │ └── Manage │ │ │ │ │ ├── Edit │ │ │ │ │ ├── ManageIndexersEditModal.tsx │ │ │ │ │ ├── ManageIndexersEditModalContent.css │ │ │ │ │ ├── ManageIndexersEditModalContent.css.d.ts │ │ │ │ │ └── ManageIndexersEditModalContent.tsx │ │ │ │ │ ├── ManageIndexersModal.tsx │ │ │ │ │ ├── ManageIndexersModalContent.css │ │ │ │ │ ├── ManageIndexersModalContent.css.d.ts │ │ │ │ │ ├── ManageIndexersModalContent.tsx │ │ │ │ │ ├── ManageIndexersModalRow.css │ │ │ │ │ ├── ManageIndexersModalRow.css.d.ts │ │ │ │ │ ├── ManageIndexersModalRow.tsx │ │ │ │ │ └── Tags │ │ │ │ │ ├── TagsModal.tsx │ │ │ │ │ ├── TagsModalContent.css │ │ │ │ │ ├── TagsModalContent.css.d.ts │ │ │ │ │ └── TagsModalContent.tsx │ │ │ └── Options │ │ │ │ ├── IndexerOptions.js │ │ │ │ └── IndexerOptionsConnector.js │ │ ├── MediaManagement │ │ │ ├── MediaManagement.js │ │ │ ├── MediaManagementConnector.js │ │ │ ├── Naming │ │ │ │ ├── Naming.css │ │ │ │ ├── Naming.css.d.ts │ │ │ │ ├── Naming.js │ │ │ │ ├── NamingConnector.js │ │ │ │ ├── NamingModal.css │ │ │ │ ├── NamingModal.css.d.ts │ │ │ │ ├── NamingModal.js │ │ │ │ ├── NamingOption.css │ │ │ │ ├── NamingOption.css.d.ts │ │ │ │ └── NamingOption.js │ │ │ └── RootFolder │ │ │ │ ├── AddRootFolder.css │ │ │ │ ├── AddRootFolder.css.d.ts │ │ │ │ └── AddRootFolder.tsx │ │ ├── Metadata │ │ │ ├── Metadata │ │ │ │ ├── EditMetadataModal.js │ │ │ │ ├── EditMetadataModalConnector.js │ │ │ │ ├── EditMetadataModalContent.js │ │ │ │ ├── EditMetadataModalContentConnector.js │ │ │ │ ├── Metadata.css │ │ │ │ ├── Metadata.css.d.ts │ │ │ │ ├── Metadata.js │ │ │ │ ├── Metadatas.css │ │ │ │ ├── Metadatas.css.d.ts │ │ │ │ ├── Metadatas.js │ │ │ │ └── MetadatasConnector.js │ │ │ └── MetadataSettings.js │ │ ├── MetadataSource │ │ │ ├── MetadataSourceSettings.js │ │ │ ├── TheTvdb.css │ │ │ ├── TheTvdb.css.d.ts │ │ │ └── TheTvdb.js │ │ ├── Notifications │ │ │ ├── NotificationSettings.js │ │ │ └── Notifications │ │ │ │ ├── AddNotificationItem.css │ │ │ │ ├── AddNotificationItem.css.d.ts │ │ │ │ ├── AddNotificationItem.js │ │ │ │ ├── AddNotificationModal.js │ │ │ │ ├── AddNotificationModalContent.css │ │ │ │ ├── AddNotificationModalContent.css.d.ts │ │ │ │ ├── AddNotificationModalContent.js │ │ │ │ ├── AddNotificationModalContentConnector.js │ │ │ │ ├── AddNotificationPresetMenuItem.js │ │ │ │ ├── EditNotificationModal.js │ │ │ │ ├── EditNotificationModalConnector.js │ │ │ │ ├── EditNotificationModalContent.css │ │ │ │ ├── EditNotificationModalContent.css.d.ts │ │ │ │ ├── EditNotificationModalContent.js │ │ │ │ ├── EditNotificationModalContentConnector.js │ │ │ │ ├── Notification.css │ │ │ │ ├── Notification.css.d.ts │ │ │ │ ├── Notification.js │ │ │ │ ├── NotificationEventItems.css │ │ │ │ ├── NotificationEventItems.css.d.ts │ │ │ │ ├── NotificationEventItems.js │ │ │ │ ├── Notifications.css │ │ │ │ ├── Notifications.css.d.ts │ │ │ │ ├── Notifications.js │ │ │ │ └── NotificationsConnector.js │ │ ├── PendingChangesModal.js │ │ ├── Profiles │ │ │ ├── Delay │ │ │ │ ├── DelayProfile.css │ │ │ │ ├── DelayProfile.css.d.ts │ │ │ │ ├── DelayProfile.js │ │ │ │ ├── DelayProfileDragPreview.css │ │ │ │ ├── DelayProfileDragPreview.css.d.ts │ │ │ │ ├── DelayProfileDragPreview.js │ │ │ │ ├── DelayProfileDragSource.css │ │ │ │ ├── DelayProfileDragSource.css.d.ts │ │ │ │ ├── DelayProfileDragSource.js │ │ │ │ ├── DelayProfiles.css │ │ │ │ ├── DelayProfiles.css.d.ts │ │ │ │ ├── DelayProfiles.js │ │ │ │ ├── DelayProfilesConnector.js │ │ │ │ ├── EditDelayProfileModal.js │ │ │ │ ├── EditDelayProfileModalConnector.js │ │ │ │ ├── EditDelayProfileModalContent.css │ │ │ │ ├── EditDelayProfileModalContent.css.d.ts │ │ │ │ ├── EditDelayProfileModalContent.js │ │ │ │ └── EditDelayProfileModalContentConnector.js │ │ │ ├── Profiles.js │ │ │ ├── Quality │ │ │ │ ├── EditQualityProfileModal.js │ │ │ │ ├── EditQualityProfileModalConnector.js │ │ │ │ ├── EditQualityProfileModalContent.css │ │ │ │ ├── EditQualityProfileModalContent.css.d.ts │ │ │ │ ├── EditQualityProfileModalContent.js │ │ │ │ ├── EditQualityProfileModalContentConnector.js │ │ │ │ ├── QualityProfile.css │ │ │ │ ├── QualityProfile.css.d.ts │ │ │ │ ├── QualityProfile.js │ │ │ │ ├── QualityProfileFormatItem.css │ │ │ │ ├── QualityProfileFormatItem.css.d.ts │ │ │ │ ├── QualityProfileFormatItem.js │ │ │ │ ├── QualityProfileFormatItems.css │ │ │ │ ├── QualityProfileFormatItems.css.d.ts │ │ │ │ ├── QualityProfileFormatItems.js │ │ │ │ ├── QualityProfileItem.css │ │ │ │ ├── QualityProfileItem.css.d.ts │ │ │ │ ├── QualityProfileItem.js │ │ │ │ ├── QualityProfileItemDragPreview.css │ │ │ │ ├── QualityProfileItemDragPreview.css.d.ts │ │ │ │ ├── QualityProfileItemDragPreview.js │ │ │ │ ├── QualityProfileItemDragSource.css │ │ │ │ ├── QualityProfileItemDragSource.css.d.ts │ │ │ │ ├── QualityProfileItemDragSource.js │ │ │ │ ├── QualityProfileItemGroup.css │ │ │ │ ├── QualityProfileItemGroup.css.d.ts │ │ │ │ ├── QualityProfileItemGroup.js │ │ │ │ ├── QualityProfileItems.css │ │ │ │ ├── QualityProfileItems.css.d.ts │ │ │ │ ├── QualityProfileItems.js │ │ │ │ ├── QualityProfileNameConnector.js │ │ │ │ ├── QualityProfiles.css │ │ │ │ ├── QualityProfiles.css.d.ts │ │ │ │ ├── QualityProfiles.js │ │ │ │ └── QualityProfilesConnector.js │ │ │ └── Release │ │ │ │ ├── EditReleaseProfileModal.js │ │ │ │ ├── EditReleaseProfileModalConnector.js │ │ │ │ ├── EditReleaseProfileModalContent.css │ │ │ │ ├── EditReleaseProfileModalContent.css.d.ts │ │ │ │ ├── EditReleaseProfileModalContent.js │ │ │ │ ├── EditReleaseProfileModalContentConnector.js │ │ │ │ ├── ReleaseProfile.css │ │ │ │ ├── ReleaseProfile.css.d.ts │ │ │ │ ├── ReleaseProfile.js │ │ │ │ ├── ReleaseProfiles.css │ │ │ │ ├── ReleaseProfiles.css.d.ts │ │ │ │ ├── ReleaseProfiles.js │ │ │ │ └── ReleaseProfilesConnector.js │ │ ├── Quality │ │ │ ├── Definition │ │ │ │ ├── QualityDefinition.css │ │ │ │ ├── QualityDefinition.css.d.ts │ │ │ │ ├── QualityDefinition.js │ │ │ │ ├── QualityDefinitionConnector.js │ │ │ │ ├── QualityDefinitionLimits.js │ │ │ │ ├── QualityDefinitions.css │ │ │ │ ├── QualityDefinitions.css.d.ts │ │ │ │ ├── QualityDefinitions.js │ │ │ │ └── QualityDefinitionsConnector.js │ │ │ ├── Quality.js │ │ │ ├── QualityConnector.js │ │ │ └── Reset │ │ │ │ ├── ResetQualityDefinitionsModal.js │ │ │ │ ├── ResetQualityDefinitionsModalContent.css │ │ │ │ ├── ResetQualityDefinitionsModalContent.css.d.ts │ │ │ │ ├── ResetQualityDefinitionsModalContent.js │ │ │ │ └── ResetQualityDefinitionsModalContentConnector.js │ │ ├── Settings.css │ │ ├── Settings.css.d.ts │ │ ├── Settings.js │ │ ├── SettingsToolbar.js │ │ ├── SettingsToolbarConnector.js │ │ ├── Tags │ │ │ ├── AutoTagging │ │ │ │ ├── AutoTagging.css │ │ │ │ ├── AutoTagging.css.d.ts │ │ │ │ ├── AutoTagging.js │ │ │ │ ├── AutoTaggings.css │ │ │ │ ├── AutoTaggings.css.d.ts │ │ │ │ ├── AutoTaggings.js │ │ │ │ ├── EditAutoTaggingModal.js │ │ │ │ ├── EditAutoTaggingModalContent.css │ │ │ │ ├── EditAutoTaggingModalContent.css.d.ts │ │ │ │ ├── EditAutoTaggingModalContent.js │ │ │ │ └── Specifications │ │ │ │ │ ├── AddSpecificationItem.css │ │ │ │ │ ├── AddSpecificationItem.css.d.ts │ │ │ │ │ ├── AddSpecificationItem.js │ │ │ │ │ ├── AddSpecificationModal.js │ │ │ │ │ ├── AddSpecificationModalContent.css │ │ │ │ │ ├── AddSpecificationModalContent.css.d.ts │ │ │ │ │ ├── AddSpecificationModalContent.js │ │ │ │ │ ├── AddSpecificationPresetMenuItem.js │ │ │ │ │ ├── EditSpecificationModal.js │ │ │ │ │ ├── EditSpecificationModalContent.css │ │ │ │ │ ├── EditSpecificationModalContent.css.d.ts │ │ │ │ │ ├── EditSpecificationModalContent.js │ │ │ │ │ ├── EditSpecificationModalContentConnector.js │ │ │ │ │ ├── Specification.css │ │ │ │ │ ├── Specification.css.d.ts │ │ │ │ │ └── Specification.js │ │ │ ├── Details │ │ │ │ ├── TagDetailsDelayProfile.js │ │ │ │ ├── TagDetailsModal.js │ │ │ │ ├── TagDetailsModalContent.css │ │ │ │ ├── TagDetailsModalContent.css.d.ts │ │ │ │ ├── TagDetailsModalContent.js │ │ │ │ └── TagDetailsModalContentConnector.js │ │ │ ├── Tag.css │ │ │ ├── Tag.css.d.ts │ │ │ ├── Tag.js │ │ │ ├── TagConnector.js │ │ │ ├── TagInUse.js │ │ │ ├── TagSettings.js │ │ │ ├── Tags.css │ │ │ ├── Tags.css.d.ts │ │ │ ├── Tags.js │ │ │ └── TagsConnector.js │ │ └── UI │ │ │ ├── UISettings.js │ │ │ └── UISettingsConnector.js │ ├── Shared │ │ └── piwikCheck.js │ ├── Store │ │ ├── Actions │ │ │ ├── Creators │ │ │ │ ├── Reducers │ │ │ │ │ ├── createClearReducer.js │ │ │ │ │ ├── createSetClientSideCollectionFilterReducer.js │ │ │ │ │ ├── createSetClientSideCollectionSortReducer.js │ │ │ │ │ ├── createSetProviderFieldValueReducer.js │ │ │ │ │ ├── createSetSettingValueReducer.js │ │ │ │ │ └── createSetTableOptionReducer.js │ │ │ │ ├── createBatchToggleEpisodeMonitoredHandler.js │ │ │ │ ├── createBulkEditItemHandler.js │ │ │ │ ├── createBulkRemoveItemHandler.js │ │ │ │ ├── createFetchHandler.js │ │ │ │ ├── createFetchSchemaHandler.js │ │ │ │ ├── createFetchServerSideCollectionHandler.js │ │ │ │ ├── createHandleActions.js │ │ │ │ ├── createRemoveItemHandler.js │ │ │ │ ├── createSaveHandler.js │ │ │ │ ├── createSaveProviderHandler.js │ │ │ │ ├── createServerSideCollectionHandlers.js │ │ │ │ ├── createSetServerSideCollectionFilterHandler.js │ │ │ │ ├── createSetServerSideCollectionPageHandler.js │ │ │ │ ├── createSetServerSideCollectionSortHandler.js │ │ │ │ ├── createTestAllProvidersHandler.js │ │ │ │ └── createTestProviderHandler.js │ │ │ ├── Settings │ │ │ │ ├── autoTaggingSpecifications.js │ │ │ │ ├── autoTaggings.js │ │ │ │ ├── customFormatSpecifications.js │ │ │ │ ├── customFormats.js │ │ │ │ ├── delayProfiles.js │ │ │ │ ├── downloadClientOptions.js │ │ │ │ ├── downloadClients.js │ │ │ │ ├── general.js │ │ │ │ ├── importListExclusions.js │ │ │ │ ├── importListOptions.js │ │ │ │ ├── importLists.js │ │ │ │ ├── indexerFlags.js │ │ │ │ ├── indexerOptions.js │ │ │ │ ├── indexers.js │ │ │ │ ├── languages.js │ │ │ │ ├── mediaManagement.js │ │ │ │ ├── metadata.js │ │ │ │ ├── naming.js │ │ │ │ ├── namingExamples.js │ │ │ │ ├── notifications.js │ │ │ │ ├── qualityDefinitions.js │ │ │ │ ├── qualityProfiles.js │ │ │ │ ├── releaseProfiles.js │ │ │ │ ├── remotePathMappings.js │ │ │ │ └── ui.js │ │ │ ├── actionTypes.js │ │ │ ├── addSeriesActions.js │ │ │ ├── appActions.js │ │ │ ├── baseActions.js │ │ │ ├── blocklistActions.js │ │ │ ├── calendarActions.js │ │ │ ├── captchaActions.js │ │ │ ├── commandActions.js │ │ │ ├── createReducers.js │ │ │ ├── customFilterActions.js │ │ │ ├── episodeActions.js │ │ │ ├── episodeFileActions.js │ │ │ ├── episodeHistoryActions.js │ │ │ ├── episodeSelectionActions.js │ │ │ ├── historyActions.js │ │ │ ├── importSeriesActions.js │ │ │ ├── index.js │ │ │ ├── interactiveImportActions.js │ │ │ ├── oAuthActions.js │ │ │ ├── organizePreviewActions.js │ │ │ ├── parseActions.ts │ │ │ ├── pathActions.js │ │ │ ├── providerOptionActions.js │ │ │ ├── queueActions.js │ │ │ ├── releaseActions.js │ │ │ ├── rootFolderActions.js │ │ │ ├── seriesActions.js │ │ │ ├── seriesHistoryActions.js │ │ │ ├── seriesIndexActions.js │ │ │ ├── settingsActions.js │ │ │ ├── systemActions.js │ │ │ ├── tagActions.js │ │ │ └── wantedActions.js │ │ ├── Middleware │ │ │ ├── createPersistState.js │ │ │ ├── createSentryMiddleware.js │ │ │ └── middlewares.js │ │ ├── Migrators │ │ │ ├── migrate.js │ │ │ └── migrateAddSeriesDefaults.js │ │ ├── Selectors │ │ │ ├── createAllSeriesSelector.ts │ │ │ ├── createClientSideCollectionSelector.js │ │ │ ├── createCommandExecutingSelector.ts │ │ │ ├── createCommandSelector.ts │ │ │ ├── createCommandsSelector.ts │ │ │ ├── createDeepEqualSelector.ts │ │ │ ├── createDimensionsSelector.ts │ │ │ ├── createEnabledDownloadClientsSelector.ts │ │ │ ├── createEpisodeFileSelector.ts │ │ │ ├── createEpisodeSelector.js │ │ │ ├── createExecutingCommandsSelector.ts │ │ │ ├── createExistingSeriesSelector.ts │ │ │ ├── createImportSeriesItemSelector.js │ │ │ ├── createIndexerFlagsSelector.ts │ │ │ ├── createLanguagesSelector.ts │ │ │ ├── createMultiSeriesSelector.ts │ │ │ ├── createProfileInUseSelector.ts │ │ │ ├── createProviderSettingsSelector.js │ │ │ ├── createQualityProfileSelector.ts │ │ │ ├── createQueueItemSelector.ts │ │ │ ├── createRootFoldersSelector.ts │ │ │ ├── createSeriesClientSideCollectionItemsSelector.js │ │ │ ├── createSeriesCountSelector.ts │ │ │ ├── createSeriesQualityProfileSelector.ts │ │ │ ├── createSeriesSelector.js │ │ │ ├── createSettingsSectionSelector.ts │ │ │ ├── createSortedSectionSelector.js │ │ │ ├── createSystemStatusSelector.ts │ │ │ ├── createTagDetailsSelector.ts │ │ │ ├── createTagsSelector.ts │ │ │ ├── createUISettingsSelector.ts │ │ │ └── selectSettings.js │ │ ├── createAppStore.js │ │ ├── scrollPositions.ts │ │ └── thunks.ts │ ├── Styles │ │ ├── Mixins │ │ │ ├── cover.css │ │ │ ├── linkOverlay.css │ │ │ ├── scroller.css │ │ │ └── truncate.css │ │ ├── Themes │ │ │ ├── dark.js │ │ │ ├── index.js │ │ │ └── light.js │ │ ├── Variables │ │ │ ├── animations.js │ │ │ ├── dimensions.js │ │ │ ├── fonts.js │ │ │ └── zIndexes.js │ │ ├── globals.css │ │ └── scaffolding.css │ ├── System │ │ ├── Backup │ │ │ ├── BackupRow.css │ │ │ ├── BackupRow.css.d.ts │ │ │ ├── BackupRow.js │ │ │ ├── Backups.js │ │ │ ├── BackupsConnector.js │ │ │ ├── RestoreBackupModal.js │ │ │ ├── RestoreBackupModalConnector.js │ │ │ ├── RestoreBackupModalContent.css │ │ │ ├── RestoreBackupModalContent.css.d.ts │ │ │ ├── RestoreBackupModalContent.js │ │ │ └── RestoreBackupModalContentConnector.js │ │ ├── Events │ │ │ ├── LogsTable.js │ │ │ ├── LogsTableConnector.js │ │ │ ├── LogsTableDetailsModal.css │ │ │ ├── LogsTableDetailsModal.css.d.ts │ │ │ ├── LogsTableDetailsModal.js │ │ │ ├── LogsTableRow.css │ │ │ ├── LogsTableRow.css.d.ts │ │ │ └── LogsTableRow.js │ │ ├── Logs │ │ │ ├── Files │ │ │ │ ├── LogFiles.js │ │ │ │ ├── LogFilesConnector.js │ │ │ │ ├── LogFilesTableRow.css │ │ │ │ ├── LogFilesTableRow.css.d.ts │ │ │ │ └── LogFilesTableRow.js │ │ │ ├── Logs.js │ │ │ ├── LogsNavMenu.js │ │ │ └── Updates │ │ │ │ └── UpdateLogFilesConnector.js │ │ ├── Status │ │ │ ├── About │ │ │ │ ├── About.css │ │ │ │ ├── About.css.d.ts │ │ │ │ ├── About.js │ │ │ │ ├── AboutConnector.js │ │ │ │ └── StartTime.js │ │ │ ├── DiskSpace │ │ │ │ ├── DiskSpace.css │ │ │ │ ├── DiskSpace.css.d.ts │ │ │ │ ├── DiskSpace.js │ │ │ │ └── DiskSpaceConnector.js │ │ │ ├── Health │ │ │ │ ├── Health.css │ │ │ │ ├── Health.css.d.ts │ │ │ │ ├── Health.js │ │ │ │ ├── HealthConnector.js │ │ │ │ └── HealthStatusConnector.js │ │ │ ├── MoreInfo │ │ │ │ └── MoreInfo.js │ │ │ └── Status.js │ │ ├── Tasks │ │ │ ├── Queued │ │ │ │ ├── QueuedTaskRow.css │ │ │ │ ├── QueuedTaskRow.css.d.ts │ │ │ │ ├── QueuedTaskRow.tsx │ │ │ │ ├── QueuedTaskRowNameCell.css │ │ │ │ ├── QueuedTaskRowNameCell.css.d.ts │ │ │ │ ├── QueuedTaskRowNameCell.tsx │ │ │ │ └── QueuedTasks.tsx │ │ │ ├── Scheduled │ │ │ │ ├── ScheduledTaskRow.css │ │ │ │ ├── ScheduledTaskRow.css.d.ts │ │ │ │ ├── ScheduledTaskRow.js │ │ │ │ ├── ScheduledTaskRowConnector.js │ │ │ │ ├── ScheduledTasks.js │ │ │ │ └── ScheduledTasksConnector.js │ │ │ └── Tasks.js │ │ └── Updates │ │ │ ├── UpdateChanges.css │ │ │ ├── UpdateChanges.css.d.ts │ │ │ ├── UpdateChanges.js │ │ │ ├── Updates.css │ │ │ ├── Updates.css.d.ts │ │ │ ├── Updates.js │ │ │ └── UpdatesConnector.js │ ├── Utilities │ │ ├── Array │ │ │ ├── getIndexOfFirstCharacter.js │ │ │ └── sortByName.js │ │ ├── Command │ │ │ ├── findCommand.js │ │ │ ├── index.js │ │ │ ├── isCommandComplete.js │ │ │ ├── isCommandExecuting.js │ │ │ ├── isCommandFailed.js │ │ │ └── isSameCommand.js │ │ ├── Constants │ │ │ └── keyCodes.js │ │ ├── Date │ │ │ ├── dateFilterPredicate.js │ │ │ ├── formatDate.js │ │ │ ├── formatDateTime.js │ │ │ ├── formatShortTimeSpan.js │ │ │ ├── formatTime.js │ │ │ ├── formatTimeSpan.js │ │ │ ├── getRelativeDate.js │ │ │ ├── isAfter.js │ │ │ ├── isBefore.js │ │ │ ├── isInNextWeek.js │ │ │ ├── isSameWeek.js │ │ │ ├── isToday.js │ │ │ ├── isTomorrow.js │ │ │ └── isYesterday.js │ │ ├── Episode │ │ │ └── updateEpisodes.js │ │ ├── Filter │ │ │ ├── findSelectedFilters.js │ │ │ └── getFilterValue.js │ │ ├── Number │ │ │ ├── convertToBytes.js │ │ │ ├── formatAge.js │ │ │ ├── formatBytes.js │ │ │ ├── formatCustomFormatScore.ts │ │ │ ├── formatRuntime.ts │ │ │ ├── padNumber.js │ │ │ └── roundNumber.js │ │ ├── Object │ │ │ ├── getErrorMessage.js │ │ │ ├── getRemovedItems.js │ │ │ ├── hasDifferentItems.js │ │ │ ├── hasDifferentItemsOrOrder.js │ │ │ └── selectUniqueIds.js │ │ ├── Quality │ │ │ └── getQualities.js │ │ ├── ResolutionUtility.js │ │ ├── Series │ │ │ ├── filterAlternateTitles.js │ │ │ ├── getNewSeries.js │ │ │ ├── getProgressBarKind.ts │ │ │ ├── monitorNewItemsOptions.js │ │ │ ├── monitorOptions.js │ │ │ └── seriesTypes.js │ │ ├── State │ │ │ ├── getNextId.js │ │ │ ├── getProviderState.js │ │ │ ├── getSectionState.js │ │ │ ├── selectProviderSchema.js │ │ │ └── updateSectionState.js │ │ ├── String │ │ │ ├── combinePath.js │ │ │ ├── generateUUIDv4.js │ │ │ ├── getLanguageName.ts │ │ │ ├── isString.js │ │ │ ├── naturalExpansion.js │ │ │ ├── parseUrl.js │ │ │ ├── split.js │ │ │ ├── titleCase.js │ │ │ └── translate.ts │ │ ├── Table │ │ │ ├── areAllSelected.js │ │ │ ├── getSelectedIds.ts │ │ │ ├── getToggledRange.js │ │ │ ├── removeOldSelectedState.js │ │ │ ├── selectAll.js │ │ │ └── toggleSelected.js │ │ ├── browser.js │ │ ├── createAjaxRequest.js │ │ ├── getPathWithUrlBase.js │ │ ├── getUniqueElementId.js │ │ ├── pagePopulator.js │ │ ├── pages.js │ │ ├── requestAction.js │ │ ├── scrollLock.js │ │ ├── sectionTypes.js │ │ └── serverSideCollectionHandlers.js │ ├── Wanted │ │ ├── CutoffUnmet │ │ │ ├── CutoffUnmet.js │ │ │ ├── CutoffUnmetConnector.js │ │ │ ├── CutoffUnmetRow.css │ │ │ ├── CutoffUnmetRow.css.d.ts │ │ │ ├── CutoffUnmetRow.js │ │ │ └── CutoffUnmetRowConnector.js │ │ └── Missing │ │ │ ├── Missing.js │ │ │ ├── MissingConnector.js │ │ │ ├── MissingRow.css │ │ │ ├── MissingRow.css.d.ts │ │ │ ├── MissingRow.js │ │ │ └── MissingRowConnector.js │ ├── bootstrap.tsx │ ├── index.css │ ├── index.css.d.ts │ ├── index.ejs │ ├── index.ts │ ├── login.html │ ├── oauth.html │ ├── polyfills.js │ └── typings │ │ ├── CalendarEventGroup.ts │ │ ├── CustomFormat.ts │ │ ├── DownloadClient.ts │ │ ├── History.ts │ │ ├── ImportList.ts │ │ ├── ImportListExclusion.ts │ │ ├── ImportListOptionsSettings.ts │ │ ├── Indexer.ts │ │ ├── IndexerFlag.ts │ │ ├── MediaInfo.ts │ │ ├── Notification.ts │ │ ├── QualityProfile.ts │ │ ├── Queue.ts │ │ ├── Rejection.ts │ │ ├── RootFolder.ts │ │ ├── SystemStatus.ts │ │ ├── UiSettings.ts │ │ ├── callbacks.ts │ │ ├── inputs.ts │ │ ├── pending.ts │ │ └── props.ts ├── tsconfig.json └── typings │ └── Globals.d.ts ├── global.json ├── package.json ├── schemas └── torznab.xsd ├── src ├── .globalconfig ├── Directory.Build.props ├── Directory.Build.targets ├── Libraries │ └── Interop.NetFwTypeLib.dll ├── NuGet.Config ├── NzbDrone.Api.Test │ ├── ClientSchemaTests │ │ └── SchemaBuilderFixture.cs │ ├── Sonarr.Api.Test.csproj │ └── v3 │ │ └── ReleaseProfiles │ │ └── ReleaseProfilesFixture.cs ├── NzbDrone.Automation.Test │ ├── AutomationTest.cs │ ├── AutomationTestAttribute.cs │ ├── MainPagesTest.cs │ ├── PageModel │ │ └── PageBase.cs │ ├── Sonarr.Automation.Test.csproj │ └── app.config ├── NzbDrone.Common.Test │ ├── CacheTests │ │ ├── CachedDictionaryFixture.cs │ │ ├── CachedFixture.cs │ │ └── CachedManagerFixture.cs │ ├── ConfigFileProviderTest.cs │ ├── DiskTests │ │ ├── DirectoryLookupServiceFixture.cs │ │ ├── DiskProviderFixtureBase.cs │ │ ├── DiskTransferServiceFixture.cs │ │ ├── FreeSpaceFixtureBase.cs │ │ ├── IsParentFixtureBase.cs │ │ └── MockMount.cs │ ├── EnsureTest │ │ └── PathExtensionFixture.cs │ ├── EnvironmentInfo │ │ └── BuildInfoFixture.cs │ ├── EnvironmentProviderTest.cs │ ├── EnvironmentTests │ │ ├── EnvironmentProviderTest.cs │ │ └── StartupArgumentsFixture.cs │ ├── ExtensionTests │ │ ├── FromOctalStringFixture.cs │ │ ├── IEnumerableExtensionTests │ │ │ ├── ExceptByFixture.cs │ │ │ └── IntersectByFixture.cs │ │ ├── IPAddressExtensionsFixture.cs │ │ ├── Int64ExtensionFixture.cs │ │ ├── StringExtensionTests │ │ │ ├── FirstCharacterToLowerFixture.cs │ │ │ ├── FirstCharcacterToUpperFixture.cs │ │ │ ├── IsValidIPAddressFixture.cs │ │ │ └── ReverseFixture.cs │ │ └── UrlExtensionsFixture.cs │ ├── HashUtilFixture.cs │ ├── Http │ │ ├── HttpClientFixture.cs │ │ ├── HttpHeaderFixture.cs │ │ ├── HttpRequestBuilderFixture.cs │ │ ├── HttpRequestFixture.cs │ │ ├── HttpUriFixture.cs │ │ └── UserAgentBuilderFixture.cs │ ├── InstrumentationTests │ │ ├── CleanseLogMessageFixture.cs │ │ └── SentryTargetFixture.cs │ ├── LevenshteinDistanceFixture.cs │ ├── OsPathFixture.cs │ ├── PathExtensionFixture.cs │ ├── ProcessProviderFixture.cs │ ├── ReflectionExtensions.cs │ ├── ReflectionTests │ │ └── ReflectionExtensionFixture.cs │ ├── ServiceFactoryFixture.cs │ ├── ServiceProviderFixture.cs │ ├── Sonarr.Common.Test.csproj │ ├── TPLTests │ │ ├── DebouncerFixture.cs │ │ └── RateLimitServiceFixture.cs │ └── app.config ├── NzbDrone.Common │ ├── ArchiveService.cs │ ├── Cache │ │ ├── CacheManager.cs │ │ ├── Cached.cs │ │ ├── CachedDictionary.cs │ │ ├── ICached.cs │ │ └── ICachedDictionary.cs │ ├── Cloud │ │ └── SonarrCloudRequestBuilder.cs │ ├── Composition │ │ ├── AssemblyLoader.cs │ │ ├── Extensions.cs │ │ └── KnownTypes.cs │ ├── ConsoleService.cs │ ├── ConvertBase32.cs │ ├── Crypto │ │ ├── HashConverter.cs │ │ └── HashProvider.cs │ ├── Disk │ │ ├── DestinationAlreadyExistsException.cs │ │ ├── DiskProviderBase.cs │ │ ├── DiskTransferService.cs │ │ ├── DriveInfoMount.cs │ │ ├── FileAlreadyExistsException.cs │ │ ├── FileSystemLookupService.cs │ │ ├── FileSystemModel.cs │ │ ├── FileSystemResult.cs │ │ ├── IDiskProvider.cs │ │ ├── IMount.cs │ │ ├── LongPathSupport.cs │ │ ├── MountOptions.cs │ │ ├── NotParentException.cs │ │ ├── OsPath.cs │ │ ├── PathValidationType.cs │ │ ├── RelativeFileSystemModel.cs │ │ ├── SystemFolders.cs │ │ └── TransferMode.cs │ ├── EnsureThat │ │ ├── Ensure.cs │ │ ├── EnsureBoolExtensions.cs │ │ ├── EnsureCollectionExtensions.cs │ │ ├── EnsureDateTimeExtensions.cs │ │ ├── EnsureDecimalExtensions.cs │ │ ├── EnsureDoubleExtensions.cs │ │ ├── EnsureGuidExtensions.cs │ │ ├── EnsureIntExtensions.cs │ │ ├── EnsureLongExtensions.cs │ │ ├── EnsureNullableValueTypeExtensions.cs │ │ ├── EnsureObjectExtensions.cs │ │ ├── EnsureShortExtensions.cs │ │ ├── EnsureStringExtensions.cs │ │ ├── EnsureTypeExtensions.cs │ │ ├── ExceptionFactory.cs │ │ ├── ExpressionExtensions.cs │ │ ├── Param.cs │ │ ├── Resources │ │ │ ├── ExceptionMessages.Designer.cs │ │ │ └── ExceptionMessages.resx │ │ └── TypeParam.cs │ ├── EnvironmentInfo │ │ ├── AppFolderFactory.cs │ │ ├── AppFolderInfo.cs │ │ ├── BuildInfo.cs │ │ ├── IOsVersionAdapter.cs │ │ ├── IRuntimeInfo.cs │ │ ├── OsInfo.cs │ │ ├── OsVersionModel.cs │ │ ├── PlatformInfo.cs │ │ ├── RuntimeInfo.cs │ │ ├── RuntimeMode.cs │ │ └── StartupContext.cs │ ├── Exceptions │ │ ├── NzbDroneException.cs │ │ └── SonarrStartupException.cs │ ├── Expansive │ │ ├── CircularReferenceException.cs │ │ ├── Expansive.cs │ │ ├── PatternStyle.cs │ │ ├── Tree.cs │ │ ├── TreeNode.cs │ │ ├── TreeNodeList.cs │ │ └── license.txt │ ├── Extensions │ │ ├── Base64Extensions.cs │ │ ├── DateTimeExtensions.cs │ │ ├── DictionaryExtensions.cs │ │ ├── ExceptionExtensions.cs │ │ ├── IEnumerableExtensions.cs │ │ ├── Int64Extensions.cs │ │ ├── IpAddressExtensions.cs │ │ ├── LevenstheinExtensions.cs │ │ ├── NullableExtensions.cs │ │ ├── ObjectExtensions.cs │ │ ├── PathExtensions.cs │ │ ├── RegexExtensions.cs │ │ ├── ResourceExtensions.cs │ │ ├── StreamExtensions.cs │ │ ├── StringExtensions.cs │ │ ├── TryParseExtensions.cs │ │ ├── UrlExtensions.cs │ │ └── XmlExtensions.cs │ ├── HashUtil.cs │ ├── Http │ │ ├── BasicNetworkCredential.cs │ │ ├── Dispatchers │ │ │ ├── ICertificationValidationService.cs │ │ │ ├── IHttpDispatcher.cs │ │ │ └── ManagedHttpDispatcher.cs │ │ ├── HttpAccept.cs │ │ ├── HttpClient.cs │ │ ├── HttpException.cs │ │ ├── HttpFormData.cs │ │ ├── HttpHeader.cs │ │ ├── HttpRequest.cs │ │ ├── HttpRequestBuilder.cs │ │ ├── HttpRequestBuilderFactory.cs │ │ ├── HttpResponse.cs │ │ ├── HttpUri.cs │ │ ├── IHttpRequestInterceptor.cs │ │ ├── JsonRpcRequestBuilder.cs │ │ ├── JsonRpcResponse.cs │ │ ├── Proxy │ │ │ ├── HttpProxySettings.cs │ │ │ ├── IHttpProxySettingsProvider.cs │ │ │ ├── ManagedWebProxyFactory.cs │ │ │ └── ProxyType.cs │ │ ├── TlsFailureException.cs │ │ ├── TooManyRequestsException.cs │ │ ├── UnexpectedHtmlContentException.cs │ │ ├── UserAgentBuilder.cs │ │ ├── UserAgentParser.cs │ │ └── XmlRpcRequestBuilder.cs │ ├── Instrumentation │ │ ├── CleanseLogMessage.cs │ │ ├── CleansingJsonVisitor.cs │ │ ├── Extensions │ │ │ ├── CompositionExtensions.cs │ │ │ ├── LoggerExtensions.cs │ │ │ └── SentryLoggerExtensions.cs │ │ ├── GlobalExceptionHandlers.cs │ │ ├── InitializeLogger.cs │ │ ├── LogEventExtensions.cs │ │ ├── NzbDroneFileTarget.cs │ │ ├── NzbDroneLogger.cs │ │ ├── Sentry │ │ │ ├── SentryCleanser.cs │ │ │ ├── SentryDebounce.cs │ │ │ └── SentryTarget.cs │ │ └── VersionLayoutRenderer.cs │ ├── Messaging │ │ ├── IEvent.cs │ │ └── IMessage.cs │ ├── Model │ │ └── ProcessInfo.cs │ ├── OAuth │ │ ├── LICENSE │ │ ├── OAuthRequest.cs │ │ ├── OAuthRequestType.cs │ │ ├── OAuthSignatureMethod.cs │ │ ├── OAuthSignatureTreatment.cs │ │ ├── OAuthTools.cs │ │ ├── WebParameter.cs │ │ └── WebParameterCollection.cs │ ├── PathEqualityComparer.cs │ ├── Processes │ │ ├── PidFileProvider.cs │ │ ├── ProcessOutput.cs │ │ ├── ProcessOutputLine.cs │ │ └── ProcessProvider.cs │ ├── Reflection │ │ └── ReflectionExtensions.cs │ ├── Serializer │ │ ├── Newtonsoft.Json │ │ │ ├── HttpUriConverter.cs │ │ │ ├── IntConverter.cs │ │ │ ├── Json.cs │ │ │ ├── JsonVisitor.cs │ │ │ └── UnderscoreStringEnumConverter.cs │ │ └── System.Text.Json │ │ │ ├── PolymorphicWriteOnlyJsonConverter.cs │ │ │ ├── STJHttpUriConverter.cs │ │ │ ├── STJTimeSpanConverter.cs │ │ │ ├── STJUtcConverter.cs │ │ │ ├── STJVersionConverter.cs │ │ │ └── STJson.cs │ ├── ServiceFactory.cs │ ├── ServiceProvider.cs │ ├── Sonarr.Common.csproj │ └── TPL │ │ ├── DebounceManager.cs │ │ ├── Debouncer.cs │ │ ├── LimitedConcurrencyLevelTaskScheduler.cs │ │ ├── RateLimitService.cs │ │ └── TaskExtensions.cs ├── NzbDrone.Console │ ├── ConsoleApp.cs │ └── Sonarr.Console.csproj ├── NzbDrone.Core.Test │ ├── AutoTagging │ │ └── AutoTaggingServiceFixture.cs │ ├── Blocklisting │ │ ├── BlocklistRepositoryFixture.cs │ │ └── BlocklistServiceFixture.cs │ ├── Configuration │ │ ├── ConfigCachingFixture.cs │ │ └── ConfigServiceFixture.cs │ ├── CustomFormats │ │ ├── CustomFormatsTestHelpers.cs │ │ └── Specifications │ │ │ └── LanguageSpecification │ │ │ ├── MultiLanguageFixture.cs │ │ │ ├── OriginalLanguageFixture.cs │ │ │ └── SingleLanguageFixture.cs │ ├── DataAugmentation │ │ ├── DailySeries │ │ │ └── DailySeriesDataProxyFixture.cs │ │ ├── Scene │ │ │ ├── SceneMappingProxyFixture.cs │ │ │ └── SceneMappingServiceFixture.cs │ │ └── SceneNumbering │ │ │ └── XemServiceFixture.cs │ ├── Datastore │ │ ├── BasicRepositoryFixture.cs │ │ ├── Converters │ │ │ ├── CommandConverterFixture.cs │ │ │ ├── DictionaryConverterFixture.cs │ │ │ ├── GuidConverterFixture.cs │ │ │ ├── OsPathConverterFixture.cs │ │ │ ├── ProviderSettingConverterFixture.cs │ │ │ ├── QualityIntConverterFixture.cs │ │ │ └── UtcConverterFixture.cs │ │ ├── DatabaseFixture.cs │ │ ├── DatabaseRelationshipFixture.cs │ │ ├── Migration │ │ │ ├── 070_delay_profileFixture.cs │ │ │ ├── 071_unknown_quality_in_profileFixture.cs │ │ │ ├── 072_history_downloadIdFixture.cs │ │ │ ├── 075_force_lib_updateFixture.cs │ │ │ ├── 079_dedupe_tagsFixture.cs │ │ │ ├── 081_move_dot_prefix_to_transmission_categoryFixture.cs │ │ │ ├── 084_update_quality_minmax_sizeFixture.cs │ │ │ ├── 085_expand_transmission_urlbaseFixture.cs │ │ │ ├── 086_pushbullet_device_idsFixture.cs │ │ │ ├── 088_pushbullet_devices_channels_listFixture.cs │ │ │ ├── 090_update_kickass_urlFixture.cs │ │ │ ├── 099_extra_and_subtitle_filesFixture.cs │ │ │ ├── 101_add_ultrahd_quality_in_profilesFixture.cs │ │ │ ├── 103_fix_metadata_file_extensionsFixture.cs │ │ │ ├── 106_update_btn_urlFixture.cs │ │ │ ├── 108_fix_metadata_file_extensionsFixture.cs │ │ │ ├── 109_import_extra_files_configFixture.cs │ │ │ ├── 110_fix_extra_files_configFixture.cs │ │ │ ├── 117_add_webrip_qualites_in_profileFixture.cs │ │ │ ├── 121_update_animetosho_urlFixture.cs │ │ │ ├── 122_add_remux_qualities_in_profileFixture.cs │ │ │ ├── 128_rename_quality_profiles_add_upgrade_allowedFixture.cs │ │ │ ├── 132_add_download_client_priorityFixture.cs │ │ │ ├── 148_mediainfo_channel_propertiesFixture.cs │ │ │ ├── 157_email_multiple_addressesFixture.cs │ │ │ ├── 158_cdh_per_downloadclientFixture.cs │ │ │ ├── 161_fix_pending_releasesFixture.cs │ │ │ ├── 171_add_custom_formatsFixture.cs │ │ │ ├── 184_remove_invalid_roksbox_metadata_imagesFixture.cs │ │ │ ├── 192_import_exclusion_typeFixture.cs │ │ │ ├── 195_parse_language_tags_from_existing_subtitle_filesFixture.cs │ │ │ ├── 198_parse_titles_from_existing_subtitle_filesFixture.cs │ │ │ ├── 201_email_encryptionFixture.cs │ │ │ └── 203_release_typeFixture.cs │ │ ├── ObjectDatabaseFixture.cs │ │ ├── SqliteSchemaDumperTests │ │ │ └── SqliteSchemaDumperFixture.cs │ │ ├── TableMapperFixture.cs │ │ ├── WhereBuilderPostgresFixture.cs │ │ └── WhereBuilderSqliteFixture.cs │ ├── DecisionEngineTests │ │ ├── AcceptableSizeSpecificationFixture.cs │ │ ├── AlreadyImportedSpecificationFixture.cs │ │ ├── AnimeVersionUpgradeSpecificationFixture.cs │ │ ├── BlockedIndexerSpecificationFixture.cs │ │ ├── CustomFormatAllowedByProfileSpecificationFixture.cs │ │ ├── CutoffSpecificationFixture.cs │ │ ├── DownloadDecisionMakerFixture.cs │ │ ├── FullSeasonSpecificationFixture.cs │ │ ├── MaximumSizeSpecificationFixture.cs │ │ ├── MinimumAgeSpecificationFixture.cs │ │ ├── MonitoredEpisodeSpecificationFixture.cs │ │ ├── MultiSeasonSpecificationFixture.cs │ │ ├── PrioritizeDownloadDecisionFixture.cs │ │ ├── ProtocolSpecificationFixture.cs │ │ ├── QualityAllowedByProfileSpecificationFixture.cs │ │ ├── QueueSpecificationFixture.cs │ │ ├── RawDiskSpecificationFixture.cs │ │ ├── ReleaseRestrictionsSpecificationFixture.cs │ │ ├── RepackSpecificationFixture.cs │ │ ├── RetentionSpecificationFixture.cs │ │ ├── RssSync │ │ │ ├── DelaySpecificationFixture.cs │ │ │ ├── DeletedEpisodeFileSpecificationFixture.cs │ │ │ ├── HistorySpecificationFixture.cs │ │ │ ├── IndexerTagSpecificationFixture.cs │ │ │ └── ProperSpecificationFixture.cs │ │ ├── SameEpisodesSpecificationFixture.cs │ │ ├── Search │ │ │ ├── SeriesSpecificationFixture.cs │ │ │ ├── SingleEpisodeSearchMatchSpecificationTests │ │ │ │ ├── AnimeSearchFixture.cs │ │ │ │ └── StandardEpisodeSearch.cs │ │ │ └── TorrentSeedingSpecificationFixture.cs │ │ ├── SingleEpisodeAgeDownloadDecisionFixture.cs │ │ ├── UpgradeAllowedSpecificationFixture .cs │ │ ├── UpgradeDiskSpecificationFixture.cs │ │ └── UpgradeSpecificationFixture.cs │ ├── DiskSpace │ │ └── DiskSpaceServiceFixture.cs │ ├── Download │ │ ├── Aggregation │ │ │ └── Aggregators │ │ │ │ └── AggregateLanguagesFixture.cs │ │ ├── CompletedDownloadServiceTests │ │ │ ├── ImportFixture.cs │ │ │ └── ProcessFixture.cs │ │ ├── DownloadApprovedReportsTests │ │ │ └── DownloadApprovedFixture.cs │ │ ├── DownloadClientProviderFixture.cs │ │ ├── DownloadClientStatusServiceFixture.cs │ │ ├── DownloadClientTests │ │ │ ├── Blackhole │ │ │ │ ├── ScanWatchFolderFixture.cs │ │ │ │ ├── TorrentBlackholeFixture.cs │ │ │ │ └── UsenetBlackholeFixture.cs │ │ │ ├── DelugeTests │ │ │ │ └── DelugeFixture.cs │ │ │ ├── DownloadClientFixtureBase.cs │ │ │ ├── DownloadStationTests │ │ │ │ ├── DownloadStationsTaskStatusJsonConverterFixture.cs │ │ │ │ ├── SerialNumberProviderFixture.cs │ │ │ │ ├── SharedFolderResolverFixture.cs │ │ │ │ ├── TorrentDownloadStationFixture.cs │ │ │ │ └── UsenetDownloadStationFixture.cs │ │ │ ├── FreeboxDownloadTests │ │ │ │ └── TorrentFreeboxDownloadFixture.cs │ │ │ ├── HadoukenTests │ │ │ │ └── HadoukenFixture.cs │ │ │ ├── NzbVortexTests │ │ │ │ └── NzbVortexFixture.cs │ │ │ ├── NzbgetTests │ │ │ │ └── NzbgetFixture.cs │ │ │ ├── PneumaticProviderFixture.cs │ │ │ ├── QBittorrentTests │ │ │ │ └── QBittorrentFixture.cs │ │ │ ├── RTorrentTests │ │ │ │ └── RTorrentFixture.cs │ │ │ ├── SabnzbdTests │ │ │ │ ├── JsonConvertersTests │ │ │ │ │ └── SabnzbdQueueTimeConverterFixture.cs │ │ │ │ └── SabnzbdFixture.cs │ │ │ ├── TransmissionTests │ │ │ │ ├── TransmissionFixture.cs │ │ │ │ └── TransmissionFixtureBase.cs │ │ │ ├── UTorrentTests │ │ │ │ └── UTorrentFixture.cs │ │ │ └── VuzeTests │ │ │ │ └── VuzeFixture.cs │ │ ├── DownloadHistoryTests │ │ │ └── DownloadHistoryRepositoryFixture.cs │ │ ├── DownloadServiceFixture.cs │ │ ├── FailedDownloadServiceTests │ │ │ ├── ProcessFailedFixture.cs │ │ │ └── ProcessFixture.cs │ │ ├── NzbValidationServiceFixture.cs │ │ ├── Pending │ │ │ └── PendingReleaseServiceTests │ │ │ │ ├── AddFixture.cs │ │ │ │ ├── PendingReleaseServiceFixture.cs │ │ │ │ ├── RemoveGrabbedFixture.cs │ │ │ │ ├── RemovePendingFixture.cs │ │ │ │ └── RemoveRejectedFixture.cs │ │ └── TrackedDownloads │ │ │ ├── TrackedDownloadAlreadyImportedFixture.cs │ │ │ └── TrackedDownloadServiceFixture.cs │ ├── Extras │ │ ├── ExtraServiceFixture.cs │ │ ├── Metadata │ │ │ └── Consumers │ │ │ │ ├── Roksbox │ │ │ │ └── FindMetadataFileFixture.cs │ │ │ │ ├── Wdtv │ │ │ │ └── FindMetadataFileFixture.cs │ │ │ │ └── Xbmc │ │ │ │ └── FindMetadataFileFixture.cs │ │ ├── Others │ │ │ └── OtherExtraServiceFixture.cs │ │ └── Subtitles │ │ │ └── SubtitleServiceFixture.cs │ ├── Files │ │ ├── Indexers │ │ │ ├── BroadcastheNet │ │ │ │ └── RecentFeed.json │ │ │ ├── Fanzub │ │ │ │ └── fanzub.xml │ │ │ ├── FileList │ │ │ │ └── RecentFeed.json │ │ │ ├── HdBits │ │ │ │ ├── RecentFeedLongIDs.json │ │ │ │ └── RecentFeedStringIDs.json │ │ │ ├── IPTorrents │ │ │ │ └── IPTorrents.xml │ │ │ ├── Newznab │ │ │ │ ├── newznab_caps.xml │ │ │ │ ├── newznab_language.xml │ │ │ │ ├── newznab_nzb_su.xml │ │ │ │ └── unauthorized.xml │ │ │ ├── Nyaa │ │ │ │ ├── Nyaa.xml │ │ │ │ └── Nyaa2021.xml │ │ │ ├── TorrentRss │ │ │ │ ├── AlphaRatio.xml │ │ │ │ ├── AnimeTosho_NoSize.xml │ │ │ │ ├── AwesomeHD.xml │ │ │ │ ├── BitHdtv.xml │ │ │ │ ├── Doki.xml │ │ │ │ ├── EvolutionWorld.xml │ │ │ │ ├── ExtraTorrents.xml │ │ │ │ ├── Ezrss.xml │ │ │ │ ├── ImmortalSeed.xml │ │ │ │ ├── LimeTorrents.xml │ │ │ │ ├── ShowRSS.info.xml │ │ │ │ ├── TransmitTheNet.xml │ │ │ │ ├── invalid │ │ │ │ │ ├── Eztv_InvalidSize.xml │ │ │ │ │ ├── ImmortalSeed_InvalidDownloadUrl.xml │ │ │ │ │ ├── ImmortalSeed_InvalidSize.xml │ │ │ │ │ └── TorrentDay_NoPubDate.xml │ │ │ │ └── speed.cd.xml │ │ │ ├── Torrentleech │ │ │ │ └── Torrentleech.xml │ │ │ ├── Torznab │ │ │ │ ├── torznab_animetosho.xml │ │ │ │ ├── torznab_hdaccess_net.xml │ │ │ │ └── torznab_tpb.xml │ │ │ └── relative_urls.xml │ │ ├── LongOverview.txt │ │ ├── Media │ │ │ └── H264_sample.mp4 │ │ ├── Nzbget │ │ │ ├── JsonError.txt │ │ │ ├── Queue.txt │ │ │ └── Queue_empty.txt │ │ ├── Nzbs │ │ │ ├── NewznabError.nzb │ │ │ ├── NoFiles.nzb │ │ │ ├── NotNzb.nzb │ │ │ └── ValidNzb.nzb │ │ ├── Queue.txt │ │ ├── QueueEmpty.txt │ │ ├── QueueUnknownPriority.txt │ │ ├── TestArchive.tar.gz │ │ ├── TestArchive.zip │ │ ├── Xem │ │ │ ├── Failure.txt │ │ │ ├── Ids.txt │ │ │ ├── Mappings.txt │ │ │ └── Names.txt │ │ ├── emptyfile.txt │ │ ├── html_image.jpg │ │ └── plex_watchlist.json │ ├── FluentTest.cs │ ├── Framework │ │ ├── CoreTest.cs │ │ ├── DbTest.cs │ │ ├── DbTestCleanup.cs │ │ ├── DirectDataMapper.cs │ │ ├── MigrationTest.cs │ │ ├── NBuilderExtensions.cs │ │ └── TestDatabase.cs │ ├── HealthCheck │ │ ├── Checks │ │ │ ├── AppDataLocationFixture.cs │ │ │ ├── DownloadClientCheckFixture.cs │ │ │ ├── DownloadClientRemovesCompletedDownloadsCheckFixture.cs │ │ │ ├── DownloadClientRootFolderCheckFixture.cs │ │ │ ├── DownloadClientSortingCheckFixture.cs │ │ │ ├── HealthCheckFixtureExtensions.cs │ │ │ ├── ImportListStatusCheckFixture.cs │ │ │ ├── ImportMechanismCheckFixture.cs │ │ │ ├── IndexerJackettAllCheckFixture.cs │ │ │ ├── IndexerLongTermStatusCheckFixture.cs │ │ │ ├── IndexerRssCheckFixture.cs │ │ │ ├── IndexerSearchCheckFixture.cs │ │ │ ├── IndexerStatusCheckFixture.cs │ │ │ ├── NotificationStatusCheckFixture.cs │ │ │ ├── RemotePathMappingCheckFixture.cs │ │ │ ├── RemovedSeriesCheckFixture.cs │ │ │ ├── RootFolderCheckFixture.cs │ │ │ ├── SystemTimeCheckFixture.cs │ │ │ └── UpdateCheckFixture.cs │ │ ├── HealthCheckFixture.cs │ │ └── HealthCheckServiceFixture.cs │ ├── HistoryTests │ │ ├── HistoryRepositoryFixture.cs │ │ └── HistoryServiceFixture.cs │ ├── Housekeeping │ │ └── Housekeepers │ │ │ ├── CleanupAbsolutePathMetadataFilesFixture.cs │ │ │ ├── CleanupAdditionalNamingSpecsFixture.cs │ │ │ ├── CleanupAdditionalUsersFixture.cs │ │ │ ├── CleanupDownloadClientUnavailablePendingReleasesFixture.cs │ │ │ ├── CleanupDuplicateMetadataFilesFixture.cs │ │ │ ├── CleanupOrphanedBlocklistFixture.cs │ │ │ ├── CleanupOrphanedEpisodeFilesFixture.cs │ │ │ ├── CleanupOrphanedEpisodesFixture.cs │ │ │ ├── CleanupOrphanedHistoryItemsFixture.cs │ │ │ ├── CleanupOrphanedImportListStatusFixture.cs │ │ │ ├── CleanupOrphanedIndexerStatusFixture.cs │ │ │ ├── CleanupOrphanedMetadataFilesFixture.cs │ │ │ ├── CleanupOrphanedNotificationStatusFixture.cs │ │ │ ├── CleanupOrphanedPendingReleasesFixture.cs │ │ │ ├── CleanupQualityProfileFormatItemsFixture.cs │ │ │ ├── CleanupUnusedTagsFixture.cs │ │ │ ├── DeleteBadMediaCovers.cs │ │ │ ├── FixFutureDownloadClientStatusTimesFixture.cs │ │ │ ├── FixFutureIndexerStatusTimesFixture.cs │ │ │ └── UpdateCleanTitleForSeriesFixture.cs │ ├── Http │ │ ├── HttpProxySettingsProviderFixture.cs │ │ └── TorCacheHttpRequestInterceptorFixture.cs │ ├── ImportListTests │ │ ├── FetchAndParseImportListFixture.cs │ │ ├── ImportListItemServiceFixture.cs │ │ ├── ImportListStatusServiceFixture.cs │ │ ├── ImportListSyncServiceFixture.cs │ │ └── Plex │ │ │ └── PlexParserFixture.cs │ ├── IndexerSearchTests │ │ ├── ReleaseSearchServiceFixture.cs │ │ ├── SearchDefinitionFixture.cs │ │ └── SeriesSearchServiceFixture.cs │ ├── IndexerTests │ │ ├── BasicRssParserFixture.cs │ │ ├── BroadcastheNetTests │ │ │ └── BroadcastheNetFixture.cs │ │ ├── FanzubTests │ │ │ ├── FanzubFixture.cs │ │ │ └── FanzubRequestGeneratorFixture.cs │ │ ├── FileListTests │ │ │ └── FileListFixture.cs │ │ ├── HDBitsTests │ │ │ └── HDBitsFixture.cs │ │ ├── IPTorrentsTests │ │ │ └── IPTorrentsFixture.cs │ │ ├── IndexerServiceFixture.cs │ │ ├── IndexerStatusServiceFixture.cs │ │ ├── IntegrationTests │ │ │ └── IndexerIntegrationTests.cs │ │ ├── NewznabTests │ │ │ ├── NewznabCapabilitiesProviderFixture.cs │ │ │ ├── NewznabFixture.cs │ │ │ ├── NewznabRequestGeneratorFixture.cs │ │ │ └── NewznabSettingFixture.cs │ │ ├── NyaaTests │ │ │ ├── NyaaFixture.cs │ │ │ └── NyaaRequestGeneratorFixture.cs │ │ ├── SeasonSearchFixture.cs │ │ ├── SeedConfigProviderFixture.cs │ │ ├── TestIndexer.cs │ │ ├── TestIndexerSettings.cs │ │ ├── TorrentRssIndexerTests │ │ │ ├── TestTorrentRssIndexer.cs │ │ │ ├── TorrentRssIndexerFixture.cs │ │ │ ├── TorrentRssParserFactoryFixture.cs │ │ │ └── TorrentRssSettingsDetectorFixture.cs │ │ ├── TorrentleechTests │ │ │ └── TorrentleechFixture.cs │ │ ├── TorznabTests │ │ │ └── TorznabFixture.cs │ │ └── XElementExtensionsFixture.cs │ ├── InstrumentationTests │ │ └── DatabaseTargetFixture.cs │ ├── JobTests │ │ ├── JobRepositoryFixture.cs │ │ └── TestJobs.cs │ ├── Languages │ │ └── LanguageFixture.cs │ ├── Localization │ │ └── LocalizationServiceFixture.cs │ ├── MediaCoverTests │ │ ├── CoverExistsSpecificationFixture.cs │ │ ├── ImageResizerFixture.cs │ │ └── MediaCoverServiceFixture.cs │ ├── MediaFiles │ │ ├── DiskScanServiceTests │ │ │ └── ScanFixture.cs │ │ ├── DownloadedEpisodesCommandServiceFixture.cs │ │ ├── DownloadedEpisodesImportServiceFixture.cs │ │ ├── EpisodeFileMovingServiceTests │ │ │ └── MoveEpisodeFileFixture.cs │ │ ├── EpisodeImport │ │ │ ├── Aggregation │ │ │ │ └── Aggregators │ │ │ │ │ ├── AggregateEpisodesFixture.cs │ │ │ │ │ ├── AggregateLanguageFixture.cs │ │ │ │ │ ├── AggregateQualityFixture.cs │ │ │ │ │ ├── AggregateReleaseGroupFixture.cs │ │ │ │ │ ├── AggregateReleaseHashFixture.cs │ │ │ │ │ ├── AggregateSubtitleInfoFixture.cs │ │ │ │ │ └── Augmenters │ │ │ │ │ ├── Language │ │ │ │ │ └── AugmentLanguageFromMediaInfoFixture.cs │ │ │ │ │ └── Quality │ │ │ │ │ ├── AugmentQualityFromMediaInfoFixture.cs │ │ │ │ │ └── AugmentQualityFromReleaseNameFixture.cs │ │ │ ├── DetectSampleFixture.cs │ │ │ ├── GetSceneNameFixture.cs │ │ │ ├── ImportApprovedEpisodesFixture.cs │ │ │ ├── ImportDecisionMakerFixture.cs │ │ │ └── Specifications │ │ │ │ ├── AbsoluteEpisodeNumberSpecificationFixture.cs │ │ │ │ ├── AlreadyImportedSpecificationFixture.cs │ │ │ │ ├── EpisodeTitleSpecificationFixture.cs │ │ │ │ ├── FreeSpaceSpecificationFixture.cs │ │ │ │ ├── FullSeasonSpecificationFixture.cs │ │ │ │ ├── MatchesFolderSpecificationFixture.cs │ │ │ │ ├── MatchesGrabSpecificationFixture.cs │ │ │ │ ├── NotSampleSpecificationFixture.cs │ │ │ │ ├── NotUnpackingSpecificationFixture.cs │ │ │ │ └── UpgradeSpecificationFixture.cs │ │ ├── MediaFileDeletionService │ │ │ └── DeleteEpisodeFileFixture.cs │ │ ├── MediaFileRepositoryFixture.cs │ │ ├── MediaFileServiceTests │ │ │ └── FilterFixture.cs │ │ ├── MediaFileTableCleanupServiceFixture.cs │ │ ├── MediaInfo │ │ │ ├── MediaInfoFormatterTests │ │ │ │ ├── FormatAudioCodecFixture.cs │ │ │ │ ├── FormatVideoCodecFixture.cs │ │ │ │ ├── FormatVideoDynamicRangeFixture.cs │ │ │ │ └── FormatVideoDynamicRangeTypeFixture.cs │ │ │ ├── UpdateMediaInfoServiceFixture.cs │ │ │ └── VideoFileInfoReaderFixture.cs │ │ ├── RenameEpisodeFileServiceFixture.cs │ │ └── UpgradeMediaFileServiceFixture.cs │ ├── Messaging │ │ ├── Commands │ │ │ ├── CommandEqualityComparerFixture.cs │ │ │ ├── CommandExecutorFixture.cs │ │ │ └── CommandQueueManagerFixture.cs │ │ └── Events │ │ │ └── EventAggregatorFixture.cs │ ├── MetadataSource │ │ ├── SearchSeriesComparerFixture.cs │ │ └── SkyHook │ │ │ ├── SkyHookProxyFixture.cs │ │ │ └── SkyHookProxySearchFixture.cs │ ├── NotificationTests │ │ ├── EmailTests │ │ │ └── EmailSettingsValidatorFixture.cs │ │ ├── NotificationBaseFixture.cs │ │ ├── NotificationStatusServiceFixture.cs │ │ ├── ProwlProviderTest.cs │ │ ├── SynologyIndexerFixture.cs │ │ └── Xbmc │ │ │ ├── Json │ │ │ ├── GetSeriesPathFixture.cs │ │ │ └── UpdateFixture.cs │ │ │ └── OnDownloadFixture.cs │ ├── OrganizerTests │ │ ├── BuildFilePathFixture.cs │ │ ├── CleanFilenameFixture.cs │ │ ├── FileNameBuilderTests │ │ │ ├── AbsoluteEpisodeFormatFixture.cs │ │ │ ├── CleanTitleFixture.cs │ │ │ ├── CleanTitleTheFixture.cs │ │ │ ├── CleanTitleTheWithoutYearFixture.cs │ │ │ ├── CleanTitleTheYearFixture.cs │ │ │ ├── CleanTitleWithoutYearFixture.cs │ │ │ ├── CleanTitleYearFixture.cs │ │ │ ├── ColonReplacementFixture.cs │ │ │ ├── CustomFormatsFixture.cs │ │ │ ├── EpisodeTitleCollapseFixture.cs │ │ │ ├── FileNameBuilderFixture.cs │ │ │ ├── IdFixture.cs │ │ │ ├── MultiEpisodeFixture.cs │ │ │ ├── MultiEpisodeTitleFixture.cs │ │ │ ├── OriginalTitleFixture.cs │ │ │ ├── ReplaceCharacterFixure.cs │ │ │ ├── RequiresAbsoluteEpisodeNumberFixture.cs │ │ │ ├── RequiresEpisodeTitleFixture.cs │ │ │ ├── ReservedDeviceNameFixture.cs │ │ │ ├── SeriesTitleFirstCharacterFixture.cs │ │ │ ├── SeriesYearFixture.cs │ │ │ ├── TitleTheFixture.cs │ │ │ ├── TitleTheWithoutYearFixture.cs │ │ │ ├── TitleTheYearFixture.cs │ │ │ ├── TitleWithoutYearFixture.cs │ │ │ ├── TitleYearFixture.cs │ │ │ ├── TruncatedEpisodeTitlesFixture.cs │ │ │ ├── TruncatedReleaseGroupFixture.cs │ │ │ └── TruncatedSeriesTitleFixture.cs │ │ ├── GetSeasonFolderFixture.cs │ │ └── GetSeriesFolderFixture.cs │ ├── ParserTests │ │ ├── AbsoluteEpisodeNumberParserFixture.cs │ │ ├── AnimeMetadataParserFixture.cs │ │ ├── AnimeVersionFixture.cs │ │ ├── CrapParserFixture.cs │ │ ├── DailyEpisodeParserFixture.cs │ │ ├── ExtendedQualityParserRegex.cs │ │ ├── HashedReleaseFixture.cs │ │ ├── IsPossibleSpecialEpisodeFixture.cs │ │ ├── IsoLanguagesFixture.cs │ │ ├── LanguageParserFixture.cs │ │ ├── MiniSeriesEpisodeParserFixture.cs │ │ ├── MultiEpisodeParserFixture.cs │ │ ├── NormalizeEpisodeTitleFixture.cs │ │ ├── NormalizeSeriesTitleFixture.cs │ │ ├── ParserFixture.cs │ │ ├── ParsingServiceTests │ │ │ ├── GetEpisodesFixture.cs │ │ │ ├── GetSeriesFixture.cs │ │ │ └── MapFixture.cs │ │ ├── PathParserFixture.cs │ │ ├── QualityParserFixture.cs │ │ ├── ReleaseGroupParserFixture.cs │ │ ├── SceneCheckerFixture.cs │ │ ├── SeasonParserFixture.cs │ │ ├── SeriesTitleInfoFixture.cs │ │ ├── SingleEpisodeParserFixture.cs │ │ ├── UnicodeReleaseParserFixture.cs │ │ ├── UrlFixture.cs │ │ └── ValidateParsedEpisodeInfoFixture.cs │ ├── Profiles │ │ ├── Delay │ │ │ └── DelayProfileServiceFixture.cs │ │ ├── ProfileRepositoryFixture.cs │ │ ├── Qualities │ │ │ └── QualityIndexCompareToFixture.cs │ │ └── QualityProfileServiceFixture.cs │ ├── ProviderTests │ │ ├── DiskProviderTests │ │ │ └── ArchiveProviderFixture.cs │ │ ├── DiskScanProviderTests │ │ │ └── GetVideoFilesFixture.cs │ │ └── RecycleBinProviderTests │ │ │ ├── CleanupFixture.cs │ │ │ ├── DeleteDirectoryFixture.cs │ │ │ ├── DeleteFileFixture.cs │ │ │ └── EmptyFixture.cs │ ├── Providers │ │ └── XemProxyFixture.cs │ ├── Qualities │ │ ├── QualityDefinitionServiceFixture.cs │ │ ├── QualityFinderFixture.cs │ │ ├── QualityFixture.cs │ │ ├── QualityModelComparerFixture.cs │ │ └── RevisionComparableFixture.cs │ ├── QueueTests │ │ └── QueueServiceFixture.cs │ ├── RemotePathMappingsTests │ │ └── RemotePathMappingServiceFixture.cs │ ├── RootFolderTests │ │ ├── GetBestRootFolderPathFixture.cs │ │ └── RootFolderServiceFixture.cs │ ├── SeriesStatsTests │ │ └── SeriesStatisticsFixture.cs │ ├── Sonarr.Core.Test.csproj │ ├── ThingiProviderTests │ │ ├── NullConfigFixture.cs │ │ ├── ProviderBaseFixture.cs │ │ └── ProviderStatusServiceFixture.cs │ ├── TvTests │ │ ├── AddSeriesFixture.cs │ │ ├── EpisodeMonitoredServiceTests │ │ │ ├── LegacySetEpisodeMontitoredFixture.cs │ │ │ └── SetEpisodeMontitoredFixture.cs │ │ ├── EpisodeRepositoryTests │ │ │ ├── EpisodesBetweenDatesFixture.cs │ │ │ ├── EpisodesRepositoryReadFixture.cs │ │ │ ├── EpisodesWhereCutoffUnmetFixture.cs │ │ │ ├── EpisodesWithFilesFixture.cs │ │ │ ├── EpisodesWithoutFilesFixture.cs │ │ │ └── FindEpisodeFixture.cs │ │ ├── EpisodeServiceTests │ │ │ ├── ByAirDateFixture.cs │ │ │ ├── FindEpisodeByTitleFixture.cs │ │ │ └── HandleEpisodeFileDeletedFixture.cs │ │ ├── MoveSeriesServiceFixture.cs │ │ ├── RefreshEpisodeServiceFixture.cs │ │ ├── RefreshSeriesServiceFixture.cs │ │ ├── SeriesFolderPathBuilderFixture.cs │ │ ├── SeriesRepositoryTests │ │ │ └── SeriesRepositoryFixture.cs │ │ ├── SeriesServiceTests │ │ │ ├── UpdateMultipleSeriesFixture.cs │ │ │ └── UpdateSeriesFixture.cs │ │ ├── SeriesTitleNormalizerFixture.cs │ │ ├── SeriesTitleSlugValidatorFixture.cs │ │ └── ShouldRefreshSeriesFixture.cs │ ├── UpdateTests │ │ ├── UpdatePackageProviderFixture.cs │ │ └── UpdateServiceFixture.cs │ ├── ValidationTests │ │ └── SystemFolderValidatorFixture.cs │ ├── XbmcVersionTests.cs │ └── app.config ├── NzbDrone.Core │ ├── Analytics │ │ └── AnalyticsService.cs │ ├── Annotations │ │ ├── FieldDefinitionAttribute.cs │ │ ├── SelectOption.cs │ │ └── SelectOptionsConverter.cs │ ├── Authentication │ │ ├── AuthenticationRequiredType.cs │ │ ├── AuthenticationType.cs │ │ ├── User.cs │ │ ├── UserRepository.cs │ │ └── UserService.cs │ ├── AutoTagging │ │ ├── AutoTag.cs │ │ ├── AutoTaggingChanges.cs │ │ ├── AutoTaggingRepository.cs │ │ ├── AutoTaggingService.cs │ │ ├── SpecificationMatchesGroup.cs │ │ └── Specifications │ │ │ ├── AutoTagSpecificationBase.cs │ │ │ ├── GenreSpecification.cs │ │ │ ├── IAutoTagSpecification.cs │ │ │ ├── MonitoredSpecification.cs │ │ │ ├── OriginalLanguageSpecification.cs │ │ │ ├── QualityProfileSpecification.cs │ │ │ ├── RootFolderSpecification.cs │ │ │ ├── SeriesTypeSpecification.cs │ │ │ ├── StatusSpecification.cs │ │ │ └── YearSpecification.cs │ ├── Backup │ │ ├── Backup.cs │ │ ├── BackupCommand.cs │ │ ├── BackupService.cs │ │ ├── MakeDatabaseBackup.cs │ │ └── RestoreBackupFailedException.cs │ ├── Blocklisting │ │ ├── Blocklist.cs │ │ ├── BlocklistRepository.cs │ │ ├── BlocklistService.cs │ │ └── ClearBlocklistCommand.cs │ ├── Configuration │ │ ├── Config.cs │ │ ├── ConfigFileProvider.cs │ │ ├── ConfigRepository.cs │ │ ├── ConfigService.cs │ │ ├── DeploymentInfoProvider.cs │ │ ├── Events │ │ │ ├── ConfigFileSavedEvent.cs │ │ │ └── ConfigSavedEvent.cs │ │ ├── IConfigService.cs │ │ ├── InvalidConfigFileException.cs │ │ ├── RescanAfterRefreshType.cs │ │ └── ResetApiKeyCommand.cs │ ├── CustomFilters │ │ ├── CustomFilter.cs │ │ ├── CustomFilterRepository.cs │ │ └── CustomFilterService.cs │ ├── CustomFormats │ │ ├── CustomFormat.cs │ │ ├── CustomFormatCalculationService.cs │ │ ├── CustomFormatInput.cs │ │ ├── CustomFormatRepository.cs │ │ ├── CustomFormatService.cs │ │ ├── Events │ │ │ ├── CustomFormatAddedEvent.cs │ │ │ └── CustomFormatDeletedEvent.cs │ │ ├── SpecificationMatchesGroup.cs │ │ └── Specifications │ │ │ ├── CustomFormatSpecificationBase.cs │ │ │ ├── ICustomFormatSpecification.cs │ │ │ ├── IndexerFlagSpecification.cs │ │ │ ├── LanguageSpecification.cs │ │ │ ├── RegexSpecificationBase.cs │ │ │ ├── ReleaseGroupSpecification.cs │ │ │ ├── ReleaseTitleSpecification.cs │ │ │ ├── ReleaseTypeSpecification.cs │ │ │ ├── ResolutionSpecification.cs │ │ │ ├── SizeSpecification.cs │ │ │ └── SourceSpecification.cs │ ├── DataAugmentation │ │ ├── DailySeries │ │ │ ├── DailySeries.cs │ │ │ ├── DailySeriesDataProxy.cs │ │ │ └── DailySeriesService.cs │ │ ├── Scene │ │ │ ├── ISceneMappingProvider.cs │ │ │ ├── InvalidSceneMappingException.cs │ │ │ ├── SceneMapping.cs │ │ │ ├── SceneMappingProxy.cs │ │ │ ├── SceneMappingRepository.cs │ │ │ ├── SceneMappingService.cs │ │ │ ├── SceneMappingsUpdatedEvent.cs │ │ │ ├── SearchMode.cs │ │ │ ├── ServicesProvider.cs │ │ │ └── UpdateSceneMappingCommand.cs │ │ └── Xem │ │ │ ├── Model │ │ │ ├── XemResult.cs │ │ │ ├── XemSceneTvdbMapping.cs │ │ │ └── XemValues.cs │ │ │ ├── XemProxy.cs │ │ │ └── XemService.cs │ ├── Datastore │ │ ├── BasicRepository.cs │ │ ├── ConnectionStringFactory.cs │ │ ├── Converters │ │ │ ├── AutoTagSpecificationConverter.cs │ │ │ ├── CommandConverter.cs │ │ │ ├── CustomFormatIntConverter.cs │ │ │ ├── CustomFormatSpecificationConverter.cs │ │ │ ├── EmbeddedDocumentConverter.cs │ │ │ ├── GuidConverter.cs │ │ │ ├── LanguageIntConverter.cs │ │ │ ├── OsPathConverter.cs │ │ │ ├── ProviderSettingConverter.cs │ │ │ ├── QualityIntConverter.cs │ │ │ ├── StringConverter.cs │ │ │ ├── StringListConverter.cs │ │ │ ├── SystemVersionConverter.cs │ │ │ └── UtcConverter.cs │ │ ├── CorruptDatabaseException.cs │ │ ├── Database.cs │ │ ├── DatabaseConnectionInfo.cs │ │ ├── DatabaseRestorationService.cs │ │ ├── DbFactory.cs │ │ ├── Events │ │ │ └── ModelEvent.cs │ │ ├── ExpressionVisitor.cs │ │ ├── Extensions │ │ │ ├── BuilderExtensions.cs │ │ │ ├── CompositionExtensions.cs │ │ │ ├── MappingExtensions.cs │ │ │ └── SqlMapperExtensions.cs │ │ ├── IEmbeddedDocument.cs │ │ ├── LazyLoaded.cs │ │ ├── LazyLoadedConverterFactory.cs │ │ ├── LogDatabase.cs │ │ ├── MainDatabase.cs │ │ ├── Migration │ │ │ ├── 000_database_engine_version_check.cs │ │ │ ├── 001_initial_setup.cs │ │ │ ├── 002_remove_tvrage_imdb_unique_constraint.cs │ │ │ ├── 003_remove_clean_title_from_scene_mapping.cs │ │ │ ├── 004_updated_history.cs │ │ │ ├── 005_added_eventtype_to_history.cs │ │ │ ├── 006_add_index_to_log_time.cs │ │ │ ├── 007_add_renameEpisodes_to_naming.cs │ │ │ ├── 008_remove_backlog.cs │ │ │ ├── 009_fix_renameEpisodes.cs │ │ │ ├── 010_add_monitored.cs │ │ │ ├── 011_remove_ignored.cs │ │ │ ├── 012_remove_custom_start_date.cs │ │ │ ├── 013_add_air_date_utc.cs │ │ │ ├── 014_drop_air_date.cs │ │ │ ├── 015_add_air_date_as_string.cs │ │ │ ├── 016_updated_imported_history_item.cs │ │ │ ├── 017_reset_scene_names.cs │ │ │ ├── 018_remove_duplicates.cs │ │ │ ├── 019_restore_unique_constraints.cs │ │ │ ├── 020_add_year_and_seasons_to_series.cs │ │ │ ├── 021_drop_seasons_table.cs │ │ │ ├── 022_move_indexer_to_generic_provider.cs │ │ │ ├── 023_add_config_contract_to_indexers.cs │ │ │ ├── 024_drop_tvdb_episodeid.cs │ │ │ ├── 025_move_notification_to_generic_provider.cs │ │ │ ├── 026_add_config_contract_to_notifications.cs │ │ │ ├── 027_fix_omgwtfnzbs.cs │ │ │ ├── 028_add_blacklist_table.cs │ │ │ ├── 029_add_formats_to_naming_config.cs │ │ │ ├── 030_add_season_folder_format_to_naming_config.cs │ │ │ ├── 031_delete_old_naming_config_columns.cs │ │ │ ├── 032_set_default_release_group.cs │ │ │ ├── 033_add_api_key_to_pushover.cs │ │ │ ├── 034_remove_series_contraints.cs │ │ │ ├── 035_add_series_folder_format_to_naming_config.cs │ │ │ ├── 036_update_with_quality_converters.cs │ │ │ ├── 037_add_configurable_qualities.cs │ │ │ ├── 038_add_on_upgrade_to_notifications.cs │ │ │ ├── 039_add_metadata_tables.cs │ │ │ ├── 040_add_metadata_to_episodes_and_series.cs │ │ │ ├── 041_fix_xbmc_season_images_metadata.cs │ │ │ ├── 042_add_download_clients_table.cs │ │ │ ├── 043_convert_config_to_download_clients.cs │ │ │ ├── 044_fix_xbmc_episode_metadata.cs │ │ │ ├── 045_add_indexes.cs │ │ │ ├── 046_fix_nzb_su_url.cs │ │ │ ├── 047_add_published_date_blacklist_column.cs │ │ │ ├── 048_add_title_to_scenemappings.cs │ │ │ ├── 049_fix_dognzb_url.cs │ │ │ ├── 050_add_hash_to_metadata_files.cs │ │ │ ├── 051_download_client_import.cs │ │ │ ├── 052_add_columns_for_anime.cs │ │ │ ├── 053_add_series_sorttitle.cs │ │ │ ├── 054_rename_profiles.cs │ │ │ ├── 055_drop_old_profile_columns.cs │ │ │ ├── 056_add_mediainfo_to_episodefile.cs │ │ │ ├── 057_convert_episode_file_path_to_relative.cs │ │ │ ├── 058_drop_epsiode_file_path.cs │ │ │ ├── 059_add_enable_options_to_indexers.cs │ │ │ ├── 060_remove_enable_from_indexers.cs │ │ │ ├── 061_clear_bad_scene_names.cs │ │ │ ├── 062_convert_quality_models.cs │ │ │ ├── 063_add_remotepathmappings.cs │ │ │ ├── 064_add_remove_method_from_logs.cs │ │ │ ├── 065_make_scene_numbering_nullable.cs │ │ │ ├── 066_add_tags.cs │ │ │ ├── 067_add_added_to_series.cs │ │ │ ├── 068_add_release_restrictions.cs │ │ │ ├── 069_quality_proper.cs │ │ │ ├── 070_delay_profile.cs │ │ │ ├── 071_unknown_quality_in_profile.cs │ │ │ ├── 072_history_grabid.cs │ │ │ ├── 073_clear_ratings.cs │ │ │ ├── 074_disable_eztv.cs │ │ │ ├── 075_force_lib_update.cs │ │ │ ├── 076_add_users_table.cs │ │ │ ├── 077_add_add_options_to_series.cs │ │ │ ├── 078_add_commands_table.cs │ │ │ ├── 079_dedupe_tags.cs │ │ │ ├── 081_move_dot_prefix_to_transmission_category.cs │ │ │ ├── 082_add_fanzub_settings.cs │ │ │ ├── 083_additonal_blacklist_columns.cs │ │ │ ├── 084_update_quality_minmax_size.cs │ │ │ ├── 085_expand_transmission_urlbase.cs │ │ │ ├── 086_pushbullet_device_ids.cs │ │ │ ├── 087_remove_eztv.cs │ │ │ ├── 088_pushbullet_devices_channels_list.cs │ │ │ ├── 089_add_on_rename_to_notifcations.cs │ │ │ ├── 090_update_kickass_url.cs │ │ │ ├── 091_added_indexerstatus.cs │ │ │ ├── 092_add_unverifiedscenenumbering.cs │ │ │ ├── 093_naming_config_replace_characters.cs │ │ │ ├── 094_add_tvmazeid.cs │ │ │ ├── 095_add_additional_episodes_index.cs │ │ │ ├── 096_disable_kickass.cs │ │ │ ├── 097_add_release_to_pending_releases.cs │ │ │ ├── 098_remove_titans_of_tv.cs │ │ │ ├── 099_extra_and_subtitle_files.cs │ │ │ ├── 100_add_scene_season_number.cs │ │ │ ├── 101_add_ultrahd_quality_in_profiles.cs │ │ │ ├── 102_add_language_to_episodeFiles_history_and_blacklist.cs │ │ │ ├── 103_fix_metadata_file_extensions.cs │ │ │ ├── 104_remove_kickass.cs │ │ │ ├── 105_rename_torrent_downloadstation.cs │ │ │ ├── 106_update_btn_url.cs │ │ │ ├── 107_remove_wombles.cs │ │ │ ├── 108_fix_extra_file_extension.cs │ │ │ ├── 109_import_extra_files.cs │ │ │ ├── 110_fix_extra_files_config.cs │ │ │ ├── 111_create_language_profiles.cs │ │ │ ├── 112_added_regex_to_scenemapping.cs │ │ │ ├── 113_consolidate_indexer_baseurl.cs │ │ │ ├── 114_rename_indexer_status_id.cs │ │ │ ├── 115_add_downloadclient_status.cs │ │ │ ├── 116_disable_nyaa.cs │ │ │ ├── 117_add_webrip_and_br480_qualites_in_profile.cs │ │ │ ├── 118_add_history_eventType_index.cs │ │ │ ├── 119_separate_automatic_and_interactive_searches.cs │ │ │ ├── 120_update_series_episodes_history_indexes.cs │ │ │ ├── 121_update_animetosho_url.cs │ │ │ ├── 122_add_remux_qualities_in_profile.cs │ │ │ ├── 123_add_history_seriesId_index.cs │ │ │ ├── 124_remove_media_browser_metadata.cs │ │ │ ├── 125_remove_notify_my_android_and_pushalot_notifications.cs │ │ │ ├── 126_add_custom_filters.cs │ │ │ ├── 127_rename_release_profiles.cs │ │ │ ├── 128_rename_quality_profiles_add_upgrade_allowed.cs │ │ │ ├── 129_add_relative_original_path_to_episode_file.cs │ │ │ ├── 130_episode_last_searched_time.cs │ │ │ ├── 131_download_propers_config.cs │ │ │ ├── 132_add_download_client_priority.cs │ │ │ ├── 134_add_specials_folder_format.cs │ │ │ ├── 135_health_issue_notification.cs │ │ │ ├── 136_add_indexer_and_enabled_release_profiles.cs │ │ │ ├── 137_add_airedbefore_to_episodes.cs │ │ │ ├── 138_remove_bitmetv.cs │ │ │ ├── 139_add_download_history.cs │ │ │ ├── 140_remove_chown_and_folderchmod_config.cs │ │ │ ├── 141_add_update_history.cs │ │ │ ├── 142_import_lists.cs │ │ │ ├── 143_add_priority_to_indexers.cs │ │ │ ├── 144_import_lists_series_type_and_season_folder.cs │ │ │ ├── 145_remove_growl.cs │ │ │ ├── 146_cleanup_duplicates_updatehistory.cs │ │ │ ├── 147_swap_filechmod_for_folderchmod.cs │ │ │ ├── 148_mediainfo_channels.cs │ │ │ ├── 149_add_on_delete_to_notifications.cs │ │ │ ├── 150_add_scene_mapping_origin.cs │ │ │ ├── 151_remove_custom_filter_type.cs │ │ │ ├── 152_update_btn_url_to_https.cs │ │ │ ├── 153_add_on_episodefiledelete_for_upgrade.cs │ │ │ ├── 154_add_name_release_profile.cs │ │ │ ├── 155_add_arabic_and_hindi_languages.cs │ │ │ ├── 156_add_bypass_to_delay_profile.cs │ │ │ ├── 157_email_multiple_addresses.cs │ │ │ ├── 158_cdh_per_downloadclient.cs │ │ │ ├── 159_add_indexer_tags.cs │ │ │ ├── 160_rename_blacklist_to_blocklist.cs │ │ │ ├── 161_remove_plex_hometheater.cs │ │ │ ├── 162_release_profile_to_array.cs │ │ │ ├── 163_mediainfo_to_ffmpeg.cs │ │ │ ├── 164_download_client_per_indexer.cs │ │ │ ├── 165_add_on_update_to_notifications.cs │ │ │ ├── 166_update_series_sort_title.cs │ │ │ ├── 167_add_tvdbid_to_episode.cs │ │ │ ├── 168_add_additional_info_to_pending_releases.cs │ │ │ ├── 169_add_malayalam _and_ukrainian_languages.cs │ │ │ ├── 170_add_language_tags_to_subtitle_files.cs │ │ │ ├── 171_add_custom_formats.cs │ │ │ ├── 172_add_SeasonSearchMaximumSingleEpisodeAge_to_indexers.cs │ │ │ ├── 173_remove_omg.cs │ │ │ ├── 174_add_salt_to_users.cs │ │ │ ├── 175_language_profiles_to_custom_formats.cs │ │ │ ├── 176_original_language.cs │ │ │ ├── 177_add_on_manual_interaction_required_to_notifications.cs │ │ │ ├── 178_list_sync_time.cs │ │ │ ├── 179_add_auto_tagging.cs │ │ │ ├── 180_task_duration.cs │ │ │ ├── 181_quality_definition_preferred_size.cs │ │ │ ├── 182_add_bypass_to_delay_profile.cs │ │ │ ├── 183_update_images_remote_url.cs │ │ │ ├── 184_remove_invalid_roksbox_metadata_images.cs │ │ │ ├── 185_add_episode_runtime.cs │ │ │ ├── 186_add_result_to_commands.cs │ │ │ ├── 187_add_on_series_add_to_notifications.cs │ │ │ ├── 188_postgres_update_timestamp_columns_to_with_timezone.cs │ │ │ ├── 189_add_colon_replacement_to_naming_config.cs │ │ │ ├── 190_health_restored_notification.cs │ │ │ ├── 191_add_download_client_tags.cs │ │ │ ├── 192_import_exclusion_type.cs │ │ │ ├── 193_add_import_list_items.cs │ │ │ ├── 194_add_notification_status.cs │ │ │ ├── 195_parse_language_tags_from_existing_subtitle_files.cs │ │ │ ├── 196_add_finale_type.cs │ │ │ ├── 197_list_add_missing_search.cs │ │ │ ├── 198_parse_titles_from_existing_subtitle_files.cs │ │ │ ├── 199_series_last_aired.cs │ │ │ ├── 200_monitor_new_items.cs │ │ │ ├── 201_email_encryption.cs │ │ │ ├── 202_add_indexer_flags.cs │ │ │ ├── 203_release_type.cs │ │ │ ├── 204_add_release_hash.cs │ │ │ ├── 205_rename_season_pack_spec.cs │ │ │ └── Framework │ │ │ │ ├── MigrationContext.cs │ │ │ │ ├── MigrationController.cs │ │ │ │ ├── MigrationExtension.cs │ │ │ │ ├── MigrationType.cs │ │ │ │ ├── NzbDroneMigrationBase.cs │ │ │ │ ├── NzbDroneSqliteProcessor.cs │ │ │ │ ├── SqliteSchemaDumper.cs │ │ │ │ ├── SqliteSyntaxReader.cs │ │ │ │ └── TableDefinition.cs │ │ ├── ModelBase.cs │ │ ├── ModelConflictException.cs │ │ ├── ModelNotFoundException.cs │ │ ├── PagingSpec.cs │ │ ├── PostgresOptions.cs │ │ ├── ResultSet.cs │ │ ├── SqlBuilder.cs │ │ ├── TableMapper.cs │ │ ├── TableMapping.cs │ │ ├── WhereBuilder.cs │ │ ├── WhereBuilderPostgres.cs │ │ └── WhereBuilderSqlite.cs │ ├── DecisionEngine │ │ ├── Decision.cs │ │ ├── DownloadDecision.cs │ │ ├── DownloadDecisionComparer.cs │ │ ├── DownloadDecisionMaker.cs │ │ ├── DownloadDecisionPriorizationService.cs │ │ ├── IRejectWithReason.cs │ │ ├── Rejection.cs │ │ ├── RejectionType.cs │ │ ├── SpecificationPriority.cs │ │ └── Specifications │ │ │ ├── AcceptableSizeSpecification.cs │ │ │ ├── AlreadyImportedSpecification.cs │ │ │ ├── AnimeVersionUpgradeSpecification.cs │ │ │ ├── BlockedIndexerSpecification.cs │ │ │ ├── BlocklistSpecification.cs │ │ │ ├── CustomFormatAllowedByProfileSpecification.cs │ │ │ ├── CutoffSpecification.cs │ │ │ ├── FullSeasonSpecification.cs │ │ │ ├── IDecisionEngineSpecification.cs │ │ │ ├── MaximumSizeSpecification.cs │ │ │ ├── MinimumAgeSpecification.cs │ │ │ ├── MultiSeasonSpecification.cs │ │ │ ├── NotSampleSpecification.cs │ │ │ ├── ProtocolSpecification.cs │ │ │ ├── QualityAllowedByProfileSpecification.cs │ │ │ ├── QueueSpecification.cs │ │ │ ├── RawDiskSpecification.cs │ │ │ ├── ReleaseRestrictionsSpecification.cs │ │ │ ├── RepackSpecification.cs │ │ │ ├── RetentionSpecification.cs │ │ │ ├── RssSync │ │ │ ├── DelaySpecification.cs │ │ │ ├── DeletedEpisodeFileSpecification.cs │ │ │ ├── HistorySpecification.cs │ │ │ ├── IndexerTagSpecification.cs │ │ │ ├── MonitoredEpisodeSpecification.cs │ │ │ └── ProperSpecification.cs │ │ │ ├── SameEpisodesGrabSpecification.cs │ │ │ ├── SameEpisodesSpecification.cs │ │ │ ├── SceneMappingSpecification.cs │ │ │ ├── Search │ │ │ ├── EpisodeRequestedSpecification.cs │ │ │ ├── SeasonMatchSpecification.cs │ │ │ ├── SeriesSpecification.cs │ │ │ └── SingleEpisodeSearchMatchSpecification.cs │ │ │ ├── SeasonPackOnlySpecification.cs │ │ │ ├── SplitEpisodeSpecification.cs │ │ │ ├── TorrentSeedingSpecification.cs │ │ │ ├── UpgradableSpecification.cs │ │ │ ├── UpgradeAllowedSpecification.cs │ │ │ └── UpgradeDiskSpecification.cs │ ├── DiskSpace │ │ ├── DiskSpace.cs │ │ └── DiskSpaceService.cs │ ├── Download │ │ ├── Aggregation │ │ │ ├── Aggregators │ │ │ │ ├── AggregateLanguages.cs │ │ │ │ └── IAggregateRemoteEpisode.cs │ │ │ └── RemoteEpisodeAggregationService.cs │ │ ├── CheckForFinishedDownloadCommand.cs │ │ ├── Clients │ │ │ ├── Aria2 │ │ │ │ ├── Aria2.cs │ │ │ │ ├── Aria2Containers.cs │ │ │ │ ├── Aria2Proxy.cs │ │ │ │ └── Aria2Settings.cs │ │ │ ├── Blackhole │ │ │ │ ├── ScanWatchFolder.cs │ │ │ │ ├── TorrentBlackhole.cs │ │ │ │ ├── TorrentBlackholeSettings.cs │ │ │ │ ├── UsenetBlackhole.cs │ │ │ │ ├── UsenetBlackholeSettings.cs │ │ │ │ └── WatchFolderItem.cs │ │ │ ├── Deluge │ │ │ │ ├── Deluge.cs │ │ │ │ ├── DelugeError.cs │ │ │ │ ├── DelugeException.cs │ │ │ │ ├── DelugeLabel.cs │ │ │ │ ├── DelugePriority.cs │ │ │ │ ├── DelugeProxy.cs │ │ │ │ ├── DelugeSettings.cs │ │ │ │ ├── DelugeTorrent.cs │ │ │ │ ├── DelugeTorrentStatus.cs │ │ │ │ └── DelugeUpdateUIResult.cs │ │ │ ├── DownloadClientAuthenticationException.cs │ │ │ ├── DownloadClientException.cs │ │ │ ├── DownloadClientUnavailableException.cs │ │ │ ├── DownloadStation │ │ │ │ ├── DiskStationApi.cs │ │ │ │ ├── DiskStationApiInfo.cs │ │ │ │ ├── DownloadStation2Task.cs │ │ │ │ ├── DownloadStationSettings.cs │ │ │ │ ├── DownloadStationTask.cs │ │ │ │ ├── DownloadStationTaskAdditional.cs │ │ │ │ ├── DownloadStationTaskFile.cs │ │ │ │ ├── Proxies │ │ │ │ │ ├── DSMInfoProxy.cs │ │ │ │ │ ├── DiskStationProxyBase.cs │ │ │ │ │ ├── DownloadStationInfoProxy.cs │ │ │ │ │ ├── DownloadStationTaskProxySelector.cs │ │ │ │ │ ├── DownloadStationTaskProxyV1.cs │ │ │ │ │ ├── DownloadStationTaskProxyV2.cs │ │ │ │ │ └── FileStationProxy.cs │ │ │ │ ├── Responses │ │ │ │ │ ├── DSMInfoResponse.cs │ │ │ │ │ ├── DiskStationAuthResponse.cs │ │ │ │ │ ├── DiskStationError.cs │ │ │ │ │ ├── DiskStationInfoResponse.cs │ │ │ │ │ ├── DiskStationResponse.cs │ │ │ │ │ ├── DownloadStation2TaskInfoResponse.cs │ │ │ │ │ ├── DownloadStationTaskInfoResponse.cs │ │ │ │ │ ├── FileStationListFileInfoResponse.cs │ │ │ │ │ └── FileStationListResponse.cs │ │ │ │ ├── SerialNumberProvider.cs │ │ │ │ ├── SharedFolderMapping.cs │ │ │ │ ├── SharedFolderResolver.cs │ │ │ │ ├── TorrentDownloadStation.cs │ │ │ │ └── UsenetDownloadStation.cs │ │ │ ├── Flood │ │ │ │ ├── Flood.cs │ │ │ │ ├── FloodProxy.cs │ │ │ │ ├── FloodSettings.cs │ │ │ │ ├── Models │ │ │ │ │ └── AdditionalTags.cs │ │ │ │ └── Types │ │ │ │ │ ├── FloodClientSettings.cs │ │ │ │ │ ├── Torrent.cs │ │ │ │ │ ├── TorrentContent.cs │ │ │ │ │ └── TorrentListSummary.cs │ │ │ ├── FreeboxDownload │ │ │ │ ├── FreeboxDownloadEncoding.cs │ │ │ │ ├── FreeboxDownloadException.cs │ │ │ │ ├── FreeboxDownloadPriority.cs │ │ │ │ ├── FreeboxDownloadProxy.cs │ │ │ │ ├── FreeboxDownloadSettings.cs │ │ │ │ ├── Responses │ │ │ │ │ ├── FreeboxDownloadConfiguration.cs │ │ │ │ │ ├── FreeboxDownloadTask.cs │ │ │ │ │ ├── FreeboxLogin.cs │ │ │ │ │ └── FreeboxResponse.cs │ │ │ │ └── TorrentFreeboxDownload.cs │ │ │ ├── Hadouken │ │ │ │ ├── Hadouken.cs │ │ │ │ ├── HadoukenProxy.cs │ │ │ │ ├── HadoukenSettings.cs │ │ │ │ └── Models │ │ │ │ │ ├── HadoukenSystemInfo.cs │ │ │ │ │ ├── HadoukenTorrent.cs │ │ │ │ │ ├── HadoukenTorrentResponse.cs │ │ │ │ │ └── HadoukenTorrentState.cs │ │ │ ├── NzbVortex │ │ │ │ ├── JsonConverters │ │ │ │ │ ├── NzbVortexLoginResultTypeConverter.cs │ │ │ │ │ └── NzbVortexResultTypeConverter.cs │ │ │ │ ├── NzbVortex.cs │ │ │ │ ├── NzbVortexAuthenticationException.cs │ │ │ │ ├── NzbVortexFile.cs │ │ │ │ ├── NzbVortexGroup.cs │ │ │ │ ├── NzbVortexJsonError.cs │ │ │ │ ├── NzbVortexLoginResultType.cs │ │ │ │ ├── NzbVortexNotLoggedInException.cs │ │ │ │ ├── NzbVortexPriority.cs │ │ │ │ ├── NzbVortexProxy.cs │ │ │ │ ├── NzbVortexQueueItem.cs │ │ │ │ ├── NzbVortexResultType.cs │ │ │ │ ├── NzbVortexSettings.cs │ │ │ │ ├── NzbVortexStateType.cs │ │ │ │ └── Responses │ │ │ │ │ ├── NzbVortexAddResponse.cs │ │ │ │ │ ├── NzbVortexApiVersionResponse.cs │ │ │ │ │ ├── NzbVortexAuthNonceResponse.cs │ │ │ │ │ ├── NzbVortexAuthResponse.cs │ │ │ │ │ ├── NzbVortexFilesResponse.cs │ │ │ │ │ ├── NzbVortexGroupResponse.cs │ │ │ │ │ ├── NzbVortexQueueResponse.cs │ │ │ │ │ ├── NzbVortexResponseBase.cs │ │ │ │ │ ├── NzbVortexRetryResponse.cs │ │ │ │ │ └── NzbVortexVersionResponse.cs │ │ │ ├── Nzbget │ │ │ │ ├── ErrorModel.cs │ │ │ │ ├── JsonError.cs │ │ │ │ ├── Nzbget.cs │ │ │ │ ├── NzbgetCategory.cs │ │ │ │ ├── NzbgetConfigItem.cs │ │ │ │ ├── NzbgetGlobalStatus.cs │ │ │ │ ├── NzbgetHistoryItem.cs │ │ │ │ ├── NzbgetParameter.cs │ │ │ │ ├── NzbgetPostQueueItem.cs │ │ │ │ ├── NzbgetPriority.cs │ │ │ │ ├── NzbgetProxy.cs │ │ │ │ ├── NzbgetQueueItem.cs │ │ │ │ ├── NzbgetResponse.cs │ │ │ │ └── NzbgetSettings.cs │ │ │ ├── Pneumatic │ │ │ │ ├── Pneumatic.cs │ │ │ │ └── PneumaticSettings.cs │ │ │ ├── QBittorrent │ │ │ │ ├── QBittorrent.cs │ │ │ │ ├── QBittorrentContentLayout.cs │ │ │ │ ├── QBittorrentLabel.cs │ │ │ │ ├── QBittorrentPreferences.cs │ │ │ │ ├── QBittorrentPriority.cs │ │ │ │ ├── QBittorrentProxySelector.cs │ │ │ │ ├── QBittorrentProxyV1.cs │ │ │ │ ├── QBittorrentProxyV2.cs │ │ │ │ ├── QBittorrentSettings.cs │ │ │ │ ├── QBittorrentState.cs │ │ │ │ └── QBittorrentTorrent.cs │ │ │ ├── Sabnzbd │ │ │ │ ├── JsonConverters │ │ │ │ │ ├── SabnzbdPriorityTypeConverter.cs │ │ │ │ │ ├── SabnzbdQueueTimeConverter.cs │ │ │ │ │ └── SabnzbdStringArrayConverter.cs │ │ │ │ ├── Responses │ │ │ │ │ ├── SabnzbdAddResponse.cs │ │ │ │ │ ├── SabnzbdCategoryResponse.cs │ │ │ │ │ ├── SabnzbdConfigResponse.cs │ │ │ │ │ ├── SabnzbdFullStatusResponse.cs │ │ │ │ │ ├── SabnzbdRetryResponse.cs │ │ │ │ │ └── SabnzbdVersionResponse.cs │ │ │ │ ├── Sabnzbd.cs │ │ │ │ ├── SabnzbdCategory.cs │ │ │ │ ├── SabnzbdDownloadStatus.cs │ │ │ │ ├── SabnzbdFullStatus.cs │ │ │ │ ├── SabnzbdHistory.cs │ │ │ │ ├── SabnzbdHistoryItem.cs │ │ │ │ ├── SabnzbdJsonError.cs │ │ │ │ ├── SabnzbdPriority.cs │ │ │ │ ├── SabnzbdProxy.cs │ │ │ │ ├── SabnzbdQueue.cs │ │ │ │ ├── SabnzbdQueueItem.cs │ │ │ │ └── SabnzbdSettings.cs │ │ │ ├── TorrentSeedConfiguration.cs │ │ │ ├── Transmission │ │ │ │ ├── Transmission.cs │ │ │ │ ├── TransmissionBase.cs │ │ │ │ ├── TransmissionConfig.cs │ │ │ │ ├── TransmissionException.cs │ │ │ │ ├── TransmissionPriority.cs │ │ │ │ ├── TransmissionProxy.cs │ │ │ │ ├── TransmissionResponse.cs │ │ │ │ ├── TransmissionSettings.cs │ │ │ │ ├── TransmissionTorrent.cs │ │ │ │ └── TransmissionTorrentStatus.cs │ │ │ ├── Vuze │ │ │ │ └── Vuze.cs │ │ │ ├── rTorrent │ │ │ │ ├── RTorrent.cs │ │ │ │ ├── RTorrentDirectoryValidator.cs │ │ │ │ ├── RTorrentFault.cs │ │ │ │ ├── RTorrentPriority.cs │ │ │ │ ├── RTorrentProxy.cs │ │ │ │ ├── RTorrentSettings.cs │ │ │ │ └── RTorrentTorrent.cs │ │ │ └── uTorrent │ │ │ │ ├── UTorrent.cs │ │ │ │ ├── UTorrentPriority.cs │ │ │ │ ├── UTorrentProxy.cs │ │ │ │ ├── UTorrentResponse.cs │ │ │ │ ├── UTorrentSettings.cs │ │ │ │ ├── UTorrentTorrent.cs │ │ │ │ ├── UTorrentTorrentCache.cs │ │ │ │ ├── UTorrentTorrentStatus.cs │ │ │ │ └── UtorrentState.cs │ │ ├── CompletedDownloadService.cs │ │ ├── DownloadCanBeRemovedEvent.cs │ │ ├── DownloadClientBase.cs │ │ ├── DownloadClientDefinition.cs │ │ ├── DownloadClientFactory.cs │ │ ├── DownloadClientInfo.cs │ │ ├── DownloadClientItem.cs │ │ ├── DownloadClientProvider.cs │ │ ├── DownloadClientRepository.cs │ │ ├── DownloadClientStatus.cs │ │ ├── DownloadClientStatusRepository.cs │ │ ├── DownloadClientStatusService.cs │ │ ├── DownloadClientType.cs │ │ ├── DownloadCompletedEvent.cs │ │ ├── DownloadEventHub.cs │ │ ├── DownloadFailedEvent.cs │ │ ├── DownloadIgnoredEvent.cs │ │ ├── DownloadItemStatus.cs │ │ ├── DownloadProcessingService.cs │ │ ├── DownloadSeedConfigProvider.cs │ │ ├── DownloadService.cs │ │ ├── DownloadsProcessedEvent.cs │ │ ├── EpisodeGrabbedEvent.cs │ │ ├── Extensions │ │ │ └── XmlExtensions.cs │ │ ├── FailedDownloadService.cs │ │ ├── History │ │ │ ├── DownloadHistory.cs │ │ │ ├── DownloadHistoryRepository.cs │ │ │ └── DownloadHistoryService.cs │ │ ├── IDownloadClient.cs │ │ ├── IgnoredDownloadService.cs │ │ ├── InvalidNzbException.cs │ │ ├── ManualInteractionRequiredEvent.cs │ │ ├── NzbValidationService.cs │ │ ├── Pending │ │ │ ├── PendingRelease.cs │ │ │ ├── PendingReleaseReason.cs │ │ │ ├── PendingReleaseRepository.cs │ │ │ ├── PendingReleaseService.cs │ │ │ └── PendingReleasesUpdatedEvent.cs │ │ ├── ProcessDownloadDecisions.cs │ │ ├── ProcessMonitoredDownloadsCommand.cs │ │ ├── ProcessedDecisionResult.cs │ │ ├── ProcessedDecisions.cs │ │ ├── ProvideImportItemService.cs │ │ ├── RedownloadFailedDownloadService.cs │ │ ├── RefreshMonitoredDownloadsCommand.cs │ │ ├── TorrentClientBase.cs │ │ ├── TrackedDownloads │ │ │ ├── DownloadMonitoringService.cs │ │ │ ├── TrackedDownload.cs │ │ │ ├── TrackedDownloadAlreadyImported.cs │ │ │ ├── TrackedDownloadRefreshedEvent.cs │ │ │ ├── TrackedDownloadService.cs │ │ │ ├── TrackedDownloadStatusMessage.cs │ │ │ └── TrackedDownloadsRemovedEvent.cs │ │ └── UsenetClientBase.cs │ ├── Exceptions │ │ ├── BadRequestException.cs │ │ ├── DownloadClientRejectedReleaseException.cs │ │ ├── DownstreamException.cs │ │ ├── NzbDroneClientException.cs │ │ ├── ReleaseBlockedException.cs │ │ ├── ReleaseDownloadException.cs │ │ ├── ReleaseUnavailableException.cs │ │ ├── SearchFailedException.cs │ │ ├── SeriesNotFoundException.cs │ │ └── StatusCodeToExceptions.cs │ ├── Extras │ │ ├── ExistingExtraFileService.cs │ │ ├── ExtraService.cs │ │ ├── Files │ │ │ ├── ExtraFile.cs │ │ │ ├── ExtraFileManager.cs │ │ │ ├── ExtraFileRepository.cs │ │ │ └── ExtraFileService.cs │ │ ├── IImportExistingExtraFiles.cs │ │ ├── ImportExistingExtraFileFilterResult.cs │ │ ├── ImportExistingExtraFilesBase.cs │ │ ├── Metadata │ │ │ ├── Consumers │ │ │ │ ├── Plex │ │ │ │ │ ├── PlexMetadata.cs │ │ │ │ │ └── PlexMetadataSettings.cs │ │ │ │ ├── Roksbox │ │ │ │ │ ├── RoksboxMetadata.cs │ │ │ │ │ └── RoksboxMetadataSettings.cs │ │ │ │ ├── Wdtv │ │ │ │ │ ├── WdtvMetadata.cs │ │ │ │ │ └── WdtvMetadataSettings.cs │ │ │ │ └── Xbmc │ │ │ │ │ ├── KodiEpisodeGuide.cs │ │ │ │ │ ├── XbmcMetadata.cs │ │ │ │ │ ├── XbmcMetadataSettings.cs │ │ │ │ │ └── XbmcNfoDetector.cs │ │ │ ├── ExistingMetadataImporter.cs │ │ │ ├── Files │ │ │ │ ├── CleanMetadataFileService.cs │ │ │ │ ├── ImageFileResult.cs │ │ │ │ ├── MetadataFile.cs │ │ │ │ ├── MetadataFileRepository.cs │ │ │ │ ├── MetadataFileResult.cs │ │ │ │ └── MetadataFileService.cs │ │ │ ├── IMetadata.cs │ │ │ ├── MetadataBase.cs │ │ │ ├── MetadataDefinition.cs │ │ │ ├── MetadataFactory.cs │ │ │ ├── MetadataRepository.cs │ │ │ ├── MetadataSectionType.cs │ │ │ ├── MetadataService.cs │ │ │ └── MetadataType.cs │ │ ├── Others │ │ │ ├── ExistingOtherExtraImporter.cs │ │ │ ├── OtherExtraFile.cs │ │ │ ├── OtherExtraFileRenamer.cs │ │ │ ├── OtherExtraFileRepository.cs │ │ │ ├── OtherExtraFileService.cs │ │ │ └── OtherExtraService.cs │ │ └── Subtitles │ │ │ ├── ExistingSubtitleImporter.cs │ │ │ ├── ImportedSubtitleFiles.cs │ │ │ ├── SubtitleFile.cs │ │ │ ├── SubtitleFileExtensions.cs │ │ │ ├── SubtitleFileRepository.cs │ │ │ ├── SubtitleFileService.cs │ │ │ └── SubtitleService.cs │ ├── Fluent.cs │ ├── Hashing.cs │ ├── HealthCheck │ │ ├── CheckHealthCommand.cs │ │ ├── CheckOnAttribute.cs │ │ ├── Checks │ │ │ ├── ApiKeyValidationCheck.cs │ │ │ ├── AppDataLocationCheck.cs │ │ │ ├── DownloadClientCheck.cs │ │ │ ├── DownloadClientRemovesCompletedDownloadsCheck.cs │ │ │ ├── DownloadClientRootFolderCheck.cs │ │ │ ├── DownloadClientSortingCheck.cs │ │ │ ├── DownloadClientStatusCheck.cs │ │ │ ├── ImportListRootFolderCheck.cs │ │ │ ├── ImportListStatusCheck.cs │ │ │ ├── ImportMechanismCheck.cs │ │ │ ├── IndexerDownloadClientCheck.cs │ │ │ ├── IndexerJackettAllCheck.cs │ │ │ ├── IndexerLongTermStatusCheck.cs │ │ │ ├── IndexerRssCheck.cs │ │ │ ├── IndexerSearchCheck.cs │ │ │ ├── IndexerStatusCheck.cs │ │ │ ├── MountCheck.cs │ │ │ ├── NotificationStatusCheck.cs │ │ │ ├── PackageGlobalMessageCheck.cs │ │ │ ├── ProxyCheck.cs │ │ │ ├── RecyclingBinCheck.cs │ │ │ ├── RemotePathMappingCheck.cs │ │ │ ├── RemovedSeriesCheck.cs │ │ │ ├── RootFolderCheck.cs │ │ │ ├── SystemTimeCheck.cs │ │ │ └── UpdateCheck.cs │ │ ├── EventDrivenHealthCheck.cs │ │ ├── HealthCheck.cs │ │ ├── HealthCheckBase.cs │ │ ├── HealthCheckCompleteEvent.cs │ │ ├── HealthCheckFailedEvent.cs │ │ ├── HealthCheckRestoredEvent.cs │ │ ├── HealthCheckService.cs │ │ ├── ICheckOnCondition.cs │ │ ├── IProvideHealthCheck.cs │ │ └── ServerSideNotificationService.cs │ ├── History │ │ ├── EpisodeHistory.cs │ │ ├── HistoryRepository.cs │ │ └── HistoryService.cs │ ├── Housekeeping │ │ ├── Housekeepers │ │ │ ├── CleanupAbsolutePathMetadataFiles.cs │ │ │ ├── CleanupAdditionalNamingSpecs.cs │ │ │ ├── CleanupAdditionalUsers.cs │ │ │ ├── CleanupCommandQueue.cs │ │ │ ├── CleanupDownloadClientUnavailablePendingReleases.cs │ │ │ ├── CleanupDuplicateMetadataFiles.cs │ │ │ ├── CleanupOrphanedBlocklist.cs │ │ │ ├── CleanupOrphanedDownloadClientStatus.cs │ │ │ ├── CleanupOrphanedEpisodeFiles.cs │ │ │ ├── CleanupOrphanedEpisodes.cs │ │ │ ├── CleanupOrphanedHistoryItems.cs │ │ │ ├── CleanupOrphanedImportListStatus.cs │ │ │ ├── CleanupOrphanedIndexerStatus.cs │ │ │ ├── CleanupOrphanedMetadataFiles.cs │ │ │ ├── CleanupOrphanedNotificationStatus.cs │ │ │ ├── CleanupOrphanedPendingReleases.cs │ │ │ ├── CleanupQualityProfileFormatItems.cs │ │ │ ├── CleanupTemporaryUpdateFiles.cs │ │ │ ├── CleanupUnusedTags.cs │ │ │ ├── DeleteBadMediaCovers.cs │ │ │ ├── FixFutureDownloadClientStatusTimes.cs │ │ │ ├── FixFutureImportListStatusTimes.cs │ │ │ ├── FixFutureIndexerStatusTimes.cs │ │ │ ├── FixFutureNotificationStatusTimes.cs │ │ │ ├── FixFutureProviderStatusTimes.cs │ │ │ ├── FixFutureRunScheduledTasks.cs │ │ │ ├── TrimLogDatabase.cs │ │ │ └── UpdateCleanTitleForSeries.cs │ │ ├── HousekeepingCommand.cs │ │ ├── HousekeepingService.cs │ │ └── IHousekeepingTask.cs │ ├── Http │ │ ├── CloudFlare │ │ │ ├── CloudFlareCaptchaException.cs │ │ │ ├── CloudFlareCaptchaRequest.cs │ │ │ └── CloudFlareHttpInterceptor.cs │ │ ├── HttpProxySettingsProvider.cs │ │ └── TorcacheHttpInterceptor.cs │ ├── ImportLists │ │ ├── AniList │ │ │ ├── AniListAPI.cs │ │ │ ├── AniListImportBase.cs │ │ │ ├── AniListSettingsBase.cs │ │ │ ├── AniListTypes.cs │ │ │ └── List │ │ │ │ ├── AniListImport.cs │ │ │ │ ├── AniListParser.cs │ │ │ │ ├── AniListRequestGenerator.cs │ │ │ │ └── AniListSettings.cs │ │ ├── Custom │ │ │ ├── CustomAPIResource.cs │ │ │ ├── CustomImport.cs │ │ │ ├── CustomImportProxy.cs │ │ │ └── CustomSettings.cs │ │ ├── Exceptions │ │ │ └── ImportListException.cs │ │ ├── Exclusions │ │ │ ├── ImportListExclusion.cs │ │ │ ├── ImportListExclusionExistsValidator.cs │ │ │ ├── ImportListExclusionRepository.cs │ │ │ └── ImportListExclusionService.cs │ │ ├── FetchAndParseImportListService.cs │ │ ├── HttpImportListBase.cs │ │ ├── IImportList.cs │ │ ├── IImportListRequestGenerator.cs │ │ ├── IImportListSettings.cs │ │ ├── IProcessImportListResponse.cs │ │ ├── Imdb │ │ │ ├── ImdbListImport.cs │ │ │ ├── ImdbListParser.cs │ │ │ ├── ImdbListRequestGenerator.cs │ │ │ └── ImdbListSettings.cs │ │ ├── ImportListBase.cs │ │ ├── ImportListDefinition.cs │ │ ├── ImportListFactory.cs │ │ ├── ImportListItems │ │ │ ├── ImportListItemRepository.cs │ │ │ └── ImportListItemService.cs │ │ ├── ImportListPageableRequest.cs │ │ ├── ImportListPageableRequestChain.cs │ │ ├── ImportListRepository.cs │ │ ├── ImportListRequest.cs │ │ ├── ImportListResponse.cs │ │ ├── ImportListStatus.cs │ │ ├── ImportListStatusRepository.cs │ │ ├── ImportListStatusService.cs │ │ ├── ImportListSyncCommand.cs │ │ ├── ImportListSyncService.cs │ │ ├── ImportListType.cs │ │ ├── ImportListUpdatedHandler.cs │ │ ├── ListSyncLevelType.cs │ │ ├── Plex │ │ │ ├── PlexImport.cs │ │ │ ├── PlexListRequestGenerator.cs │ │ │ ├── PlexListSettings.cs │ │ │ └── PlexParser.cs │ │ ├── Rss │ │ │ ├── Plex │ │ │ │ ├── PlexRssImport.cs │ │ │ │ ├── PlexRssImportParser.cs │ │ │ │ └── PlexRssImportSettings.cs │ │ │ ├── RssImportBase.cs │ │ │ ├── RssImportBaseParser.cs │ │ │ ├── RssImportBaseSettings.cs │ │ │ └── RssImportRequestGenerator.cs │ │ ├── Simkl │ │ │ ├── SimklAPI.cs │ │ │ ├── SimklImportBase.cs │ │ │ ├── SimklParser.cs │ │ │ ├── SimklSettingsBase.cs │ │ │ └── User │ │ │ │ ├── SimklUserImport.cs │ │ │ │ ├── SimklUserListType.cs │ │ │ │ ├── SimklUserRequestGenerator.cs │ │ │ │ ├── SimklUserSettings.cs │ │ │ │ └── SimklUserShowType.cs │ │ ├── Sonarr │ │ │ ├── SonarrAPIResource.cs │ │ │ ├── SonarrImport.cs │ │ │ ├── SonarrSettings.cs │ │ │ └── SonarrV3Proxy.cs │ │ ├── TolerantEnumConverter.cs │ │ └── Trakt │ │ │ ├── List │ │ │ ├── TraktListImport.cs │ │ │ ├── TraktListRequestGenerator.cs │ │ │ └── TraktListSettings.cs │ │ │ ├── Popular │ │ │ ├── TraktPopularImport.cs │ │ │ ├── TraktPopularListType.cs │ │ │ ├── TraktPopularParser.cs │ │ │ ├── TraktPopularRequestGenerator.cs │ │ │ └── TraktPopularSettings.cs │ │ │ ├── TraktAPI.cs │ │ │ ├── TraktImportBase.cs │ │ │ ├── TraktParser.cs │ │ │ ├── TraktSettingsBase.cs │ │ │ └── User │ │ │ ├── TraktUserImport.cs │ │ │ ├── TraktUserListType.cs │ │ │ ├── TraktUserParser.cs │ │ │ ├── TraktUserRequestGenerator.cs │ │ │ ├── TraktUserSettings.cs │ │ │ └── TraktUserWatchedListType.cs │ ├── IndexerSearch │ │ ├── CutoffUnmetEpisodeSearchCommand.cs │ │ ├── Definitions │ │ │ ├── AnimeEpisodeSearchCriteria.cs │ │ │ ├── AnimeSeasonSearchCriteria.cs │ │ │ ├── DailyEpisodeSearchCriteria.cs │ │ │ ├── DailySeasonSearchCriteria.cs │ │ │ ├── SceneEpisodeMapping.cs │ │ │ ├── SceneSeasonMapping.cs │ │ │ ├── SearchCriteriaBase.cs │ │ │ ├── SeasonSearchCriteria.cs │ │ │ ├── SingleEpisodeSearchCriteria.cs │ │ │ └── SpecialEpisodeSearchCriteria.cs │ │ ├── EpisodeSearchCommand.cs │ │ ├── EpisodeSearchGroup.cs │ │ ├── EpisodeSearchService.cs │ │ ├── MissingEpisodeSearchCommand.cs │ │ ├── ReleaseSearchService.cs │ │ ├── SeasonSearchCommand.cs │ │ ├── SeasonSearchService.cs │ │ ├── SeriesSearchCommand.cs │ │ └── SeriesSearchService.cs │ ├── Indexers │ │ ├── BroadcastheNet │ │ │ ├── BroadcastheNet.cs │ │ │ ├── BroadcastheNetParser.cs │ │ │ ├── BroadcastheNetRequestGenerator.cs │ │ │ ├── BroadcastheNetSettings.cs │ │ │ ├── BroadcastheNetTorrent.cs │ │ │ ├── BroadcastheNetTorrentQuery.cs │ │ │ └── BroadcastheNetTorrents.cs │ │ ├── DownloadProtocol.cs │ │ ├── Exceptions │ │ │ ├── ApiKeyException.cs │ │ │ ├── IndexerException.cs │ │ │ ├── RequestLimitReachedException.cs │ │ │ ├── SizeParsingException.cs │ │ │ └── UnsupportedFeedException.cs │ │ ├── EzrssTorrentRssParser.cs │ │ ├── Fanzub │ │ │ ├── Fanzub.cs │ │ │ ├── FanzubRequestGenerator.cs │ │ │ └── FanzubSettings.cs │ │ ├── FetchAndParseRssService.cs │ │ ├── FileList │ │ │ ├── FileList.cs │ │ │ ├── FileListParser.cs │ │ │ ├── FileListRequestGenerator.cs │ │ │ ├── FileListSettings.cs │ │ │ └── FileListTorrent.cs │ │ ├── HDBits │ │ │ ├── HDBits.cs │ │ │ ├── HDBitsApi.cs │ │ │ ├── HDBitsParser.cs │ │ │ ├── HDBitsRequestGenerator.cs │ │ │ └── HDBitsSettings.cs │ │ ├── HttpIndexerBase.cs │ │ ├── IIndexer.cs │ │ ├── IIndexerRequestGenerator.cs │ │ ├── IIndexerSettings.cs │ │ ├── IPTorrents │ │ │ ├── IPTorrents.cs │ │ │ ├── IPTorrentsRequestGenerator.cs │ │ │ └── IPTorrentsSettings.cs │ │ ├── IProcessIndexerResponse.cs │ │ ├── ITorrentIndexerSettings.cs │ │ ├── IndexerBase.cs │ │ ├── IndexerDefaults.cs │ │ ├── IndexerDefinition.cs │ │ ├── IndexerFactory.cs │ │ ├── IndexerPageableRequest.cs │ │ ├── IndexerPageableRequestChain.cs │ │ ├── IndexerRepository.cs │ │ ├── IndexerRequest.cs │ │ ├── IndexerResponse.cs │ │ ├── IndexerStatus.cs │ │ ├── IndexerStatusRepository.cs │ │ ├── IndexerStatusService.cs │ │ ├── Newznab │ │ │ ├── Newznab.cs │ │ │ ├── NewznabCapabilities.cs │ │ │ ├── NewznabCapabilitiesProvider.cs │ │ │ ├── NewznabCategoryFieldOptionsConverter.cs │ │ │ ├── NewznabException.cs │ │ │ ├── NewznabRequestGenerator.cs │ │ │ ├── NewznabRssParser.cs │ │ │ └── NewznabSettings.cs │ │ ├── Nyaa │ │ │ ├── Nyaa.cs │ │ │ ├── NyaaRequestGenerator.cs │ │ │ └── NyaaSettings.cs │ │ ├── RssEnclosure.cs │ │ ├── RssIndexerRequestGenerator.cs │ │ ├── RssParser.cs │ │ ├── RssSyncCommand.cs │ │ ├── RssSyncCompleteEvent.cs │ │ ├── RssSyncService.cs │ │ ├── SeedConfigProvider.cs │ │ ├── SeedCriteriaSettings.cs │ │ ├── TorrentRss │ │ │ ├── TorrentRssIndexer.cs │ │ │ ├── TorrentRssIndexerParserSettings.cs │ │ │ ├── TorrentRssIndexerRequestGenerator.cs │ │ │ ├── TorrentRssIndexerSettings.cs │ │ │ ├── TorrentRssParserFactory.cs │ │ │ └── TorrentRssSettingsDetector.cs │ │ ├── TorrentRssParser.cs │ │ ├── Torrentleech │ │ │ ├── Torrentleech.cs │ │ │ ├── TorrentleechRequestGenerator.cs │ │ │ └── TorrentleechSettings.cs │ │ ├── Torznab │ │ │ ├── Torznab.cs │ │ │ ├── TorznabException.cs │ │ │ ├── TorznabRssParser.cs │ │ │ └── TorznabSettings.cs │ │ ├── XElementExtensions.cs │ │ └── XmlCleaner.cs │ ├── Instrumentation │ │ ├── Commands │ │ │ ├── ClearLogCommand.cs │ │ │ ├── DeleteLogFilesCommand.cs │ │ │ └── DeleteUpdateLogFilesCommand.cs │ │ ├── DatabaseTarget.cs │ │ ├── DeleteLogFilesService.cs │ │ ├── Log.cs │ │ ├── LogRepository.cs │ │ ├── LogService.cs │ │ ├── ReconfigureLogging.cs │ │ ├── ReconfigureSentry.cs │ │ └── SlowRunningAsyncTargetWrapper.cs │ ├── Jobs │ │ ├── ScheduledTask.cs │ │ ├── ScheduledTaskRepository.cs │ │ ├── Scheduler.cs │ │ └── TaskManager.cs │ ├── Languages │ │ ├── Language.cs │ │ ├── LanguageFieldConverter.cs │ │ ├── LanguagesComparer.cs │ │ └── OriginalLanguageFieldConverter.cs │ ├── Lifecycle │ │ ├── ApplicationShutdownRequested.cs │ │ ├── ApplicationStartedEvent.cs │ │ ├── ApplicationStartingEvent.cs │ │ ├── Commands │ │ │ ├── RestartCommand.cs │ │ │ └── ShutdownCommand.cs │ │ └── LifecycleService.cs │ ├── Localization │ │ ├── Core │ │ │ ├── ar.json │ │ │ ├── bg.json │ │ │ ├── bn.json │ │ │ ├── bs.json │ │ │ ├── ca.json │ │ │ ├── cs.json │ │ │ ├── da.json │ │ │ ├── de.json │ │ │ ├── el.json │ │ │ ├── en.json │ │ │ ├── es.json │ │ │ ├── es_MX.json │ │ │ ├── et.json │ │ │ ├── fa.json │ │ │ ├── fi.json │ │ │ ├── fr.json │ │ │ ├── he.json │ │ │ ├── hi.json │ │ │ ├── hr.json │ │ │ ├── hu.json │ │ │ ├── id.json │ │ │ ├── is.json │ │ │ ├── it.json │ │ │ ├── ja.json │ │ │ ├── ko.json │ │ │ ├── lt.json │ │ │ ├── lv.json │ │ │ ├── nb_NO.json │ │ │ ├── nl.json │ │ │ ├── pl.json │ │ │ ├── pt.json │ │ │ ├── pt_BR.json │ │ │ ├── ro.json │ │ │ ├── ru.json │ │ │ ├── sk.json │ │ │ ├── sr.json │ │ │ ├── sv.json │ │ │ ├── ta.json │ │ │ ├── th.json │ │ │ ├── tr.json │ │ │ ├── uk.json │ │ │ ├── vi.json │ │ │ ├── zh_CN.json │ │ │ └── zh_TW.json │ │ └── LocalizationService.cs │ ├── MediaCover │ │ ├── CoverAlreadyExistsSpecification.cs │ │ ├── ImageResizer.cs │ │ ├── MediaCover.cs │ │ ├── MediaCoverProxy.cs │ │ ├── MediaCoverService.cs │ │ └── MediaCoversUpdatedEvent.cs │ ├── MediaFiles │ │ ├── Commands │ │ │ ├── BackendCommandAttribute.cs │ │ │ ├── CleanUpRecycleBinCommand.cs │ │ │ ├── DownloadedEpisodesScanCommand.cs │ │ │ ├── RenameFilesCommand.cs │ │ │ ├── RenameSeriesCommand.cs │ │ │ └── RescanSeriesCommand.cs │ │ ├── DeleteMediaFileReason.cs │ │ ├── DeletedEpisodeFile.cs │ │ ├── DiskScanService.cs │ │ ├── DownloadedEpisodesCommandService.cs │ │ ├── DownloadedEpisodesImportService.cs │ │ ├── EpisodeFile.cs │ │ ├── EpisodeFileMoveResult.cs │ │ ├── EpisodeFileMovingService.cs │ │ ├── EpisodeImport │ │ │ ├── Aggregation │ │ │ │ ├── AggregationFailedException.cs │ │ │ │ ├── AggregationService.cs │ │ │ │ └── Aggregators │ │ │ │ │ ├── AggregateEpisodes.cs │ │ │ │ │ ├── AggregateLanguage.cs │ │ │ │ │ ├── AggregateQuality.cs │ │ │ │ │ ├── AggregateReleaseGroup.cs │ │ │ │ │ ├── AggregateReleaseHash.cs │ │ │ │ │ ├── AggregateReleaseInfo.cs │ │ │ │ │ ├── AggregateSubtitleInfo.cs │ │ │ │ │ ├── Augmenters │ │ │ │ │ ├── Language │ │ │ │ │ │ ├── AugmentLanguageFromDownloadClientItem.cs │ │ │ │ │ │ ├── AugmentLanguageFromFileName.cs │ │ │ │ │ │ ├── AugmentLanguageFromFolder.cs │ │ │ │ │ │ ├── AugmentLanguageFromMediaInfo.cs │ │ │ │ │ │ ├── AugmentLanguageResult.cs │ │ │ │ │ │ ├── Confidence.cs │ │ │ │ │ │ └── IAugmentLanguage.cs │ │ │ │ │ └── Quality │ │ │ │ │ │ ├── AugmentQualityFromDownloadClientItem.cs │ │ │ │ │ │ ├── AugmentQualityFromFileName.cs │ │ │ │ │ │ ├── AugmentQualityFromFolder.cs │ │ │ │ │ │ ├── AugmentQualityFromMediaInfo.cs │ │ │ │ │ │ ├── AugmentQualityFromReleaseName.cs │ │ │ │ │ │ ├── AugmentQualityResult.cs │ │ │ │ │ │ ├── Confidence.cs │ │ │ │ │ │ └── IAugmentQuality.cs │ │ │ │ │ └── IAggregateLocalEpisode.cs │ │ │ ├── DetectSample.cs │ │ │ ├── DetectSampleResult.cs │ │ │ ├── EpisodeTitleRequiredType.cs │ │ │ ├── IImportDecisionEngineSpecification.cs │ │ │ ├── ImportApprovedEpisodes.cs │ │ │ ├── ImportDecision.cs │ │ │ ├── ImportDecisionMaker.cs │ │ │ ├── ImportMode.cs │ │ │ ├── ImportResult.cs │ │ │ ├── ImportResultType.cs │ │ │ ├── Manual │ │ │ │ ├── ManualImportCommand.cs │ │ │ │ ├── ManualImportFile.cs │ │ │ │ ├── ManualImportItem.cs │ │ │ │ ├── ManualImportService.cs │ │ │ │ └── ManuallyImportedFile.cs │ │ │ ├── RecycleBinException.cs │ │ │ ├── RootFolderNotFoundException.cs │ │ │ ├── SceneNameCalculator.cs │ │ │ └── Specifications │ │ │ │ ├── AbsoluteEpisodeNumberSpecification.cs │ │ │ │ ├── AlreadyImportedSpecification.cs │ │ │ │ ├── EpisodeTitleSpecification.cs │ │ │ │ ├── FreeSpaceSpecification.cs │ │ │ │ ├── FullSeasonSpecification.cs │ │ │ │ ├── MatchesFolderSpecification.cs │ │ │ │ ├── MatchesGrabSpecification.cs │ │ │ │ ├── NotSampleSpecification.cs │ │ │ │ ├── NotUnpackingSpecification.cs │ │ │ │ ├── SameEpisodesImportSpecification.cs │ │ │ │ ├── SplitEpisodeSpecification.cs │ │ │ │ ├── UnverifiedSceneNumberingSpecification.cs │ │ │ │ └── UpgradeSpecification.cs │ │ ├── Events │ │ │ ├── DeleteCompletedEvent.cs │ │ │ ├── EpisodeFileAddedEvent.cs │ │ │ ├── EpisodeFileDeletedEvent.cs │ │ │ ├── EpisodeFileRenamedEvent.cs │ │ │ ├── EpisodeFolderCreatedEvent.cs │ │ │ ├── EpisodeImportFailedEvent.cs │ │ │ ├── EpisodeImportedEvent.cs │ │ │ ├── RenameCompletedEvent.cs │ │ │ ├── SeriesRenamedEvent.cs │ │ │ ├── SeriesScanSkippedEvent.cs │ │ │ └── SeriesScannedEvent.cs │ │ ├── FileDateType.cs │ │ ├── FileExtensions.cs │ │ ├── MediaFileAttributeService.cs │ │ ├── MediaFileDeletionService.cs │ │ ├── MediaFileExtensions.cs │ │ ├── MediaFileRepository.cs │ │ ├── MediaFileService.cs │ │ ├── MediaFileTableCleanupService.cs │ │ ├── MediaInfo │ │ │ ├── HdrFormat.cs │ │ │ ├── MediaInfoFormatter.cs │ │ │ ├── MediaInfoModel.cs │ │ │ ├── UpdateMediaInfoService.cs │ │ │ └── VideoFileInfoReader.cs │ │ ├── RecycleBinProvider.cs │ │ ├── RenameEpisodeFilePreview.cs │ │ ├── RenameEpisodeFileService.cs │ │ ├── RenamedEpisodeFile.cs │ │ ├── SameFilenameException.cs │ │ ├── ScriptImportDecider.cs │ │ ├── ScriptImportDecision.cs │ │ ├── ScriptImportException.cs │ │ ├── ScriptImportInfo.cs │ │ ├── TorrentInfo │ │ │ └── TorrentFileInfoReader.cs │ │ ├── UpdateEpisodeFileService.cs │ │ └── UpgradeMediaFileService.cs │ ├── Messaging │ │ ├── Commands │ │ │ ├── BackendCommandAttribute.cs │ │ │ ├── CleanupCommandMessagingService.cs │ │ │ ├── Command.cs │ │ │ ├── CommandEqualityComparer.cs │ │ │ ├── CommandExecutor.cs │ │ │ ├── CommandFailedException.cs │ │ │ ├── CommandModel.cs │ │ │ ├── CommandNotFoundException.cs │ │ │ ├── CommandPriority.cs │ │ │ ├── CommandPriorityComparer.cs │ │ │ ├── CommandQueue.cs │ │ │ ├── CommandQueueManager.cs │ │ │ ├── CommandRepository.cs │ │ │ ├── CommandResult.cs │ │ │ ├── CommandResultReporter.cs │ │ │ ├── CommandStatus.cs │ │ │ ├── CommandTrigger.cs │ │ │ ├── IExecute.cs │ │ │ ├── MessagingCleanupCommand.cs │ │ │ ├── TestCommand.cs │ │ │ ├── TestCommandExecutor.cs │ │ │ ├── UnknownCommand.cs │ │ │ └── UnknownCommandExecutor.cs │ │ ├── EventHandleOrderAttribute.cs │ │ ├── Events │ │ │ ├── CommandExecutedEvent.cs │ │ │ ├── EventAggregator.cs │ │ │ ├── IEventAggregator.cs │ │ │ └── IHandle.cs │ │ └── IProcessMessage.cs │ ├── MetadataSource │ │ ├── IProvideSeriesInfo.cs │ │ ├── ISearchForNewSeries.cs │ │ ├── SearchSeriesComparer.cs │ │ └── SkyHook │ │ │ ├── Resource │ │ │ ├── ActorResource.cs │ │ │ ├── EpisodeResource.cs │ │ │ ├── ImageResource.cs │ │ │ ├── RatingResource.cs │ │ │ ├── SeasonResource.cs │ │ │ ├── ShowResource.cs │ │ │ └── TimeOfDayResource.cs │ │ │ ├── SkyHookException.cs │ │ │ └── SkyHookProxy.cs │ ├── Notifications │ │ ├── ApplicationUpdateMessage.cs │ │ ├── Apprise │ │ │ ├── Apprise.cs │ │ │ ├── AppriseError.cs │ │ │ ├── AppriseException.cs │ │ │ ├── AppriseNotificationType.cs │ │ │ ├── ApprisePayload.cs │ │ │ ├── AppriseProxy.cs │ │ │ └── AppriseSettings.cs │ │ ├── CustomScript │ │ │ ├── CustomScript.cs │ │ │ └── CustomScriptSettings.cs │ │ ├── Discord │ │ │ ├── Discord.cs │ │ │ ├── DiscordColors.cs │ │ │ ├── DiscordException.cs │ │ │ ├── DiscordFieldType.cs │ │ │ ├── DiscordProxy.cs │ │ │ ├── DiscordSettings.cs │ │ │ └── Payloads │ │ │ │ ├── DiscordAuthor.cs │ │ │ │ ├── DiscordField.cs │ │ │ │ ├── DiscordImage.cs │ │ │ │ ├── DiscordPayload.cs │ │ │ │ └── Embed.cs │ │ ├── DownloadMessage.cs │ │ ├── Email │ │ │ ├── Email.cs │ │ │ └── EmailSettings.cs │ │ ├── EpisodeDeleteMessage.cs │ │ ├── Gotify │ │ │ ├── Gotify.cs │ │ │ ├── GotifyException.cs │ │ │ ├── GotifyMessage.cs │ │ │ ├── GotifyPriority.cs │ │ │ ├── GotifyProxy.cs │ │ │ └── GotifySettings.cs │ │ ├── GrabMessage.cs │ │ ├── INotification.cs │ │ ├── Join │ │ │ ├── Join.cs │ │ │ ├── JoinAuthException.cs │ │ │ ├── JoinException.cs │ │ │ ├── JoinInvalidDeviceException.cs │ │ │ ├── JoinPriority.cs │ │ │ ├── JoinProxy.cs │ │ │ ├── JoinResponseModel.cs │ │ │ └── JoinSettings.cs │ │ ├── Mailgun │ │ │ ├── Mailgun.cs │ │ │ ├── MailgunException.cs │ │ │ ├── MailgunProxy.cs │ │ │ └── MailgunSettings.cs │ │ ├── ManualInteractionRequiredMessage.cs │ │ ├── MediaBrowser │ │ │ ├── MediaBrowser.cs │ │ │ ├── MediaBrowserItems.cs │ │ │ ├── MediaBrowserProxy.cs │ │ │ ├── MediaBrowserService.cs │ │ │ └── MediaBrowserSettings.cs │ │ ├── Notifiarr │ │ │ ├── Notifiarr.cs │ │ │ ├── NotifiarrException.cs │ │ │ ├── NotifiarrProxy.cs │ │ │ └── NotifiarrSettings.cs │ │ ├── NotificationBase.cs │ │ ├── NotificationDefinition.cs │ │ ├── NotificationFactory.cs │ │ ├── NotificationRepository.cs │ │ ├── NotificationService.cs │ │ ├── NotificationStatus.cs │ │ ├── NotificationStatusRepository.cs │ │ ├── NotificationStatusService.cs │ │ ├── Ntfy │ │ │ ├── Ntfy.cs │ │ │ ├── NtfyException.cs │ │ │ ├── NtfyPriority.cs │ │ │ ├── NtfyProxy.cs │ │ │ └── NtfySettings.cs │ │ ├── Plex │ │ │ ├── PlexAuthenticationException.cs │ │ │ ├── PlexException.cs │ │ │ ├── PlexMediaType.cs │ │ │ ├── PlexTv │ │ │ │ ├── PlexTvPinResponse.cs │ │ │ │ ├── PlexTvPinUrlResponse.cs │ │ │ │ ├── PlexTvProxy.cs │ │ │ │ ├── PlexTvService.cs │ │ │ │ ├── PlexTvSignInUrlResponse.cs │ │ │ │ └── PlexWatchlistItem.cs │ │ │ ├── PlexVersionException.cs │ │ │ └── Server │ │ │ │ ├── PlexError.cs │ │ │ │ ├── PlexIdentity.cs │ │ │ │ ├── PlexPreferences.cs │ │ │ │ ├── PlexResponse.cs │ │ │ │ ├── PlexSection.cs │ │ │ │ ├── PlexSectionItem.cs │ │ │ │ ├── PlexServer.cs │ │ │ │ ├── PlexServerProxy.cs │ │ │ │ ├── PlexServerService.cs │ │ │ │ └── PlexServerSettings.cs │ │ ├── Prowl │ │ │ ├── Prowl.cs │ │ │ ├── ProwlException.cs │ │ │ ├── ProwlPriority.cs │ │ │ ├── ProwlProxy.cs │ │ │ └── ProwlSettings.cs │ │ ├── PushBullet │ │ │ ├── PushBullet.cs │ │ │ ├── PushBulletDevice.cs │ │ │ ├── PushBulletDevicesResponse.cs │ │ │ ├── PushBulletException.cs │ │ │ ├── PushBulletProxy.cs │ │ │ └── PushBulletSettings.cs │ │ ├── Pushcut │ │ │ ├── Pushcut.cs │ │ │ ├── PushcutException.cs │ │ │ ├── PushcutPayload.cs │ │ │ ├── PushcutProxy.cs │ │ │ ├── PushcutResponse.cs │ │ │ └── PushcutSettings.cs │ │ ├── Pushover │ │ │ ├── InvalidResponseException.cs │ │ │ ├── Pushover.cs │ │ │ ├── PushoverPriority.cs │ │ │ ├── PushoverProxy.cs │ │ │ └── PushoverSettings.cs │ │ ├── SendGrid │ │ │ ├── SendGrid.cs │ │ │ ├── SendGridException.cs │ │ │ ├── SendGridPayload.cs │ │ │ ├── SendGridProxy.cs │ │ │ └── SendGridSettings.cs │ │ ├── SeriesAddMessage.cs │ │ ├── SeriesDeleteMessage.cs │ │ ├── Signal │ │ │ ├── InvalidResponseException.cs │ │ │ ├── Signal.cs │ │ │ ├── SignalError.cs │ │ │ ├── SignalPayload.cs │ │ │ ├── SignalProxy.cs │ │ │ └── SignalSettings.cs │ │ ├── Simplepush │ │ │ ├── Simplepush.cs │ │ │ ├── SimplepushProxy.cs │ │ │ └── SimplepushSettings.cs │ │ ├── Slack │ │ │ ├── Payloads │ │ │ │ ├── Attachment.cs │ │ │ │ └── SlackPayload.cs │ │ │ ├── Slack.cs │ │ │ ├── SlackExeption.cs │ │ │ ├── SlackProxy.cs │ │ │ └── SlackSettings.cs │ │ ├── Synology │ │ │ ├── SynologyException.cs │ │ │ ├── SynologyIndexer.cs │ │ │ ├── SynologyIndexerProxy.cs │ │ │ └── SynologyIndexerSettings.cs │ │ ├── Telegram │ │ │ ├── InvalidResponseException.cs │ │ │ ├── Telegram.cs │ │ │ ├── TelegramError.cs │ │ │ ├── TelegramProxy.cs │ │ │ └── TelegramSettings.cs │ │ ├── Trakt │ │ │ ├── Resource │ │ │ │ ├── TraktAuthRefreshResource.cs │ │ │ │ ├── TraktCollectShowResource.cs │ │ │ │ ├── TraktCollectShowsResource.cs │ │ │ │ ├── TraktEpisodeResource.cs │ │ │ │ ├── TraktListResource.cs │ │ │ │ ├── TraktSeasonResource.cs │ │ │ │ ├── TraktShowIdsResource.cs │ │ │ │ ├── TraktShowResource.cs │ │ │ │ ├── TraktUserIdsResource.cs │ │ │ │ ├── TraktUserResource.cs │ │ │ │ └── TraktUserSettingsResource.cs │ │ │ ├── Trakt.cs │ │ │ ├── TraktException.cs │ │ │ ├── TraktInterlacedTypes.cs │ │ │ ├── TraktProxy.cs │ │ │ └── TraktSettings.cs │ │ ├── Twitter │ │ │ ├── OAuthToken.cs │ │ │ ├── Twitter.cs │ │ │ ├── TwitterException.cs │ │ │ ├── TwitterProxy.cs │ │ │ ├── TwitterService.cs │ │ │ └── TwitterSettings.cs │ │ ├── Webhook │ │ │ ├── Webhook.cs │ │ │ ├── WebhookApplicationUpdatePayload.cs │ │ │ ├── WebhookBase.cs │ │ │ ├── WebhookCustomFormat.cs │ │ │ ├── WebhookCustomFormatInfo.cs │ │ │ ├── WebhookDownloadClientItem.cs │ │ │ ├── WebhookEpisode.cs │ │ │ ├── WebhookEpisodeDeletePayload.cs │ │ │ ├── WebhookEpisodeFile.cs │ │ │ ├── WebhookEpisodeFileMediaInfo.cs │ │ │ ├── WebhookEventType.cs │ │ │ ├── WebhookException.cs │ │ │ ├── WebhookGrabPayload.cs │ │ │ ├── WebhookGrabbedRelease.cs │ │ │ ├── WebhookHealthPayload.cs │ │ │ ├── WebhookImportPayload.cs │ │ │ ├── WebhookManualInteractionPayload.cs │ │ │ ├── WebhookMethod.cs │ │ │ ├── WebhookPayload.cs │ │ │ ├── WebhookProxy.cs │ │ │ ├── WebhookRelease.cs │ │ │ ├── WebhookRenamePayload.cs │ │ │ ├── WebhookRenamedEpisodeFile.cs │ │ │ ├── WebhookSeries.cs │ │ │ ├── WebhookSeriesAddPayload.cs │ │ │ ├── WebhookSeriesDeletePayload.cs │ │ │ └── WebhookSettings.cs │ │ └── Xbmc │ │ │ ├── Model │ │ │ ├── ActivePlayer.cs │ │ │ ├── ActivePlayersResult.cs │ │ │ ├── ErrorResult.cs │ │ │ ├── TvShow.cs │ │ │ ├── TvShowResponse.cs │ │ │ ├── TvShowResult.cs │ │ │ ├── VersionResult.cs │ │ │ ├── XbmcJsonResult.cs │ │ │ └── XbmcVersion.cs │ │ │ ├── Xbmc.cs │ │ │ ├── XbmcJsonApiProxy.cs │ │ │ ├── XbmcJsonException.cs │ │ │ ├── XbmcService.cs │ │ │ └── XbmcSettings.cs │ ├── Organizer │ │ ├── AbsoluteEpisodeFormat.cs │ │ ├── EpisodeFormat.cs │ │ ├── EpisodeSortingType.cs │ │ ├── Exception.cs │ │ ├── FileNameBuilder.cs │ │ ├── FileNameBuilderTokenEqualityComparer.cs │ │ ├── FileNameSampleService.cs │ │ ├── FileNameValidation.cs │ │ ├── FileNameValidationService.cs │ │ ├── NamingConfig.cs │ │ ├── NamingConfigRepository.cs │ │ ├── NamingConfigService.cs │ │ └── SampleResult.cs │ ├── Parser │ │ ├── InvalidDateException.cs │ │ ├── InvalidSeasonException.cs │ │ ├── IsoLanguage.cs │ │ ├── IsoLanguages.cs │ │ ├── LanguageParser.cs │ │ ├── Model │ │ │ ├── FindSeriesResult.cs │ │ │ ├── GrabbedReleaseInfo.cs │ │ │ ├── ImportListItemInfo.cs │ │ │ ├── LocalEpisode.cs │ │ │ ├── ParsedEpisodeInfo.cs │ │ │ ├── ReleaseInfo.cs │ │ │ ├── ReleaseType.cs │ │ │ ├── RemoteEpisode.cs │ │ │ ├── SeriesTitleInfo.cs │ │ │ ├── SubtitleTitleInfo.cs │ │ │ └── TorrentInfo.cs │ │ ├── Parser.cs │ │ ├── ParsingService.cs │ │ ├── QualityParser.cs │ │ ├── RegexReplace.cs │ │ ├── SceneChecker.cs │ │ └── ValidateParsedEpisodeInfo.cs │ ├── Profiles │ │ ├── Delay │ │ │ ├── DelayProfile.cs │ │ │ ├── DelayProfileRepository.cs │ │ │ ├── DelayProfileService.cs │ │ │ └── DelayProfileTagInUseValidator.cs │ │ ├── ProfileFormatItem.cs │ │ ├── Qualities │ │ │ ├── QualityIndex.cs │ │ │ ├── QualityProfile.cs │ │ │ ├── QualityProfileInUseException.cs │ │ │ ├── QualityProfileQualityItem.cs │ │ │ ├── QualityProfileRepository.cs │ │ │ └── QualityProfileService.cs │ │ └── Releases │ │ │ ├── PerlRegexFactory.cs │ │ │ ├── ReleaseProfile.cs │ │ │ ├── ReleaseProfileRepository.cs │ │ │ ├── ReleaseProfileService.cs │ │ │ ├── TermMatcherService.cs │ │ │ └── TermMatchers │ │ │ ├── CaseInsensitiveTermMatcher.cs │ │ │ ├── ITermMatcher.cs │ │ │ └── RegexTermMatcher.cs │ ├── ProgressMessaging │ │ ├── CommandUpdatedEvent.cs │ │ ├── ProgressMessageContext.cs │ │ └── ProgressMessageTarget.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── Qualities │ │ ├── Commands │ │ │ └── ResetQualityDefinitionsCommand.cs │ │ ├── ProperDownloadTypes.cs │ │ ├── QualitiesBelowCutoff.cs │ │ ├── Quality.cs │ │ ├── QualityDefinition.cs │ │ ├── QualityDefinitionRepository.cs │ │ ├── QualityDefinitionService.cs │ │ ├── QualityDetectionSource.cs │ │ ├── QualityFinder.cs │ │ ├── QualityModel.cs │ │ ├── QualityModelComparer.cs │ │ ├── QualitySource.cs │ │ └── Revision.cs │ ├── Queue │ │ ├── DatetimeComparer.cs │ │ ├── Queue.cs │ │ ├── QueueService.cs │ │ ├── QueueUpdatedEvent.cs │ │ └── TimeleftComparer.cs │ ├── RemotePathMappings │ │ ├── RemotePathMapping.cs │ │ ├── RemotePathMappingRepository.cs │ │ └── RemotePathMappingService.cs │ ├── RootFolders │ │ ├── RootFolder.cs │ │ ├── RootFolderRepository.cs │ │ ├── RootFolderService.cs │ │ └── UnmappedFolder.cs │ ├── Security │ │ ├── CertificateValidationType.cs │ │ └── X509CertificateValidationService.cs │ ├── SeriesStats │ │ ├── SeasonStatistics.cs │ │ ├── SeriesStatistics.cs │ │ ├── SeriesStatisticsRepository.cs │ │ └── SeriesStatisticsService.cs │ ├── Sonarr.Core.csproj │ ├── Tags │ │ ├── Tag.cs │ │ ├── TagDetails.cs │ │ ├── TagRepository.cs │ │ ├── TagService.cs │ │ └── TagsUpdatedEvent.cs │ ├── ThingiProvider │ │ ├── ConfigContractNotFoundException.cs │ │ ├── Events │ │ │ ├── ProviderAddedEvent.cs │ │ │ ├── ProviderDeletedEvent.cs │ │ │ ├── ProviderStatusChangedEvent.cs │ │ │ └── ProviderUpdatedEvent.cs │ │ ├── IProvider.cs │ │ ├── IProviderConfig.cs │ │ ├── IProviderFactory.cs │ │ ├── IProviderRepository.cs │ │ ├── NullConfig.cs │ │ ├── ProviderDefinition.cs │ │ ├── ProviderFactory.cs │ │ ├── ProviderMessage.cs │ │ ├── ProviderRepository.cs │ │ └── Status │ │ │ ├── EscalationBackOff.cs │ │ │ ├── ProviderStatusBase.cs │ │ │ ├── ProviderStatusRepository.cs │ │ │ └── ProviderStatusServiceBase.cs │ ├── Tv │ │ ├── Actor.cs │ │ ├── AddSeriesOptions.cs │ │ ├── AddSeriesService.cs │ │ ├── AddSeriesValidator.cs │ │ ├── Commands │ │ │ ├── BulkMoveSeriesCommand.cs │ │ │ ├── MoveSeriesCommand.cs │ │ │ └── RefreshSeriesCommand.cs │ │ ├── Episode.cs │ │ ├── EpisodeCutoffService.cs │ │ ├── EpisodeMonitoredService.cs │ │ ├── EpisodeRefreshedService.cs │ │ ├── EpisodeRepository.cs │ │ ├── EpisodeService.cs │ │ ├── Events │ │ │ ├── EpisodeInfoRefreshedEvent.cs │ │ │ ├── SeriesAddCompletedEvent.cs │ │ │ ├── SeriesAddedEvent.cs │ │ │ ├── SeriesDeletedEvent.cs │ │ │ ├── SeriesEditedEvent.cs │ │ │ ├── SeriesImportedEvent.cs │ │ │ ├── SeriesMovedEvent.cs │ │ │ ├── SeriesRefreshCompleteEvent.cs │ │ │ ├── SeriesRefreshStartingEvent.cs │ │ │ └── SeriesUpdatedEvent.cs │ │ ├── MonitoringOptions.cs │ │ ├── MoveSeriesService.cs │ │ ├── MultipleSeriesFoundException.cs │ │ ├── Ratings.cs │ │ ├── RefreshEpisodeService.cs │ │ ├── RefreshSeriesService.cs │ │ ├── Season.cs │ │ ├── Series.cs │ │ ├── SeriesAddedHandler.cs │ │ ├── SeriesEditedService.cs │ │ ├── SeriesPathBuilder.cs │ │ ├── SeriesRepository.cs │ │ ├── SeriesScannedHandler.cs │ │ ├── SeriesService.cs │ │ ├── SeriesStatusType.cs │ │ ├── SeriesTitleNormalizer.cs │ │ ├── SeriesTitleSlugValidator.cs │ │ ├── SeriesTypes.cs │ │ └── ShouldRefreshSeries.cs │ ├── Update │ │ ├── Commands │ │ │ ├── ApplicationUpdateCheckCommand.cs │ │ │ └── ApplicationUpdateCommand.cs │ │ ├── ConfigureUpdateMechanism.cs │ │ ├── Events │ │ │ └── UpdateInstalledEvent.cs │ │ ├── History │ │ │ ├── UpdateHistory.cs │ │ │ ├── UpdateHistoryEventType.cs │ │ │ ├── UpdateHistoryRepository.cs │ │ │ └── UpdateHistoryService.cs │ │ ├── InstallUpdateService.cs │ │ ├── RecentUpdateProvider.cs │ │ ├── UpdateAbortedException.cs │ │ ├── UpdateChanges.cs │ │ ├── UpdateCheckService.cs │ │ ├── UpdateFolderNotWritableException.cs │ │ ├── UpdateMechanism.cs │ │ ├── UpdatePackage.cs │ │ ├── UpdatePackageAvailable.cs │ │ ├── UpdatePackageProvider.cs │ │ ├── UpdateVerification.cs │ │ └── UpdateVerificationFailedException.cs │ └── Validation │ │ ├── DownloadClientExistsValidator.cs │ │ ├── FolderChmodValidator.cs │ │ ├── FolderValidator.cs │ │ ├── IpValidation.cs │ │ ├── NzbDroneValidationExtensions.cs │ │ ├── NzbDroneValidationFailure.cs │ │ ├── NzbDroneValidationResult.cs │ │ ├── NzbDroneValidationState.cs │ │ ├── Paths │ │ ├── FileExistsValidator.cs │ │ ├── FolderWritableValidator.cs │ │ ├── MappedNetworkDriveValidator.cs │ │ ├── PathExistsValidator.cs │ │ ├── PathValidator.cs │ │ ├── RecycleBinValidator.cs │ │ ├── RootFolderAncestorValidator.cs │ │ ├── RootFolderValidator.cs │ │ ├── SeriesAncestorValidator.cs │ │ ├── SeriesExistsValidator.cs │ │ ├── SeriesPathValidator.cs │ │ ├── StartupFolderValidator.cs │ │ └── SystemFolderValidator.cs │ │ ├── QualityProfileExistsValidator.cs │ │ ├── RuleBuilderExtensions.cs │ │ └── UrlValidator.cs ├── NzbDrone.Host.Test │ ├── ContainerFixture.cs │ ├── NzbDroneProcessServiceFixture.cs │ ├── RouterTest.cs │ ├── Sonarr.Host.Test.csproj │ └── app.config ├── NzbDrone.Host │ ├── AccessControl │ │ ├── FirewallAdapter.cs │ │ ├── RemoteAccessAdapter.cs │ │ └── RemoteAccessException.cs │ ├── AppLifetime.cs │ ├── ApplicationModes.cs │ ├── Bootstrap.cs │ ├── BrowserService.cs │ ├── SingleInstancePolicy.cs │ ├── Sonarr.Host.csproj │ ├── Sonarr.ico │ ├── Startup.cs │ ├── TerminateApplicationException.cs │ └── UtilityModeRouter.cs ├── NzbDrone.Integration.Test │ ├── ApiTests │ │ ├── BlocklistFixture.cs │ │ ├── CalendarFixture.cs │ │ ├── CommandFixture.cs │ │ ├── DiskSpaceFixture.cs │ │ ├── DownloadClientFixture.cs │ │ ├── EpisodeFileFixture.cs │ │ ├── EpisodeFixture.cs │ │ ├── FileSystemFixture.cs │ │ ├── HistoryFixture.cs │ │ ├── IndexerFixture.cs │ │ ├── NamingConfigFixture.cs │ │ ├── NotificationFixture.cs │ │ ├── ReleaseFixture.cs │ │ ├── RootFolderFixture.cs │ │ ├── SeriesEditorFixture.cs │ │ ├── SeriesFixture.cs │ │ ├── SeriesLookupFixture.cs │ │ └── WantedTests │ │ │ ├── CutoffUnmetFixture.cs │ │ │ └── MissingFixture.cs │ ├── Client │ │ ├── ClientBase.cs │ │ ├── CommandClient.cs │ │ ├── DownloadClientClient.cs │ │ ├── EpisodeClient.cs │ │ ├── IndexerClient.cs │ │ ├── LogsClient.cs │ │ ├── NotificationClient.cs │ │ ├── ReleaseClient.cs │ │ ├── ReleasePushClient.cs │ │ └── SeriesClient.cs │ ├── CorsFixture.cs │ ├── GenericApiFixture.cs │ ├── HttpLogFixture.cs │ ├── IndexHtmlFixture.cs │ ├── IntegrationTest.cs │ ├── IntegrationTestBase.cs │ ├── Sonarr.Integration.Test.csproj │ └── app.config ├── NzbDrone.Libraries.Test │ ├── JsonTests │ │ └── JsonFixture.cs │ ├── RuntimeInformationFixture.cs │ ├── Sonarr.Libraries.Test.csproj │ └── app.config ├── NzbDrone.Mono.Test │ ├── DiskProviderTests │ │ ├── DiskProviderFixture.cs │ │ ├── FreeSpaceFixture.cs │ │ └── SymlinkResolverFixture.cs │ ├── EnvironmentInfo │ │ ├── FreebsdVersionAdapterFixture.cs │ │ ├── MonoPlatformInfoFixture.cs │ │ ├── ReleaseFileVersionAdapterFixture.cs │ │ └── VersionAdapters │ │ │ ├── MacOsVersionAdapterFixture.cs │ │ │ └── ReleaseFileVersionAdapterFixture.cs │ ├── Files │ │ ├── linux │ │ │ ├── lsb-release │ │ │ └── os-release │ │ ├── macOS │ │ │ └── SystemVersion.plist │ │ └── synology │ │ │ └── VERSION │ ├── Sonarr.Mono.Test.csproj │ └── app.config ├── NzbDrone.Mono │ ├── Disk │ │ ├── DiskProvider.cs │ │ ├── FindDriveType.cs │ │ ├── LinuxPermissionsException.cs │ │ ├── ProcMount.cs │ │ ├── ProcMountProvider.cs │ │ ├── RefLinkCreator.cs │ │ └── SymbolicLinkResolver.cs │ ├── EnvironmentInfo │ │ └── VersionAdapters │ │ │ ├── FreebsdVersionAdapter.cs │ │ │ ├── IssueFileVersionAdapter.cs │ │ │ ├── MacOsVersionAdapter.cs │ │ │ ├── ReleaseFileVersionAdapter.cs │ │ │ └── SynologyVersionAdapter.cs │ ├── Interop │ │ ├── NativeMethods.cs │ │ └── SafeUnixHandle.cs │ └── Sonarr.Mono.csproj ├── NzbDrone.SignalR │ ├── IBroadcastSignalRMessage.cs │ ├── MessageHub.cs │ ├── Properties │ │ └── launchSettings.json │ ├── SignalRMessage.cs │ └── Sonarr.SignalR.csproj ├── NzbDrone.Test.Common │ ├── App.config │ ├── AutoMoq │ │ ├── AutoMoqer.cs │ │ └── License.txt │ ├── Categories │ │ ├── DiskAccessTestAttribute.cs │ │ ├── IntegrationTestAttribute.cs │ │ └── ManualTestAttribute.cs │ ├── ConcurrencyCounter.cs │ ├── Datastore │ │ ├── PostgresDatabase.cs │ │ └── SqliteDatabase.cs │ ├── ExceptionVerification.cs │ ├── LoggingTest.cs │ ├── MockDebouncer.cs │ ├── MockerExtensions.cs │ ├── NzbDroneRunner.cs │ ├── ReflectionExtensions.cs │ ├── Sonarr.Test.Common.csproj │ ├── StringExtensions.cs │ ├── TestBase.cs │ ├── TestException.cs │ ├── TestLogOutput.cs │ └── TestValidator.cs ├── NzbDrone.Test.Dummy │ ├── DummyApp.cs │ ├── Sonarr.Test.Dummy.csproj │ └── app.config ├── NzbDrone.Update.Test │ ├── InstallUpdateServiceFixture.cs │ ├── ProgramFixture.cs │ ├── Sonarr.Update.Test.csproj │ ├── StartNzbDroneService.cs │ ├── UpdateProviderStartFixture.cs │ └── app.config ├── NzbDrone.Update │ ├── AppType.cs │ ├── Sonarr.Update.csproj │ ├── UpdateApp.cs │ ├── UpdateEngine │ │ ├── BackupAndRestore.cs │ │ ├── BackupAppData.cs │ │ ├── DetectApplicationType.cs │ │ ├── DetectExistingVersion.cs │ │ ├── InstallUpdateService.cs │ │ ├── StartNzbDrone.cs │ │ └── TerminateNzbDrone.cs │ ├── UpdateStartupContext.cs │ ├── app.config │ └── app.manifest ├── NzbDrone.Windows.Test │ ├── DiskProviderTests │ │ ├── DiskProviderFixture.cs │ │ └── FreeSpaceFixture.cs │ ├── EnvironmentInfo │ │ ├── DotNetPlatformInfoFixture.cs │ │ └── WindowsVersionInfoFixture.cs │ ├── Sonarr.Windows.Test.csproj │ └── app.config ├── NzbDrone.Windows │ ├── Disk │ │ ├── DiskProvider.cs │ │ └── FolderMount.cs │ ├── EnvironmentInfo │ │ └── WindowsVersionInfo.cs │ └── Sonarr.Windows.csproj ├── NzbDrone │ ├── Properties │ │ ├── Resources.Designer.cs │ │ └── Resources.resx │ ├── Sonarr.csproj │ ├── SysTray │ │ └── SysTrayApp.cs │ └── WindowsApp.cs ├── ServiceHelpers │ ├── ServiceInstall │ │ ├── Program.cs │ │ ├── ServiceHelper.cs │ │ ├── ServiceInstall.csproj │ │ ├── app.config │ │ ├── app.manifest │ │ └── green_puzzle.ico │ └── ServiceUninstall │ │ ├── Program.cs │ │ ├── ServiceHelper.cs │ │ ├── ServiceUninstall.csproj │ │ ├── app.config │ │ ├── app.manifest │ │ └── red_puzzle.ico ├── Sonarr.Api.V3 │ ├── ApplyTags.cs │ ├── AutoTagging │ │ ├── AutoTaggingController.cs │ │ ├── AutoTaggingResource.cs │ │ └── AutoTaggingSpecificationSchema.cs │ ├── Blocklist │ │ ├── BlocklistBulkResource.cs │ │ ├── BlocklistController.cs │ │ └── BlocklistResource.cs │ ├── Calendar │ │ ├── CalendarController.cs │ │ └── CalendarFeedController.cs │ ├── Commands │ │ ├── CommandController.cs │ │ └── CommandResource.cs │ ├── Config │ │ ├── ConfigController.cs │ │ ├── DownloadClientConfigController.cs │ │ ├── DownloadClientConfigResource.cs │ │ ├── HostConfigController.cs │ │ ├── HostConfigResource.cs │ │ ├── ImportListConfigController.cs │ │ ├── ImportListConfigResource.cs │ │ ├── IndexerConfigController.cs │ │ ├── IndexerConfigResource.cs │ │ ├── MediaManagementConfigController.cs │ │ ├── MediaManagementConfigResource.cs │ │ ├── NamingConfigController.cs │ │ ├── NamingConfigResource.cs │ │ ├── NamingExampleResource.cs │ │ ├── UiConfigController.cs │ │ └── UiConfigResource.cs │ ├── CustomFilters │ │ ├── CustomFilterController.cs │ │ └── CustomFilterResource.cs │ ├── CustomFormats │ │ ├── CustomFormatController.cs │ │ ├── CustomFormatResource.cs │ │ └── CustomFormatSpecificationSchema.cs │ ├── DiskSpace │ │ ├── DiskSpaceController.cs │ │ └── DiskSpaceResource.cs │ ├── DownloadClient │ │ ├── DownloadClientBulkResource.cs │ │ ├── DownloadClientController.cs │ │ └── DownloadClientResource.cs │ ├── EpisodeFiles │ │ ├── EpisodeFileController.cs │ │ ├── EpisodeFileListResource.cs │ │ ├── EpisodeFileResource.cs │ │ └── MediaInfoResource.cs │ ├── Episodes │ │ ├── EpisodeController.cs │ │ ├── EpisodeControllerWithSignalR.cs │ │ ├── EpisodeResource.cs │ │ ├── EpisodesMonitoredResource.cs │ │ ├── RenameEpisodeController.cs │ │ └── RenameEpisodeResource.cs │ ├── FileSystem │ │ └── FileSystemController.cs │ ├── Health │ │ ├── HealthController.cs │ │ └── HealthResource.cs │ ├── History │ │ ├── HistoryController.cs │ │ └── HistoryResource.cs │ ├── ImportLists │ │ ├── ImportListBulkResource.cs │ │ ├── ImportListController.cs │ │ ├── ImportListExclusionController.cs │ │ ├── ImportListExclusionResource.cs │ │ └── ImportListResource.cs │ ├── Indexers │ │ ├── IndexerBulkResource.cs │ │ ├── IndexerController.cs │ │ ├── IndexerFlagController.cs │ │ ├── IndexerFlagResource.cs │ │ ├── IndexerResource.cs │ │ ├── ReleaseController.cs │ │ ├── ReleaseControllerBase.cs │ │ ├── ReleasePushController.cs │ │ └── ReleaseResource.cs │ ├── Localization │ │ ├── LocalizationController.cs │ │ ├── LocalizationLanguageResource.cs │ │ └── LocalizationResource.cs │ ├── Logs │ │ ├── LogController.cs │ │ ├── LogFileController.cs │ │ ├── LogFileControllerBase.cs │ │ ├── LogFileResource.cs │ │ ├── LogResource.cs │ │ └── UpdateLogFileController.cs │ ├── ManualImport │ │ ├── ManualImportController.cs │ │ ├── ManualImportReprocessResource.cs │ │ └── ManualImportResource.cs │ ├── MediaCovers │ │ └── MediaCoverController.cs │ ├── Metadata │ │ ├── MetadataBulkResource.cs │ │ ├── MetadataController.cs │ │ └── MetadataResource.cs │ ├── Notifications │ │ ├── NotificationBulkResource.cs │ │ ├── NotificationController.cs │ │ └── NotificationResource.cs │ ├── Parse │ │ ├── ParseController.cs │ │ └── ParseResource.cs │ ├── Profiles │ │ ├── Delay │ │ │ ├── DelayProfileController.cs │ │ │ └── DelayProfileResource.cs │ │ ├── Languages │ │ │ ├── LanguageController.cs │ │ │ ├── LanguageProfileController.cs │ │ │ ├── LanguageProfileResource.cs │ │ │ ├── LanguageProfileSchemaController.cs │ │ │ └── LanguageResource.cs │ │ ├── Quality │ │ │ ├── QualityCutoffValidator.cs │ │ │ ├── QualityItemsValidator.cs │ │ │ ├── QualityProfileController.cs │ │ │ ├── QualityProfileResource.cs │ │ │ └── QualityProfileSchemaController.cs │ │ └── Release │ │ │ ├── ReleaseProfileController.cs │ │ │ └── ReleaseProfileResource.cs │ ├── ProviderBulkResource.cs │ ├── ProviderControllerBase.cs │ ├── ProviderResource.cs │ ├── ProviderTestAllResult.cs │ ├── Qualities │ │ ├── QualityDefinitionController.cs │ │ └── QualityDefinitionResource.cs │ ├── Queue │ │ ├── QueueActionController.cs │ │ ├── QueueBulkResource.cs │ │ ├── QueueController.cs │ │ ├── QueueDetailsController.cs │ │ ├── QueueResource.cs │ │ ├── QueueStatusController.cs │ │ └── QueueStatusResource.cs │ ├── RemotePathMappings │ │ ├── RemotePathMappingController.cs │ │ └── RemotePathMappingResource.cs │ ├── RootFolders │ │ ├── RootFolderController.cs │ │ └── RootFolderResource.cs │ ├── SeasonPass │ │ ├── SeasonPassController.cs │ │ ├── SeasonPassResource.cs │ │ └── SeasonPassSeriesResource.cs │ ├── Series │ │ ├── AlternateTitleResource.cs │ │ ├── SeasonResource.cs │ │ ├── SeasonStatisticsResource.cs │ │ ├── SeriesController.cs │ │ ├── SeriesEditorController.cs │ │ ├── SeriesEditorDeleteResource.cs │ │ ├── SeriesEditorResource.cs │ │ ├── SeriesFolderAsRootFolderValidator.cs │ │ ├── SeriesImportController.cs │ │ ├── SeriesLookupController.cs │ │ ├── SeriesResource.cs │ │ └── SeriesStatisticsResource.cs │ ├── Sonarr.Api.V3.csproj │ ├── System │ │ ├── Backup │ │ │ ├── BackupController.cs │ │ │ └── BackupResource.cs │ │ ├── SystemController.cs │ │ ├── SystemResource.cs │ │ └── Tasks │ │ │ ├── TaskController.cs │ │ │ └── TaskResource.cs │ ├── Tags │ │ ├── TagController.cs │ │ ├── TagDetailsController.cs │ │ ├── TagDetailsResource.cs │ │ └── TagResource.cs │ ├── Update │ │ ├── UpdateController.cs │ │ └── UpdateResource.cs │ ├── Wanted │ │ ├── CutoffController.cs │ │ └── MissingController.cs │ └── openapi.json ├── Sonarr.Http │ ├── ApiInfoController.cs │ ├── ApiInfoResource.cs │ ├── Authentication │ │ ├── ApiKeyAuthenticationHandler.cs │ │ ├── AuthenticationBuilderExtensions.cs │ │ ├── AuthenticationController.cs │ │ ├── AuthenticationService.cs │ │ ├── BasicAuthenticationHandler.cs │ │ ├── BypassableDenyAnonymousAuthorizationRequirement.cs │ │ ├── LoginResource.cs │ │ ├── NoAuthenticationHandler.cs │ │ ├── UiAuthorizationHandler.cs │ │ └── UiAuthorizationPolicyProvider.cs │ ├── ClientSchema │ │ ├── Field.cs │ │ ├── FieldMapping.cs │ │ └── SchemaBuilder.cs │ ├── ErrorManagement │ │ ├── ErrorModel.cs │ │ └── SonarrErrorPipeline.cs │ ├── Exceptions │ │ ├── ApiException.cs │ │ └── InvalidApiKeyException.cs │ ├── Extensions │ │ ├── AccessControlHeaders.cs │ │ └── RequestExtensions.cs │ ├── Frontend │ │ ├── InitializeJsonController.cs │ │ ├── Mappers │ │ │ ├── BackupFileMapper.cs │ │ │ ├── BrowserConfig.cs │ │ │ ├── CacheBreakerProvider.cs │ │ │ ├── FaviconMapper.cs │ │ │ ├── HtmlMapperBase.cs │ │ │ ├── IMapHttpRequestsToDisk.cs │ │ │ ├── IndexHtmlMapper.cs │ │ │ ├── LogFileMapper.cs │ │ │ ├── LoginHtmlMapper.cs │ │ │ ├── ManifestMapper.cs │ │ │ ├── MediaCoverMapper.cs │ │ │ ├── MediaCoverProxyMapper.cs │ │ │ ├── RobotsTxtMapper.cs │ │ │ ├── StaticResourceMapper.cs │ │ │ ├── StaticResourceMapperBase.cs │ │ │ └── UpdateLogFileMapper.cs │ │ └── StaticResourceController.cs │ ├── Middleware │ │ ├── BufferingMiddleware.cs │ │ ├── CacheHeaderMiddleware.cs │ │ ├── CacheableSpecification.cs │ │ ├── IfModifiedMiddleware.cs │ │ ├── LoggingMiddleware.cs │ │ ├── StartingUpMiddleware.cs │ │ ├── UrlBaseMiddleware.cs │ │ └── VersionMiddleware.cs │ ├── PagingResource.cs │ ├── Ping │ │ ├── PingController.cs │ │ └── PingResource.cs │ ├── REST │ │ ├── Attributes │ │ │ ├── RestDeleteByIdAttribute.cs │ │ │ ├── RestGetByIdAttribute.cs │ │ │ ├── RestPostByIdAttribute.cs │ │ │ ├── RestPutByIdAttribute.cs │ │ │ └── SkipValidationAttribute.cs │ │ ├── BadRequestException.cs │ │ ├── MethodNotAllowedException.cs │ │ ├── NotFoundException.cs │ │ ├── ResourceValidator.cs │ │ ├── RestController.cs │ │ ├── RestControllerWithSignalR.cs │ │ ├── RestResource.cs │ │ └── UnsupportedMediaTypeException.cs │ ├── ResourceChangeMessage.cs │ ├── Sonarr.Http.csproj │ ├── Validation │ │ ├── DuplicateEndpointDetector.cs │ │ ├── EmptyCollectionValidator.cs │ │ ├── RssSyncIntervalValidator.cs │ │ └── RuleBuilderExtensions.cs │ ├── VersionedApiControllerAttribute.cs │ └── VersionedFeedControllerAttribute.cs ├── Sonarr.RuntimePatches │ ├── Mono │ │ ├── BoringTLSVerifyFlagsPatch.cs │ │ └── DeflateStreamAsyncPatch.cs │ ├── MonoRuntimePatchBase.cs │ ├── RuntimePatchBase.cs │ ├── RuntimePatchExtensions.cs │ ├── RuntimePatcher.cs │ └── Sonarr.RuntimePatches.csproj ├── Sonarr.sln ├── Sonarr.sln.DotSettings ├── Targets │ ├── CopyRuntimes.targets │ └── PublishAllRids.targets ├── coverlet.runsettings ├── omnisharp.json ├── postgres.runsettings └── stylecop.json ├── test.sh ├── tsconfig.json └── yarn.lock /.github/release.yml: -------------------------------------------------------------------------------- 1 | changelog: 2 | exclude: 3 | authors: 4 | - Weblate 5 | - SonarrBot 6 | categories: 7 | - title: Changes 8 | labels: 9 | - '*' 10 | -------------------------------------------------------------------------------- /.github/workflows/labeler.yml: -------------------------------------------------------------------------------- 1 | name: "Pull Request Labeler" 2 | on: 3 | - pull_request_target 4 | 5 | jobs: 6 | triage: 7 | permissions: 8 | contents: read 9 | pull-requests: write 10 | runs-on: ubuntu-latest 11 | steps: 12 | - uses: actions/labeler@v4 13 | -------------------------------------------------------------------------------- /.yarnrc: -------------------------------------------------------------------------------- 1 | save-exact true 2 | registry "https://registry.yarnpkg.com" 3 | -------------------------------------------------------------------------------- /Logo/1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/Logo/1024.png -------------------------------------------------------------------------------- /Logo/128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/Logo/128.png -------------------------------------------------------------------------------- /Logo/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/Logo/16.png -------------------------------------------------------------------------------- /Logo/256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/Logo/256.png -------------------------------------------------------------------------------- /Logo/32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/Logo/32.png -------------------------------------------------------------------------------- /Logo/400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/Logo/400.png -------------------------------------------------------------------------------- /Logo/48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/Logo/48.png -------------------------------------------------------------------------------- /Logo/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/Logo/512.png -------------------------------------------------------------------------------- /Logo/64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/Logo/64.png -------------------------------------------------------------------------------- /Logo/72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/Logo/72.png -------------------------------------------------------------------------------- /Logo/800.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/Logo/800.png -------------------------------------------------------------------------------- /Logo/96-Outline-White.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/Logo/96-Outline-White.png -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /distribution/macOS/Sonarr.app/Contents/Resources/sonarr.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/distribution/macOS/Sonarr.app/Contents/Resources/sonarr.icns -------------------------------------------------------------------------------- /distribution/windows/setup/build.bat: -------------------------------------------------------------------------------- 1 | @REM SET SONARR_MAJOR_VERSION=4 2 | @REM SET SONARR_VERSION=4.0.0.5 3 | @REM SET BRANCH=develop 4 | @REM SET FRAMEWORK=net6.0 5 | @REM SET RUNTIME=win-x64 6 | 7 | inno\ISCC.exe sonarr.iss 8 | -------------------------------------------------------------------------------- /distribution/windows/setup/inno/ISCC.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/distribution/windows/setup/inno/ISCC.exe -------------------------------------------------------------------------------- /distribution/windows/setup/inno/ISCmplr.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/distribution/windows/setup/inno/ISCmplr.dll -------------------------------------------------------------------------------- /distribution/windows/setup/inno/ISPP.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/distribution/windows/setup/inno/ISPP.dll -------------------------------------------------------------------------------- /distribution/windows/setup/inno/Setup.e32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/distribution/windows/setup/inno/Setup.e32 -------------------------------------------------------------------------------- /distribution/windows/setup/inno/SetupLdr.e32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/distribution/windows/setup/inno/SetupLdr.e32 -------------------------------------------------------------------------------- /distribution/windows/setup/inno/WizModernImage.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/distribution/windows/setup/inno/WizModernImage.bmp -------------------------------------------------------------------------------- /distribution/windows/setup/inno/WizModernSmallImage.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/distribution/windows/setup/inno/WizModernSmallImage.bmp -------------------------------------------------------------------------------- /distribution/windows/setup/inno/islzma.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/distribution/windows/setup/inno/islzma.dll -------------------------------------------------------------------------------- /frontend/.eslintignore: -------------------------------------------------------------------------------- 1 | **/JsLibraries/** 2 | **/*.css.d.ts 3 | -------------------------------------------------------------------------------- /frontend/.prettierignore: -------------------------------------------------------------------------------- 1 | # Ignore everything recursively 2 | * 3 | 4 | # But not the .ts files 5 | !*.ts* 6 | 7 | *css.d.ts 8 | 9 | # Check subdirectories too 10 | !*/ 11 | -------------------------------------------------------------------------------- /frontend/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "arrowParens": "always", 3 | "endOfLine": "auto", 4 | "singleQuote": true, 5 | "trailingComma": "es5" 6 | } 7 | -------------------------------------------------------------------------------- /frontend/.tern-project: -------------------------------------------------------------------------------- 1 | { 2 | "ecmaVersion": 6, 3 | "libs": [ 4 | "browser", 5 | "jquery" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /frontend/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "stylelint.vscode-stylelint", 4 | "dbaeumer.vscode-eslint", 5 | "esbenp.prettier-vscode" 6 | ] 7 | } -------------------------------------------------------------------------------- /frontend/src/Activity/History/Details/HistoryDetails.css: -------------------------------------------------------------------------------- 1 | .description { 2 | composes: description from '~Components/DescriptionList/DescriptionListItemDescription.css'; 3 | 4 | overflow-wrap: break-word; 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/Activity/History/Details/HistoryDetails.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'description': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Activity/History/Details/HistoryDetailsModal.css: -------------------------------------------------------------------------------- 1 | .markAsFailedButton { 2 | composes: button from '~Components/Link/Button.css'; 3 | 4 | margin-right: auto; 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/Activity/History/Details/HistoryDetailsModal.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'markAsFailedButton': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Activity/History/HistoryEventTypeCell.css: -------------------------------------------------------------------------------- 1 | .cell { 2 | composes: cell from '~Components/Table/Cells/TableRowCell.css'; 3 | 4 | width: 35px; 5 | text-align: center; 6 | } 7 | -------------------------------------------------------------------------------- /frontend/src/Activity/History/HistoryEventTypeCell.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'cell': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Activity/Queue/ProtocolLabel.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'torrent': string; 5 | 'usenet': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Activity/Queue/QueueDetails.css: -------------------------------------------------------------------------------- 1 | .progressBarContainer { 2 | display: flex; 3 | justify-content: center; 4 | width: 100%; 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/Activity/Queue/QueueDetails.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'progressBarContainer': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Activity/Queue/QueueStatus.css: -------------------------------------------------------------------------------- 1 | .noMessages { 2 | margin-bottom: 10px; 3 | } 4 | -------------------------------------------------------------------------------- /frontend/src/Activity/Queue/QueueStatus.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'noMessages': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Activity/Queue/QueueStatusCell.css: -------------------------------------------------------------------------------- 1 | .status { 2 | composes: cell from '~Components/Table/Cells/TableRowCell.css'; 3 | 4 | width: 30px; 5 | } 6 | 7 | .noMessages { 8 | margin-bottom: 10px; 9 | } 10 | -------------------------------------------------------------------------------- /frontend/src/Activity/Queue/QueueStatusCell.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'noMessages': string; 5 | 'status': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Activity/Queue/RemoveQueueItemModal.css: -------------------------------------------------------------------------------- 1 | .message { 2 | margin-bottom: 30px; 3 | } 4 | -------------------------------------------------------------------------------- /frontend/src/Activity/Queue/RemoveQueueItemModal.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'message': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Activity/Queue/TimeleftCell.css: -------------------------------------------------------------------------------- 1 | .timeleft { 2 | composes: cell from '~Components/Table/Cells/TableRowCell.css'; 3 | 4 | width: 100px; 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/Activity/Queue/TimeleftCell.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'timeleft': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/AddSeries/ImportSeries/Import/ImportSeriesSelected.css: -------------------------------------------------------------------------------- 1 | .input { 2 | composes: input from '~Components/Form/CheckInput.css'; 3 | } 4 | -------------------------------------------------------------------------------- /frontend/src/App/ColorImpairedContext.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | const ColorImpairedContext = React.createContext(false); 4 | export const ColorImpairedConsumer = ColorImpairedContext.Consumer; 5 | 6 | export default ColorImpairedContext; 7 | -------------------------------------------------------------------------------- /frontend/src/App/ConnectionLostModal.css: -------------------------------------------------------------------------------- 1 | .automatic { 2 | margin-top: 20px; 3 | } 4 | -------------------------------------------------------------------------------- /frontend/src/App/ConnectionLostModal.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'automatic': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/App/ModelBase.ts: -------------------------------------------------------------------------------- 1 | interface ModelBase { 2 | id: number; 3 | } 4 | 5 | export default ModelBase; 6 | -------------------------------------------------------------------------------- /frontend/src/App/State/ClientSideCollectionAppState.ts: -------------------------------------------------------------------------------- 1 | import { CustomFilter } from './AppState'; 2 | 3 | interface ClientSideCollectionAppState { 4 | totalItems: number; 5 | customFilters: CustomFilter[]; 6 | } 7 | 8 | export default ClientSideCollectionAppState; 9 | -------------------------------------------------------------------------------- /frontend/src/App/State/CommandAppState.ts: -------------------------------------------------------------------------------- 1 | import AppSectionState from 'App/State/AppSectionState'; 2 | import Command from 'Commands/Command'; 3 | 4 | export type CommandAppState = AppSectionState; 5 | 6 | export default CommandAppState; 7 | -------------------------------------------------------------------------------- /frontend/src/App/State/EpisodesAppState.ts: -------------------------------------------------------------------------------- 1 | import AppSectionState from 'App/State/AppSectionState'; 2 | import Episode from 'Episode/Episode'; 3 | 4 | type EpisodesAppState = AppSectionState; 5 | 6 | export default EpisodesAppState; 7 | -------------------------------------------------------------------------------- /frontend/src/Calendar/Agenda/Agenda.css: -------------------------------------------------------------------------------- 1 | .agenda { 2 | margin-top: 10px; 3 | } 4 | -------------------------------------------------------------------------------- /frontend/src/Calendar/Agenda/Agenda.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'agenda': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Calendar/Calendar.css: -------------------------------------------------------------------------------- 1 | .calendar { 2 | flex-grow: 1; 3 | width: 100%; 4 | } 5 | 6 | .calendarContent { 7 | width: 100%; 8 | } 9 | -------------------------------------------------------------------------------- /frontend/src/Calendar/Calendar.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'calendar': string; 5 | 'calendarContent': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Calendar/CalendarPage.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'calendarInnerPageBody': string; 5 | 'calendarPageBody': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Calendar/Day/CalendarDays.css: -------------------------------------------------------------------------------- 1 | .days { 2 | display: flex; 3 | border-right: 1px solid var(--calendarBorderColor); 4 | } 5 | 6 | .day, 7 | .week, 8 | .forecast { 9 | flex-wrap: nowrap; 10 | } 11 | 12 | .month { 13 | flex-wrap: wrap; 14 | } 15 | -------------------------------------------------------------------------------- /frontend/src/Calendar/Day/DayOfWeek.css: -------------------------------------------------------------------------------- 1 | .dayOfWeek { 2 | flex: 1 0 14.28%; 3 | background-color: var(--calendarBackgroundColor); 4 | text-align: center; 5 | } 6 | 7 | .isSingleDay { 8 | width: 100%; 9 | } 10 | 11 | .isToday { 12 | background-color: var(--calendarTodayBackgroundColor); 13 | } 14 | -------------------------------------------------------------------------------- /frontend/src/Calendar/Day/DaysOfWeek.css: -------------------------------------------------------------------------------- 1 | .daysOfWeek { 2 | display: flex; 3 | margin-top: 10px; 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/Calendar/Day/DaysOfWeek.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'daysOfWeek': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Calendar/Legend/Legend.css: -------------------------------------------------------------------------------- 1 | .legend { 2 | display: flex; 3 | flex-wrap: wrap; 4 | margin-top: 10px; 5 | padding: 3px 0; 6 | } 7 | -------------------------------------------------------------------------------- /frontend/src/Calendar/Legend/Legend.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'legend': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Calendar/Legend/LegendIconItem.css: -------------------------------------------------------------------------------- 1 | .legendIconItem { 2 | margin: 3px 0; 3 | margin-right: 6px; 4 | width: 150px; 5 | cursor: default; 6 | } 7 | 8 | .icon { 9 | margin-right: 5px; 10 | 11 | &:global(.fullColorEvents) { 12 | filter: var(--calendarFullColorFilter) 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /frontend/src/Calendar/Legend/LegendIconItem.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'icon': string; 5 | 'legendIconItem': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Calendar/calendarViews.js: -------------------------------------------------------------------------------- 1 | export const DAY = 'day'; 2 | export const WEEK = 'week'; 3 | export const MONTH = 'month'; 4 | export const FORECAST = 'forecast'; 5 | export const AGENDA = 'agenda'; 6 | 7 | export const all = [DAY, WEEK, MONTH, FORECAST, AGENDA]; 8 | -------------------------------------------------------------------------------- /frontend/src/Components/Card.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'card': string; 5 | 'overlay': string; 6 | 'underlay': string; 7 | } 8 | export const cssExports: CssExports; 9 | export default cssExports; 10 | -------------------------------------------------------------------------------- /frontend/src/Components/DescriptionList/DescriptionList.css: -------------------------------------------------------------------------------- 1 | .descriptionList { 2 | margin-top: 0; 3 | margin-bottom: 0; 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/Components/DescriptionList/DescriptionList.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'descriptionList': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Components/DescriptionList/DescriptionListItemDescription.css: -------------------------------------------------------------------------------- 1 | .description { 2 | margin-left: 0; 3 | line-height: $lineHeight; 4 | overflow-wrap: break-word; 5 | } 6 | 7 | @media (min-width: 768px) { 8 | .description { 9 | margin-left: 180px; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /frontend/src/Components/DescriptionList/DescriptionListItemDescription.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'description': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Components/DescriptionList/DescriptionListItemTitle.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'title': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Components/DragPreviewLayer.css: -------------------------------------------------------------------------------- 1 | .dragLayer { 2 | position: fixed; 3 | top: 0; 4 | left: 0; 5 | z-index: 9999; 6 | width: 100%; 7 | height: 100%; 8 | pointer-events: none; 9 | } 10 | -------------------------------------------------------------------------------- /frontend/src/Components/DragPreviewLayer.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'dragLayer': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Components/FieldSet.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'fieldSet': string; 5 | 'legend': string; 6 | 'small': string; 7 | } 8 | export const cssExports: CssExports; 9 | export default cssExports; 10 | -------------------------------------------------------------------------------- /frontend/src/Components/FileBrowser/FileBrowserModal.css: -------------------------------------------------------------------------------- 1 | .modal { 2 | composes: modal from '~Components/Modal/Modal.css'; 3 | 4 | height: 600px; 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/Components/FileBrowser/FileBrowserModal.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'modal': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Components/FileBrowser/FileBrowserRow.css: -------------------------------------------------------------------------------- 1 | .type { 2 | composes: cell from '~Components/Table/Cells/TableRowCell.css'; 3 | 4 | width: 32px; 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/Components/FileBrowser/FileBrowserRow.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'type': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Components/Filter/CustomFilters/CustomFiltersModalContent.css: -------------------------------------------------------------------------------- 1 | .addButtonContainer { 2 | margin-top: 15px; 3 | } 4 | -------------------------------------------------------------------------------- /frontend/src/Components/Filter/CustomFilters/CustomFiltersModalContent.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'addButtonContainer': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Components/Form/DeviceInput.css: -------------------------------------------------------------------------------- 1 | .deviceInputWrapper { 2 | display: flex; 3 | } 4 | 5 | .input { 6 | composes: input from '~./TagInput.css'; 7 | composes: hasButton from '~Components/Form/Input.css'; 8 | } 9 | -------------------------------------------------------------------------------- /frontend/src/Components/Form/DeviceInput.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'deviceInputWrapper': string; 5 | 'input': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Components/Form/EnhancedSelectInputSelectedValue.css: -------------------------------------------------------------------------------- 1 | .selectedValue { 2 | flex: 1 1 auto; 3 | } 4 | 5 | .isDisabled { 6 | color: var(--disabledInputColor); 7 | } 8 | -------------------------------------------------------------------------------- /frontend/src/Components/Form/EnhancedSelectInputSelectedValue.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'isDisabled': string; 5 | 'selectedValue': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Components/Form/Form.css: -------------------------------------------------------------------------------- 1 | .validationFailures { 2 | margin-bottom: 20px; 3 | } 4 | -------------------------------------------------------------------------------- /frontend/src/Components/Form/Form.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'validationFailures': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Components/Form/FormInputButton.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'button': string; 5 | 'middleButton': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Components/Form/PasswordInput.css: -------------------------------------------------------------------------------- 1 | .input { 2 | composes: input from '~Components/Form/TextInput.css'; 3 | 4 | font-family: $passwordFamily; 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/Components/Form/PasswordInput.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'input': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Components/Form/TagInputInput.css: -------------------------------------------------------------------------------- 1 | .inputContainer { 2 | inset: -1px; 3 | display: flex; 4 | align-items: start; 5 | flex-wrap: wrap; 6 | padding: 1px 16px; 7 | min-height: 33px; 8 | cursor: default; 9 | } 10 | -------------------------------------------------------------------------------- /frontend/src/Components/Form/TagInputInput.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'inputContainer': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Components/HeartRating.css: -------------------------------------------------------------------------------- 1 | .heart { 2 | margin-right: 5px; 3 | color: var(--themeRed); 4 | } 5 | 6 | .rating { 7 | margin-right: 15px; 8 | } 9 | -------------------------------------------------------------------------------- /frontend/src/Components/HeartRating.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'heart': string; 5 | 'rating': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Components/Link/IconButton.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'button': string; 5 | 'isDisabled': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Components/Link/Link.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'link': string; 5 | 'to': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Components/Loading/LoadingMessage.css: -------------------------------------------------------------------------------- 1 | .loadingMessage { 2 | margin: 10px 10px 0; 3 | text-align: center; 4 | font-weight: 300; 5 | font-size: 36px; 6 | } 7 | -------------------------------------------------------------------------------- /frontend/src/Components/Loading/LoadingMessage.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'loadingMessage': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Components/Menu/FilterMenu.css: -------------------------------------------------------------------------------- 1 | .filterMenu { 2 | composes: menu from '~./Menu.css'; 3 | } 4 | 5 | @media only screen and (max-width: $breakpointSmall) { 6 | .filterMenu { 7 | margin-right: 10px; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /frontend/src/Components/Menu/FilterMenu.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'filterMenu': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Components/Menu/Menu.css: -------------------------------------------------------------------------------- 1 | .menu { 2 | position: relative; 3 | } 4 | -------------------------------------------------------------------------------- /frontend/src/Components/Menu/Menu.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'menu': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Components/Menu/MenuButton.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'isDisabled': string; 5 | 'menuButton': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Components/Menu/MenuContent.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'menuContent': string; 5 | 'scroller': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Components/Menu/MenuItem.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'isDisabled': string; 5 | 'menuItem': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Components/Menu/MenuItemSeparator.css: -------------------------------------------------------------------------------- 1 | .separator { 2 | overflow: hidden; 3 | min-height: 1px; 4 | height: 1px; 5 | background-color: var(--themeDarkColor); 6 | } 7 | -------------------------------------------------------------------------------- /frontend/src/Components/Menu/MenuItemSeparator.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'separator': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Components/Menu/MenuItemSeparator.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import styles from './MenuItemSeparator.css'; 3 | 4 | function MenuItemSeparator() { 5 | return ( 6 |
7 | ); 8 | } 9 | 10 | export default MenuItemSeparator; 11 | -------------------------------------------------------------------------------- /frontend/src/Components/MetadataAttribution.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'attribution': string; 5 | 'container': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Components/Modal/ModalBody.css: -------------------------------------------------------------------------------- 1 | .modalBody { 2 | flex: 1 0 1px; 3 | padding: $modalBodyPadding; 4 | } 5 | 6 | .modalScroller { 7 | flex-grow: 1; 8 | } 9 | 10 | .innerModalBody { 11 | padding: $modalBodyPadding; 12 | } 13 | -------------------------------------------------------------------------------- /frontend/src/Components/Modal/ModalContent.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'closeButton': string; 5 | 'modalContent': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Components/Modal/ModalError.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'details': string; 5 | 'message': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Components/Modal/ModalFooter.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'modalFooter': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Components/Modal/ModalHeader.css: -------------------------------------------------------------------------------- 1 | .modalHeader { 2 | @add-mixin truncate; 3 | 4 | flex-shrink: 0; 5 | padding: 15px 50px 15px 30px; 6 | border-bottom: 1px solid var(--borderColor); 7 | font-size: 18px; 8 | } 9 | -------------------------------------------------------------------------------- /frontend/src/Components/Modal/ModalHeader.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'modalHeader': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Components/MonitorToggleButton.css: -------------------------------------------------------------------------------- 1 | .toggleButton { 2 | composes: button from '~Components/Link/IconButton.css'; 3 | 4 | padding: 0; 5 | font-size: inherit; 6 | } 7 | 8 | .isDisabled { 9 | color: var(--disabledColor); 10 | cursor: not-allowed; 11 | } 12 | -------------------------------------------------------------------------------- /frontend/src/Components/MonitorToggleButton.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'isDisabled': string; 5 | 'toggleButton': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Components/NotFound.css: -------------------------------------------------------------------------------- 1 | .container { 2 | text-align: center; 3 | } 4 | 5 | .message { 6 | margin: 50px 0; 7 | text-align: center; 8 | font-weight: 300; 9 | font-size: 36px; 10 | } 11 | 12 | .image { 13 | height: 350px; 14 | } 15 | -------------------------------------------------------------------------------- /frontend/src/Components/NotFound.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'container': string; 5 | 'image': string; 6 | 'message': string; 7 | } 8 | export const cssExports: CssExports; 9 | export default cssExports; 10 | -------------------------------------------------------------------------------- /frontend/src/Components/Page/ErrorPage.css: -------------------------------------------------------------------------------- 1 | .page { 2 | composes: page from '~./Page.css'; 3 | 4 | margin-top: 20px; 5 | text-align: center; 6 | font-size: 20px; 7 | } 8 | 9 | .version { 10 | margin-top: 20px; 11 | font-size: 16px; 12 | } 13 | -------------------------------------------------------------------------------- /frontend/src/Components/Page/ErrorPage.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'page': string; 5 | 'version': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Components/Page/Header/KeyboardShortcutsModalContent.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'key': string; 5 | 'shortcut': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Components/Page/Header/PageHeaderActionsMenu.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'itemIcon': string; 5 | 'menuButton': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Components/Page/LoadingPage.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'logoFull': string; 5 | 'page': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Components/Page/Page.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'main': string; 5 | 'page': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Components/Page/PageContent.css: -------------------------------------------------------------------------------- 1 | .content { 2 | position: relative; 3 | display: flex; 4 | flex-direction: column; 5 | flex-grow: 1; 6 | overflow-x: hidden; 7 | width: 100%; 8 | } 9 | -------------------------------------------------------------------------------- /frontend/src/Components/Page/PageContent.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'content': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Components/Page/PageContentBody.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'contentBody': string; 5 | 'innerContentBody': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Components/Page/PageContentError.css: -------------------------------------------------------------------------------- 1 | .content { 2 | composes: content from '~./PageContent.css'; 3 | } 4 | -------------------------------------------------------------------------------- /frontend/src/Components/Page/PageContentError.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'content': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Components/Page/PageContentFooter.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'contentFooter': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Components/Page/PageJumpBar.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'jumpBar': string; 5 | 'jumpBarItems': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Components/Page/PageJumpBarItem.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'jumpBarItem': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Components/Page/Sidebar/Messages/Messages.css: -------------------------------------------------------------------------------- 1 | .messages { 2 | margin-top: auto; 3 | margin-bottom: 20px; 4 | padding-top: 20px; 5 | } 6 | 7 | @media only screen and (max-width: $breakpointSmall) { 8 | .messages { 9 | margin-bottom: 0; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /frontend/src/Components/Page/Sidebar/Messages/Messages.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'messages': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Components/Page/Sidebar/PageSidebar.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'sidebar': string; 5 | 'sidebarContainer': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Components/Page/Sidebar/PageSidebarStatus.css: -------------------------------------------------------------------------------- 1 | .status { 2 | composes: label from '~Components/Label.css'; 3 | } 4 | -------------------------------------------------------------------------------- /frontend/src/Components/Page/Toolbar/PageToolbar.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'toolbar': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Components/Page/Toolbar/PageToolbarOverflowMenuItem.css: -------------------------------------------------------------------------------- 1 | .icon { 2 | margin-right: 8px; 3 | } 4 | -------------------------------------------------------------------------------- /frontend/src/Components/Page/Toolbar/PageToolbarOverflowMenuItem.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'icon': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Components/Page/Toolbar/PageToolbarSeparator.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'separator': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Components/Table/Cells/RelativeDateCell.css: -------------------------------------------------------------------------------- 1 | .cell { 2 | composes: cell from '~./TableRowCell.css'; 3 | 4 | width: 180px; 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/Components/Table/Cells/RelativeDateCell.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'cell': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Components/Table/Cells/TableRowCell.css: -------------------------------------------------------------------------------- 1 | .cell { 2 | padding: 8px; 3 | border-top: 1px solid var(--borderColor); 4 | line-height: 1.52857143; 5 | } 6 | 7 | @media only screen and (max-width: $breakpointSmall) { 8 | .cell { 9 | white-space: nowrap; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /frontend/src/Components/Table/Cells/TableRowCell.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'cell': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Components/Table/Cells/TableRowCellButton.css: -------------------------------------------------------------------------------- 1 | .cell { 2 | composes: cell from '~./TableRowCell.css'; 3 | composes: link from '~Components/Link/Link.css'; 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/Components/Table/Cells/TableRowCellButton.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'cell': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Components/Table/Cells/TableSelectCell.css: -------------------------------------------------------------------------------- 1 | .selectCell { 2 | composes: cell from '~Components/Table/Cells/TableRowCell.css'; 3 | 4 | width: 30px; 5 | } 6 | 7 | .input { 8 | composes: input from '~Components/Form/CheckInput.css'; 9 | 10 | margin: 0; 11 | } 12 | -------------------------------------------------------------------------------- /frontend/src/Components/Table/Cells/TableSelectCell.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'input': string; 5 | 'selectCell': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Components/Table/Cells/VirtualTableRowCell.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'cell': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Components/Table/Cells/VirtualTableSelectCell.css: -------------------------------------------------------------------------------- 1 | .cell { 2 | composes: cell from '~Components/Table/Cells/VirtualTableRowCell.css'; 3 | 4 | flex: 0 0 36px; 5 | } 6 | 7 | .input { 8 | composes: input from '~Components/Form/CheckInput.css'; 9 | 10 | margin: 0; 11 | } 12 | -------------------------------------------------------------------------------- /frontend/src/Components/Table/Cells/VirtualTableSelectCell.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'cell': string; 5 | 'input': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Components/Table/TableHeaderCell.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'headerCell': string; 5 | 'sortIcon': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Components/Table/TableOptions/TableOptionsColumnDragPreview.css: -------------------------------------------------------------------------------- 1 | .dragPreview { 2 | width: 380px; 3 | opacity: 0.75; 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/Components/Table/TableOptions/TableOptionsColumnDragPreview.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'dragPreview': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Components/Table/TableOptions/TableOptionsModal.css: -------------------------------------------------------------------------------- 1 | .columns { 2 | margin-top: 10px; 3 | width: 100%; 4 | user-select: none; 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/Components/Table/TableOptions/TableOptionsModal.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'columns': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Components/Table/TableRow.css: -------------------------------------------------------------------------------- 1 | .row { 2 | transition: background-color 500ms; 3 | 4 | &:hover { 5 | background-color: var(--tableRowHoverBackgroundColor); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /frontend/src/Components/Table/TableRow.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'row': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Components/Table/TableRowButton.css: -------------------------------------------------------------------------------- 1 | .row { 2 | composes: link from '~Components/Link/Link.css'; 3 | composes: row from '~./TableRow.css'; 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/Components/Table/TableRowButton.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'row': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Components/Table/TableSelectAllHeaderCell.css: -------------------------------------------------------------------------------- 1 | .selectAllHeaderCell { 2 | composes: headerCell from '~Components/Table/VirtualTableHeaderCell.css'; 3 | 4 | width: 30px; 5 | } 6 | 7 | .input { 8 | composes: input from '~Components/Form/CheckInput.css'; 9 | 10 | margin: 0; 11 | } 12 | -------------------------------------------------------------------------------- /frontend/src/Components/Table/TableSelectAllHeaderCell.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'input': string; 5 | 'selectAllHeaderCell': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Components/Table/VirtualTable.css: -------------------------------------------------------------------------------- 1 | .tableContainer { 2 | width: 100%; 3 | } 4 | 5 | .tableBodyContainer { 6 | position: relative; 7 | } 8 | -------------------------------------------------------------------------------- /frontend/src/Components/Table/VirtualTable.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'tableBodyContainer': string; 5 | 'tableContainer': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Components/Table/VirtualTableHeader.css: -------------------------------------------------------------------------------- 1 | .header { 2 | display: flex; 3 | } 4 | -------------------------------------------------------------------------------- /frontend/src/Components/Table/VirtualTableHeader.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'header': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Components/Table/VirtualTableHeaderCell.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'headerCell': string; 5 | 'sortIcon': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Components/Table/VirtualTableRow.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'row': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Components/Table/VirtualTableRowButton.css: -------------------------------------------------------------------------------- 1 | .row { 2 | composes: link from '~Components/Link/Link.css'; 3 | composes: row from '~./VirtualTableRow.css'; 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/Components/Table/VirtualTableRowButton.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'row': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Components/Table/VirtualTableSelectAllHeaderCell.css: -------------------------------------------------------------------------------- 1 | .selectAllHeaderCell { 2 | composes: headerCell from '~Components/Table/TableHeaderCell.css'; 3 | 4 | flex: 0 0 36px; 5 | } 6 | 7 | .input { 8 | composes: input from '~Components/Form/CheckInput.css'; 9 | 10 | margin: 0; 11 | } 12 | -------------------------------------------------------------------------------- /frontend/src/Components/Table/VirtualTableSelectAllHeaderCell.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'input': string; 5 | 'selectAllHeaderCell': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Components/TagList.css: -------------------------------------------------------------------------------- 1 | .tags { 2 | flex: 1 0 auto; 3 | } 4 | -------------------------------------------------------------------------------- /frontend/src/Components/TagList.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'tags': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Components/Tooltip/Popover.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'body': string; 5 | 'title': string; 6 | 'tooltipBody': string; 7 | } 8 | export const cssExports: CssExports; 9 | export default cssExports; 10 | -------------------------------------------------------------------------------- /frontend/src/Content/Fonts/Roboto-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/frontend/src/Content/Fonts/Roboto-Light.ttf -------------------------------------------------------------------------------- /frontend/src/Content/Fonts/Roboto-Light.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/frontend/src/Content/Fonts/Roboto-Light.woff -------------------------------------------------------------------------------- /frontend/src/Content/Fonts/Roboto-Light.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/frontend/src/Content/Fonts/Roboto-Light.woff2 -------------------------------------------------------------------------------- /frontend/src/Content/Fonts/Roboto-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/frontend/src/Content/Fonts/Roboto-Regular.ttf -------------------------------------------------------------------------------- /frontend/src/Content/Fonts/Roboto-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/frontend/src/Content/Fonts/Roboto-Regular.woff -------------------------------------------------------------------------------- /frontend/src/Content/Fonts/Roboto-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/frontend/src/Content/Fonts/Roboto-Regular.woff2 -------------------------------------------------------------------------------- /frontend/src/Content/Fonts/UbuntuMono-Regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/frontend/src/Content/Fonts/UbuntuMono-Regular.eot -------------------------------------------------------------------------------- /frontend/src/Content/Fonts/UbuntuMono-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/frontend/src/Content/Fonts/UbuntuMono-Regular.ttf -------------------------------------------------------------------------------- /frontend/src/Content/Fonts/UbuntuMono-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/frontend/src/Content/Fonts/UbuntuMono-Regular.woff -------------------------------------------------------------------------------- /frontend/src/Content/Fonts/text-security-disc.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/frontend/src/Content/Fonts/text-security-disc.ttf -------------------------------------------------------------------------------- /frontend/src/Content/Fonts/text-security-disc.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/frontend/src/Content/Fonts/text-security-disc.woff -------------------------------------------------------------------------------- /frontend/src/Content/Images/404.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/frontend/src/Content/Images/404.png -------------------------------------------------------------------------------- /frontend/src/Content/Images/Icons/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/frontend/src/Content/Images/Icons/android-chrome-192x192.png -------------------------------------------------------------------------------- /frontend/src/Content/Images/Icons/android-chrome-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/frontend/src/Content/Images/Icons/android-chrome-512x512.png -------------------------------------------------------------------------------- /frontend/src/Content/Images/Icons/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/frontend/src/Content/Images/Icons/apple-touch-icon.png -------------------------------------------------------------------------------- /frontend/src/Content/Images/Icons/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/frontend/src/Content/Images/Icons/favicon-16x16.png -------------------------------------------------------------------------------- /frontend/src/Content/Images/Icons/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/frontend/src/Content/Images/Icons/favicon-32x32.png -------------------------------------------------------------------------------- /frontend/src/Content/Images/Icons/favicon-debug-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/frontend/src/Content/Images/Icons/favicon-debug-16x16.png -------------------------------------------------------------------------------- /frontend/src/Content/Images/Icons/favicon-debug-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/frontend/src/Content/Images/Icons/favicon-debug-32x32.png -------------------------------------------------------------------------------- /frontend/src/Content/Images/Icons/favicon-debug.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/frontend/src/Content/Images/Icons/favicon-debug.ico -------------------------------------------------------------------------------- /frontend/src/Content/Images/Icons/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/frontend/src/Content/Images/Icons/favicon.ico -------------------------------------------------------------------------------- /frontend/src/Content/Images/Icons/mstile-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/frontend/src/Content/Images/Icons/mstile-144x144.png -------------------------------------------------------------------------------- /frontend/src/Content/Images/Icons/mstile-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/frontend/src/Content/Images/Icons/mstile-150x150.png -------------------------------------------------------------------------------- /frontend/src/Content/Images/Icons/mstile-310x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/frontend/src/Content/Images/Icons/mstile-310x150.png -------------------------------------------------------------------------------- /frontend/src/Content/Images/Icons/mstile-310x310.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/frontend/src/Content/Images/Icons/mstile-310x310.png -------------------------------------------------------------------------------- /frontend/src/Content/Images/Icons/mstile-70x70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/frontend/src/Content/Images/Icons/mstile-70x70.png -------------------------------------------------------------------------------- /frontend/src/Content/Images/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/frontend/src/Content/Images/error.png -------------------------------------------------------------------------------- /frontend/src/Content/Images/poster-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/frontend/src/Content/Images/poster-dark.png -------------------------------------------------------------------------------- /frontend/src/Content/Images/thetvdb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/frontend/src/Content/Images/thetvdb.png -------------------------------------------------------------------------------- /frontend/src/Content/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: / -------------------------------------------------------------------------------- /frontend/src/DownloadClient/DownloadProtocol.ts: -------------------------------------------------------------------------------- 1 | enum DownloadProtocol { 2 | Unknown = 'unknown', 3 | Usenet = 'usenet', 4 | Torrent = 'torrent', 5 | } 6 | 7 | export default DownloadProtocol; 8 | -------------------------------------------------------------------------------- /frontend/src/Episode/EpisodeNumber.css: -------------------------------------------------------------------------------- 1 | .absoluteEpisodeNumber { 2 | margin-left: 5px; 3 | } 4 | 5 | .warning { 6 | margin-left: 8px; 7 | } 8 | -------------------------------------------------------------------------------- /frontend/src/Episode/EpisodeNumber.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'absoluteEpisodeNumber': string; 5 | 'warning': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Episode/EpisodeSearchCell.css: -------------------------------------------------------------------------------- 1 | .episodeSearchCell { 2 | composes: cell from '~Components/Table/Cells/TableRowCell.css'; 3 | 4 | width: 70px; 5 | white-space: nowrap; 6 | } 7 | -------------------------------------------------------------------------------- /frontend/src/Episode/EpisodeSearchCell.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'episodeSearchCell': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Episode/EpisodeStatus.css: -------------------------------------------------------------------------------- 1 | .center { 2 | display: flex; 3 | justify-content: center; 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/Episode/EpisodeStatus.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'center': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Episode/EpisodeTitleLink.css: -------------------------------------------------------------------------------- 1 | .container { 2 | display: flex; 3 | align-items: center; 4 | } 5 | 6 | .link { 7 | composes: link from '~Components/Link/Link.css'; 8 | 9 | &:hover { 10 | color: var(--linkHoverColor); 11 | text-decoration: underline; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /frontend/src/Episode/EpisodeTitleLink.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'container': string; 5 | 'link': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Episode/FinaleType.css: -------------------------------------------------------------------------------- 1 | .label { 2 | composes: label from '~Components/Label.css'; 3 | 4 | margin-left: 10px; 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/Episode/FinaleType.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'label': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Episode/History/EpisodeHistoryRow.css: -------------------------------------------------------------------------------- 1 | .actions { 2 | composes: cell from '~Components/Table/Cells/TableRowCell.css'; 3 | 4 | width: 65px; 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/Episode/History/EpisodeHistoryRow.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'actions': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/EpisodeFile/mediaInfoTypes.js: -------------------------------------------------------------------------------- 1 | export const AUDIO = 'audio'; 2 | export const AUDIO_LANGUAGES = 'audioLanguages'; 3 | export const SUBTITLES = 'subtitles'; 4 | export const VIDEO = 'video'; 5 | export const VIDEO_DYNAMIC_RANGE_TYPE = 'videoDynamicRangeType'; 6 | -------------------------------------------------------------------------------- /frontend/src/FirstRun/AuthenticationRequiredModalContent.css: -------------------------------------------------------------------------------- 1 | .authRequiredAlert { 2 | composes: alert from '~Components/Alert.css'; 3 | 4 | margin-bottom: 20px; 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/FirstRun/AuthenticationRequiredModalContent.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'authRequiredAlert': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Helpers/Hooks/usePrevious.tsx: -------------------------------------------------------------------------------- 1 | import { useEffect, useRef } from 'react'; 2 | 3 | export default function usePrevious(value: T): T | undefined { 4 | const ref = useRef(); 5 | 6 | useEffect(() => { 7 | ref.current = value; 8 | }, [value]); 9 | 10 | return ref.current; 11 | } 12 | -------------------------------------------------------------------------------- /frontend/src/Helpers/Props/ScrollDirection.ts: -------------------------------------------------------------------------------- 1 | enum ScrollDirection { 2 | Horizontal = 'horizontal', 3 | Vertical = 'vertical', 4 | None = 'none', 5 | Both = 'both', 6 | } 7 | 8 | export default ScrollDirection; 9 | -------------------------------------------------------------------------------- /frontend/src/Helpers/Props/SortDirection.ts: -------------------------------------------------------------------------------- 1 | enum SortDirection { 2 | Ascending = 'ascending', 3 | Descending = 'descending', 4 | } 5 | 6 | export default SortDirection; 7 | -------------------------------------------------------------------------------- /frontend/src/Helpers/Props/TooltipPosition.ts: -------------------------------------------------------------------------------- 1 | enum TooltipPosition { 2 | Top = 'top', 3 | Right = 'right', 4 | Bottom = 'bottom', 5 | Left = 'left', 6 | } 7 | 8 | export default TooltipPosition; 9 | -------------------------------------------------------------------------------- /frontend/src/Helpers/Props/align.js: -------------------------------------------------------------------------------- 1 | export const LEFT = 'left'; 2 | export const CENTER = 'center'; 3 | export const RIGHT = 'right'; 4 | 5 | export const all = [LEFT, CENTER, RIGHT]; 6 | -------------------------------------------------------------------------------- /frontend/src/Helpers/Props/messageTypes.js: -------------------------------------------------------------------------------- 1 | export const ERROR = 'error'; 2 | export const INFO = 'info'; 3 | export const SUCCESS = 'success'; 4 | export const WARNING = 'warning'; 5 | 6 | export const all = [ 7 | ERROR, 8 | INFO, 9 | SUCCESS, 10 | WARNING 11 | ]; 12 | -------------------------------------------------------------------------------- /frontend/src/Helpers/Props/scrollDirections.js: -------------------------------------------------------------------------------- 1 | export const NONE = 'none'; 2 | export const BOTH = 'both'; 3 | export const HORIZONTAL = 'horizontal'; 4 | export const VERTICAL = 'vertical'; 5 | 6 | export const all = [NONE, HORIZONTAL, VERTICAL, BOTH]; 7 | -------------------------------------------------------------------------------- /frontend/src/Helpers/Props/sortDirections.js: -------------------------------------------------------------------------------- 1 | export const ASCENDING = 'ascending'; 2 | export const DESCENDING = 'descending'; 3 | 4 | export const all = [ASCENDING, DESCENDING]; 5 | -------------------------------------------------------------------------------- /frontend/src/Helpers/Props/tooltipPositions.js: -------------------------------------------------------------------------------- 1 | export const TOP = 'top'; 2 | export const RIGHT = 'right'; 3 | export const BOTTOM = 'bottom'; 4 | export const LEFT = 'left'; 5 | 6 | export const all = [ 7 | TOP, 8 | RIGHT, 9 | BOTTOM, 10 | LEFT 11 | ]; 12 | -------------------------------------------------------------------------------- /frontend/src/Helpers/dragTypes.js: -------------------------------------------------------------------------------- 1 | export const QUALITY_PROFILE_ITEM = 'qualityProfileItem'; 2 | export const DELAY_PROFILE = 'delayProfile'; 3 | export const TABLE_COLUMN = 'tableColumn'; 4 | -------------------------------------------------------------------------------- /frontend/src/Helpers/getDisplayName.js: -------------------------------------------------------------------------------- 1 | export default function getDisplayName(Component) { 2 | return Component.displayName || Component.name || 'Component'; 3 | } 4 | -------------------------------------------------------------------------------- /frontend/src/InteractiveImport/Folder/RecentFolder.ts: -------------------------------------------------------------------------------- 1 | interface RecentFolder { 2 | folder: string; 3 | lastUsed: string; 4 | } 5 | 6 | export default RecentFolder; 7 | -------------------------------------------------------------------------------- /frontend/src/InteractiveImport/Folder/RecentFolderRow.css: -------------------------------------------------------------------------------- 1 | .actions { 2 | composes: cell from '~Components/Table/Cells/TableRowCell.css'; 3 | 4 | width: 40px; 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/InteractiveImport/Folder/RecentFolderRow.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'actions': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/InteractiveImport/ImportMode.ts: -------------------------------------------------------------------------------- 1 | type ImportMode = 'auto' | 'move' | 'copy' | 'chooseImportMode'; 2 | 3 | export default ImportMode; 4 | -------------------------------------------------------------------------------- /frontend/src/InteractiveImport/IndexerFlags/SelectIndexerFlagsModalContent.css: -------------------------------------------------------------------------------- 1 | .modalBody { 2 | composes: modalBody from '~Components/Modal/ModalBody.css'; 3 | 4 | display: flex; 5 | flex: 1 1 auto; 6 | flex-direction: column; 7 | } 8 | -------------------------------------------------------------------------------- /frontend/src/InteractiveImport/IndexerFlags/SelectIndexerFlagsModalContent.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'modalBody': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/InteractiveImport/Interactive/InteractiveImportRowCellPlaceholder.css: -------------------------------------------------------------------------------- 1 | .placeholder { 2 | display: inline-block; 3 | margin: -8px 0; 4 | width: 100%; 5 | height: 25px; 6 | border: 2px dashed var(--dangerColor); 7 | } 8 | 9 | .optional { 10 | border: 2px dashed var(--gray); 11 | } 12 | -------------------------------------------------------------------------------- /frontend/src/InteractiveImport/Language/SelectLanguageModalContent.css: -------------------------------------------------------------------------------- 1 | .languageInput { 2 | display: flex; 3 | margin-bottom: 0; 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/InteractiveImport/Language/SelectLanguageModalContent.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'languageInput': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/InteractiveImport/ReleaseGroup/SelectReleaseGroupModalContent.css: -------------------------------------------------------------------------------- 1 | .modalBody { 2 | composes: modalBody from '~Components/Modal/ModalBody.css'; 3 | 4 | display: flex; 5 | flex: 1 1 auto; 6 | flex-direction: column; 7 | } 8 | -------------------------------------------------------------------------------- /frontend/src/InteractiveImport/ReleaseGroup/SelectReleaseGroupModalContent.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'modalBody': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/InteractiveImport/ReleaseType.ts: -------------------------------------------------------------------------------- 1 | type ReleaseType = 'unknown' | 'singleEpisode' | 'multiEpisode' | 'seasonPack'; 2 | 3 | export default ReleaseType; 4 | -------------------------------------------------------------------------------- /frontend/src/InteractiveImport/Season/SelectSeasonRow.css: -------------------------------------------------------------------------------- 1 | .season { 2 | padding: 8px; 3 | border-bottom: 1px solid var(--borderColor); 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/InteractiveImport/Season/SelectSeasonRow.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'season': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/InteractiveSearch/InteractiveSearch.css: -------------------------------------------------------------------------------- 1 | .filterMenuContainer { 2 | display: flex; 3 | justify-content: flex-end; 4 | margin-bottom: 10px; 5 | } 6 | 7 | .filteredMessage { 8 | margin-top: 10px; 9 | } 10 | -------------------------------------------------------------------------------- /frontend/src/InteractiveSearch/InteractiveSearch.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'filterMenuContainer': string; 5 | 'filteredMessage': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/InteractiveSearch/OverrideMatch/DownloadClient/SelectDownloadClientRow.css: -------------------------------------------------------------------------------- 1 | .downloadClient { 2 | display: flex; 3 | justify-content: space-between; 4 | padding: 8px; 5 | border-bottom: 1px solid var(--borderColor); 6 | } 7 | -------------------------------------------------------------------------------- /frontend/src/InteractiveSearch/OverrideMatch/DownloadClient/SelectDownloadClientRow.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'downloadClient': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/InteractiveSearch/ReleaseEpisode.ts: -------------------------------------------------------------------------------- 1 | interface ReleaseEpisode { 2 | id: number; 3 | episodeFileId: number; 4 | seasonNumber: number; 5 | episodeNumber: number; 6 | absoluteEpisodeNumber?: number; 7 | title: string; 8 | } 9 | 10 | export default ReleaseEpisode; 11 | -------------------------------------------------------------------------------- /frontend/src/Language/Language.ts: -------------------------------------------------------------------------------- 1 | interface Language { 2 | id: number; 3 | name: string; 4 | } 5 | 6 | export default Language; 7 | -------------------------------------------------------------------------------- /frontend/src/Parse/ParseResult.css: -------------------------------------------------------------------------------- 1 | .container { 2 | display: flex; 3 | flex-wrap: wrap; 4 | } 5 | 6 | .column { 7 | flex: 0 0 50%; 8 | } 9 | -------------------------------------------------------------------------------- /frontend/src/Parse/ParseResult.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'column': string; 5 | 'container': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Parse/ParseResultItem.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'item': string; 5 | 'title': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Series/Details/SeasonInfo.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'description': string; 5 | 'title': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Series/Details/SeriesAlternateTitles.css: -------------------------------------------------------------------------------- 1 | .alternateTitle { 2 | white-space: nowrap; 3 | } 4 | 5 | .comment { 6 | color: var(--darkGray); 7 | font-size: $smallFontSize; 8 | } 9 | -------------------------------------------------------------------------------- /frontend/src/Series/Details/SeriesAlternateTitles.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'alternateTitle': string; 5 | 'comment': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Series/Details/SeriesDetailsLinks.css: -------------------------------------------------------------------------------- 1 | .links { 2 | margin: 0; 3 | } 4 | 5 | .link { 6 | white-space: nowrap; 7 | } 8 | 9 | .linkLabel { 10 | composes: label from '~Components/Label.css'; 11 | 12 | cursor: pointer; 13 | } 14 | -------------------------------------------------------------------------------- /frontend/src/Series/Details/SeriesGenres.css: -------------------------------------------------------------------------------- 1 | .genres { 2 | margin-right: 15px; 3 | } 4 | -------------------------------------------------------------------------------- /frontend/src/Series/Details/SeriesGenres.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'genres': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Series/Edit/EditSeriesModalContent.css: -------------------------------------------------------------------------------- 1 | .deleteButton { 2 | composes: button from '~Components/Link/Button.css'; 3 | 4 | margin-right: auto; 5 | } 6 | 7 | .labelIcon { 8 | margin-left: 8px; 9 | } 10 | -------------------------------------------------------------------------------- /frontend/src/Series/Edit/EditSeriesModalContent.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'deleteButton': string; 5 | 'labelIcon': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Series/History/SeriesHistoryRow.css: -------------------------------------------------------------------------------- 1 | .sourceTitle { 2 | composes: cell from '~Components/Table/Cells/TableRowCell.css'; 3 | 4 | word-break: break-word; 5 | } 6 | 7 | .actions { 8 | composes: cell from '~Components/Table/Cells/TableRowCell.css'; 9 | 10 | width: 65px; 11 | } 12 | -------------------------------------------------------------------------------- /frontend/src/Series/History/SeriesHistoryRow.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'actions': string; 5 | 'sourceTitle': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Series/Index/Overview/SeriesIndexOverviewInfo.css: -------------------------------------------------------------------------------- 1 | .infos { 2 | display: flex; 3 | flex: 0 0 250px; 4 | flex-direction: column; 5 | margin-left: 10px; 6 | } 7 | 8 | @media only screen and (max-width: $breakpointSmall) { 9 | .infos { 10 | margin-left: 0; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /frontend/src/Series/Index/Overview/SeriesIndexOverviewInfo.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'infos': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Series/Index/Overview/SeriesIndexOverviewInfoRow.css: -------------------------------------------------------------------------------- 1 | .infoRow { 2 | flex: 0 0 $seriesIndexOverviewInfoRowHeight; 3 | margin: 2px 0; 4 | } 5 | 6 | .icon { 7 | margin-right: 5px; 8 | width: 25px !important; 9 | text-align: center; 10 | } 11 | -------------------------------------------------------------------------------- /frontend/src/Series/Index/Overview/SeriesIndexOverviewInfoRow.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'icon': string; 5 | 'infoRow': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Series/Index/Overview/SeriesIndexOverviews.css: -------------------------------------------------------------------------------- 1 | .grid { 2 | flex: 1 0 auto; 3 | } 4 | 5 | .container { 6 | &:hover { 7 | .content { 8 | background-color: var(--tableRowHoverBackgroundColor); 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /frontend/src/Series/Index/Posters/SeriesIndexPosterInfo.css: -------------------------------------------------------------------------------- 1 | .info { 2 | background-color: var(--seriesBackgroundColor); 3 | text-align: center; 4 | font-size: $smallFontSize; 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/Series/Index/Posters/SeriesIndexPosterInfo.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'info': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Series/Index/ProgressBar/SeriesIndexProgressBar.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'progress': string; 5 | 'progressBar': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Series/Index/Select/Delete/DeleteSeriesModalContent.css: -------------------------------------------------------------------------------- 1 | .message { 2 | margin-top: 20px; 3 | margin-bottom: 10px; 4 | } 5 | 6 | .pathContainer { 7 | margin-left: 5px; 8 | } 9 | 10 | .path { 11 | margin-left: 5px; 12 | color: var(--dangerColor); 13 | } 14 | -------------------------------------------------------------------------------- /frontend/src/Series/Index/Select/Edit/EditSeriesModalContent.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'modalFooter': string; 5 | 'selected': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Series/Index/Select/Organize/OrganizeSeriesModalContent.css: -------------------------------------------------------------------------------- 1 | .renameIcon { 2 | margin-left: 5px; 3 | } 4 | 5 | .message { 6 | margin-top: 20px; 7 | margin-bottom: 10px; 8 | } 9 | -------------------------------------------------------------------------------- /frontend/src/Series/Index/Select/SeasonPass/SeasonDetails.css: -------------------------------------------------------------------------------- 1 | .seasons { 2 | display: flex; 3 | flex-wrap: wrap; 4 | } 5 | 6 | .truncated { 7 | align-self: center; 8 | flex: 0 0 100%; 9 | padding: 4px 6px; 10 | } 11 | -------------------------------------------------------------------------------- /frontend/src/Series/Index/Select/SeasonPass/SeasonDetails.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'seasons': string; 5 | 'truncated': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Series/Index/Select/Tags/TagsModalContent.css: -------------------------------------------------------------------------------- 1 | .renameIcon { 2 | margin-left: 5px; 3 | } 4 | 5 | .message { 6 | margin-top: 20px; 7 | margin-bottom: 10px; 8 | } 9 | 10 | .result { 11 | padding-top: 4px; 12 | } 13 | -------------------------------------------------------------------------------- /frontend/src/Series/Index/Table/SeasonsCell.css: -------------------------------------------------------------------------------- 1 | .seasonCount { 2 | width: 100%; 3 | cursor: default; 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/Series/Index/Table/SeasonsCell.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'seasonCount': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Series/Index/Table/SeriesIndexTable.css: -------------------------------------------------------------------------------- 1 | .tableScroller { 2 | position: relative; 3 | } 4 | 5 | .row { 6 | transition: background-color 500ms; 7 | 8 | &:hover { 9 | background-color: var(--tableRowHoverBackgroundColor); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /frontend/src/Series/Index/Table/SeriesIndexTable.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'row': string; 5 | 'tableScroller': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Series/Index/Table/SeriesStatusCell.css: -------------------------------------------------------------------------------- 1 | .status { 2 | composes: cell from '~Components/Table/Cells/TableRowCell.css'; 3 | 4 | width: 60px; 5 | } 6 | 7 | .statusIcon { 8 | width: 20px !important; 9 | text-align: center; 10 | } 11 | -------------------------------------------------------------------------------- /frontend/src/Series/Index/Table/SeriesStatusCell.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'status': string; 5 | 'statusIcon': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Series/MonitoringOptions/MonitoringOptionsModalContent.css: -------------------------------------------------------------------------------- 1 | .labelIcon { 2 | margin-left: 8px; 3 | } 4 | -------------------------------------------------------------------------------- /frontend/src/Series/MonitoringOptions/MonitoringOptionsModalContent.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'labelIcon': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Series/MoveSeries/MoveSeriesModal.css: -------------------------------------------------------------------------------- 1 | .doNotMoveButton { 2 | composes: button from '~Components/Link/Button.css'; 3 | 4 | margin-right: auto; 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/Series/MoveSeries/MoveSeriesModal.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'doNotMoveButton': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Series/NoSeries.css: -------------------------------------------------------------------------------- 1 | .message { 2 | margin-top: 10px; 3 | margin-bottom: 30px; 4 | text-align: center; 5 | font-size: 20px; 6 | } 7 | 8 | .buttonContainer { 9 | margin-top: 20px; 10 | text-align: center; 11 | } 12 | -------------------------------------------------------------------------------- /frontend/src/Series/NoSeries.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'buttonContainer': string; 5 | 'message': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Settings/CustomFormats/CustomFormats/ExportCustomFormatModalContent.css: -------------------------------------------------------------------------------- 1 | .button { 2 | composes: button from '~Components/Link/Button.css'; 3 | 4 | position: relative; 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/Settings/CustomFormats/CustomFormats/ExportCustomFormatModalContent.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'button': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Settings/CustomFormats/CustomFormats/ImportCustomFormatModalContent.css: -------------------------------------------------------------------------------- 1 | .input { 2 | composes: input from '~Components/Form/TextArea.css'; 3 | 4 | font-family: $monoSpaceFontFamily; 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/Settings/CustomFormats/CustomFormats/ImportCustomFormatModalContent.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'input': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Settings/CustomFormats/CustomFormats/Specifications/AddSpecificationModalContent.css: -------------------------------------------------------------------------------- 1 | .specifications { 2 | display: flex; 3 | justify-content: center; 4 | flex-wrap: wrap; 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/Settings/CustomFormats/CustomFormats/Specifications/EditSpecificationModalContent.css: -------------------------------------------------------------------------------- 1 | .deleteButton { 2 | composes: button from '~Components/Link/Button.css'; 3 | 4 | margin-right: auto; 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/Settings/DownloadClients/DownloadClients/AddDownloadClientModalContent.css: -------------------------------------------------------------------------------- 1 | .downloadClients { 2 | display: flex; 3 | justify-content: center; 4 | flex-wrap: wrap; 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/Settings/DownloadClients/DownloadClients/AddDownloadClientModalContent.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'downloadClients': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Settings/DownloadClients/DownloadClients/Manage/Tags/TagsModalContent.css: -------------------------------------------------------------------------------- 1 | .renameIcon { 2 | margin-left: 5px; 3 | } 4 | 5 | .message { 6 | margin-top: 20px; 7 | margin-bottom: 10px; 8 | } 9 | 10 | .result { 11 | padding-top: 4px; 12 | } 13 | -------------------------------------------------------------------------------- /frontend/src/Settings/ImportLists/ImportListExclusions/ImportListExclusion.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'actions': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Settings/ImportLists/ImportListExclusions/ImportListExclusionRow.css: -------------------------------------------------------------------------------- 1 | .actions { 2 | composes: cell from '~Components/Table/Cells/TableRowCell.css'; 3 | 4 | width: 35px; 5 | white-space: nowrap; 6 | } 7 | -------------------------------------------------------------------------------- /frontend/src/Settings/ImportLists/ImportListExclusions/ImportListExclusionRow.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'actions': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Settings/ImportLists/ImportLists/AddImportListModalContent.css: -------------------------------------------------------------------------------- 1 | .lists { 2 | display: flex; 3 | justify-content: center; 4 | flex-wrap: wrap; 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/Settings/ImportLists/ImportLists/AddImportListModalContent.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'lists': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Settings/ImportLists/ImportLists/Manage/ManageImportListsModalRow.css: -------------------------------------------------------------------------------- 1 | .name, 2 | .tags, 3 | .enableAutomaticAdd, 4 | .qualityProfileId, 5 | .rootFolderPath, 6 | .implementation { 7 | composes: cell from '~Components/Table/Cells/TableRowCell.css'; 8 | 9 | word-break: break-all; 10 | } -------------------------------------------------------------------------------- /frontend/src/Settings/ImportLists/ImportLists/Manage/Tags/TagsModalContent.css: -------------------------------------------------------------------------------- 1 | .renameIcon { 2 | margin-left: 5px; 3 | } 4 | 5 | .message { 6 | margin-top: 20px; 7 | margin-bottom: 10px; 8 | } 9 | 10 | .result { 11 | padding-top: 4px; 12 | } 13 | -------------------------------------------------------------------------------- /frontend/src/Settings/Indexers/Indexers/AddIndexerModalContent.css: -------------------------------------------------------------------------------- 1 | .indexers { 2 | display: flex; 3 | justify-content: center; 4 | flex-wrap: wrap; 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/Settings/Indexers/Indexers/AddIndexerModalContent.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'indexers': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Settings/Indexers/Indexers/EditIndexerModalContent.css: -------------------------------------------------------------------------------- 1 | .deleteButton { 2 | composes: button from '~Components/Link/Button.css'; 3 | 4 | margin-right: auto; 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/Settings/Indexers/Indexers/EditIndexerModalContent.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'deleteButton': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Settings/Indexers/Indexers/Manage/Tags/TagsModalContent.css: -------------------------------------------------------------------------------- 1 | .renameIcon { 2 | margin-left: 5px; 3 | } 4 | 5 | .message { 6 | margin-top: 20px; 7 | margin-bottom: 10px; 8 | } 9 | 10 | .result { 11 | padding-top: 4px; 12 | } 13 | -------------------------------------------------------------------------------- /frontend/src/Settings/MediaManagement/Naming/Naming.css: -------------------------------------------------------------------------------- 1 | .namingInput { 2 | composes: input from '~Components/Form/TextInput.css'; 3 | 4 | font-family: $monoSpaceFontFamily; 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/Settings/MediaManagement/Naming/Naming.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'namingInput': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Settings/MediaManagement/RootFolder/AddRootFolder.css: -------------------------------------------------------------------------------- 1 | .addRootFolderButtonContainer { 2 | margin-top: 20px; 3 | } 4 | 5 | .importButtonIcon { 6 | margin-right: 8px; 7 | } 8 | -------------------------------------------------------------------------------- /frontend/src/Settings/Metadata/Metadata/Metadata.css: -------------------------------------------------------------------------------- 1 | .metadata { 2 | composes: card from '~Components/Card.css'; 3 | 4 | width: 290px; 5 | } 6 | 7 | .name { 8 | margin-bottom: 20px; 9 | font-weight: 300; 10 | font-size: 24px; 11 | } 12 | 13 | .section { 14 | margin-top: 10px; 15 | } 16 | -------------------------------------------------------------------------------- /frontend/src/Settings/Metadata/Metadata/Metadatas.css: -------------------------------------------------------------------------------- 1 | .metadatas { 2 | display: flex; 3 | flex-wrap: wrap; 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/Settings/Metadata/Metadata/Metadatas.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'metadatas': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Settings/Notifications/Notifications/AddNotificationModalContent.css: -------------------------------------------------------------------------------- 1 | .notifications { 2 | display: flex; 3 | justify-content: center; 4 | flex-wrap: wrap; 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/Settings/Notifications/Notifications/AddNotificationModalContent.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'notifications': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Settings/Notifications/Notifications/NotificationEventItems.css: -------------------------------------------------------------------------------- 1 | .events { 2 | margin-top: 10px; 3 | user-select: none; 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/Settings/Notifications/Notifications/NotificationEventItems.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'events': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Settings/Profiles/Delay/DelayProfileDragPreview.css: -------------------------------------------------------------------------------- 1 | .dragPreview { 2 | opacity: 0.75; 3 | } 4 | -------------------------------------------------------------------------------- /frontend/src/Settings/Profiles/Delay/DelayProfileDragPreview.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'dragPreview': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Settings/Profiles/Delay/EditDelayProfileModalContent.css: -------------------------------------------------------------------------------- 1 | .deleteButton { 2 | composes: button from '~Components/Link/Button.css'; 3 | 4 | margin-right: auto; 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/Settings/Profiles/Delay/EditDelayProfileModalContent.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'deleteButton': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Settings/Profiles/Quality/QualityProfileItemDragPreview.css: -------------------------------------------------------------------------------- 1 | .dragPreview { 2 | width: 380px; 3 | opacity: 0.75; 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/Settings/Profiles/Quality/QualityProfileItemDragPreview.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'dragPreview': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Settings/Quality/Reset/ResetQualityDefinitionsModalContent.css: -------------------------------------------------------------------------------- 1 | .messageContainer { 2 | margin-bottom: 20px; 3 | } 4 | -------------------------------------------------------------------------------- /frontend/src/Settings/Quality/Reset/ResetQualityDefinitionsModalContent.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'messageContainer': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Settings/Settings.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'link': string; 5 | 'summary': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Settings/Tags/AutoTagging/Specifications/AddSpecificationModalContent.css: -------------------------------------------------------------------------------- 1 | .specifications { 2 | display: flex; 3 | justify-content: center; 4 | flex-wrap: wrap; 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/Settings/Tags/AutoTagging/Specifications/AddSpecificationModalContent.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'specifications': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Settings/Tags/AutoTagging/Specifications/EditSpecificationModalContent.css: -------------------------------------------------------------------------------- 1 | .deleteButton { 2 | composes: button from '~Components/Link/Button.css'; 3 | 4 | margin-right: auto; 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/Settings/Tags/AutoTagging/Specifications/EditSpecificationModalContent.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'deleteButton': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Settings/Tags/Tag.css: -------------------------------------------------------------------------------- 1 | .tag { 2 | composes: card from '~Components/Card.css'; 3 | 4 | flex: 150px 0 1; 5 | } 6 | 7 | .label { 8 | margin-bottom: 20px; 9 | white-space: nowrap; 10 | font-weight: 300; 11 | font-size: 24px; 12 | } 13 | -------------------------------------------------------------------------------- /frontend/src/Settings/Tags/Tag.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'label': string; 5 | 'tag': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/Settings/Tags/Tags.css: -------------------------------------------------------------------------------- 1 | .tags { 2 | display: flex; 3 | flex-wrap: wrap; 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/Settings/Tags/Tags.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'tags': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Store/Migrators/migrate.js: -------------------------------------------------------------------------------- 1 | import migrateAddSeriesDefaults from './migrateAddSeriesDefaults'; 2 | 3 | export default function migrate(persistedState) { 4 | migrateAddSeriesDefaults(persistedState); 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/Store/Selectors/createDeepEqualSelector.ts: -------------------------------------------------------------------------------- 1 | import { isEqual } from 'lodash'; 2 | import { createSelectorCreator, defaultMemoize } from 'reselect'; 3 | 4 | const createDeepEqualSelector = createSelectorCreator(defaultMemoize, isEqual); 5 | 6 | export default createDeepEqualSelector; 7 | -------------------------------------------------------------------------------- /frontend/src/Store/scrollPositions.ts: -------------------------------------------------------------------------------- 1 | const scrollPositions: Record = { 2 | seriesIndex: 0, 3 | }; 4 | 5 | export default scrollPositions; 6 | -------------------------------------------------------------------------------- /frontend/src/Styles/Mixins/cover.css: -------------------------------------------------------------------------------- 1 | @define-mixin cover { 2 | position: absolute; 3 | top: 0; 4 | left: 0; 5 | display: block; 6 | width: 100%; 7 | height: 100%; 8 | } 9 | -------------------------------------------------------------------------------- /frontend/src/Styles/Mixins/linkOverlay.css: -------------------------------------------------------------------------------- 1 | @define-mixin linkOverlay { 2 | @add-mixin cover; 3 | 4 | pointer-events: none; 5 | user-select: none; 6 | 7 | a, 8 | button { 9 | pointer-events: all; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /frontend/src/Styles/Variables/animations.js: -------------------------------------------------------------------------------- 1 | // Use CommonJS since this is consumed by PostCSS via webpack (node.js). 2 | 3 | module.exports = { 4 | // Durations 5 | defaultSpeed: '0.2s', 6 | slowSpeed: '0.6s', 7 | fastSpeed: '0.1s' 8 | }; 9 | -------------------------------------------------------------------------------- /frontend/src/Styles/Variables/zIndexes.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | pageJumpBarZIndex: 10, 3 | modalZIndex: 1000, 4 | popperZIndex: 2000 5 | }; 6 | -------------------------------------------------------------------------------- /frontend/src/Styles/globals.css: -------------------------------------------------------------------------------- 1 | /* stylelint-disable */ 2 | 3 | @import '~normalize.css/normalize.css'; 4 | 5 | @import 'scaffolding.css'; 6 | 7 | /* stylelint-enable */ 8 | -------------------------------------------------------------------------------- /frontend/src/System/Backup/BackupRow.css: -------------------------------------------------------------------------------- 1 | .type { 2 | composes: cell from '~Components/Table/Cells/TableRowCell.css'; 3 | 4 | width: 20px; 5 | text-align: center; 6 | } 7 | 8 | .actions { 9 | composes: cell from '~Components/Table/Cells/TableRowCell.css'; 10 | 11 | width: 70px; 12 | } 13 | -------------------------------------------------------------------------------- /frontend/src/System/Backup/BackupRow.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'actions': string; 5 | 'type': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/System/Events/LogsTableDetailsModal.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'detailsText': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/System/Logs/Files/LogFilesTableRow.css: -------------------------------------------------------------------------------- 1 | .download { 2 | composes: cell from '~Components/Table/Cells/TableRowCell.css'; 3 | 4 | width: 100px; 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/System/Logs/Files/LogFilesTableRow.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'download': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/System/Status/About/About.css: -------------------------------------------------------------------------------- 1 | .descriptionList { 2 | composes: descriptionList from '~Components/DescriptionList/DescriptionList.css'; 3 | 4 | margin-bottom: 10px; 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/System/Status/About/About.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'descriptionList': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/System/Status/DiskSpace/DiskSpace.css: -------------------------------------------------------------------------------- 1 | .space { 2 | composes: cell from '~Components/Table/Cells/TableRowCell.css'; 3 | 4 | width: 150px; 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/System/Status/DiskSpace/DiskSpace.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'space': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/System/Tasks/Queued/QueuedTaskRowNameCell.css: -------------------------------------------------------------------------------- 1 | .commandName { 2 | display: inline-block; 3 | min-width: 220px; 4 | } 5 | 6 | .userAgent { 7 | color: #b0b0b0; 8 | } 9 | -------------------------------------------------------------------------------- /frontend/src/System/Tasks/Queued/QueuedTaskRowNameCell.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'commandName': string; 5 | 'userAgent': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/System/Updates/UpdateChanges.css: -------------------------------------------------------------------------------- 1 | .title { 2 | margin-top: 10px; 3 | font-size: 16px; 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/System/Updates/UpdateChanges.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'title': string; 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/Utilities/Array/sortByName.js: -------------------------------------------------------------------------------- 1 | function sortByName(a, b) { 2 | return a.name.localeCompare(b.name); 3 | } 4 | 5 | export default sortByName; 6 | -------------------------------------------------------------------------------- /frontend/src/Utilities/Command/isCommandComplete.js: -------------------------------------------------------------------------------- 1 | function isCommandComplete(command) { 2 | if (!command) { 3 | return false; 4 | } 5 | 6 | return command.status === 'complete'; 7 | } 8 | 9 | export default isCommandComplete; 10 | -------------------------------------------------------------------------------- /frontend/src/Utilities/Command/isCommandExecuting.js: -------------------------------------------------------------------------------- 1 | function isCommandExecuting(command) { 2 | if (!command) { 3 | return false; 4 | } 5 | 6 | return command.status === 'queued' || command.status === 'started'; 7 | } 8 | 9 | export default isCommandExecuting; 10 | -------------------------------------------------------------------------------- /frontend/src/Utilities/Constants/keyCodes.js: -------------------------------------------------------------------------------- 1 | export const TAB = 9; 2 | export const ENTER = 13; 3 | export const SHIFT = 16; 4 | export const CONTROL = 17; 5 | export const ESCAPE = 27; 6 | export const UP_ARROW = 38; 7 | export const DOWN_ARROW = 40; 8 | -------------------------------------------------------------------------------- /frontend/src/Utilities/Date/formatDate.js: -------------------------------------------------------------------------------- 1 | import moment from 'moment'; 2 | 3 | function formatDate(date, dateFormat) { 4 | if (!date) { 5 | return ''; 6 | } 7 | 8 | return moment(date).format(dateFormat); 9 | } 10 | 11 | export default formatDate; 12 | -------------------------------------------------------------------------------- /frontend/src/Utilities/Date/isSameWeek.js: -------------------------------------------------------------------------------- 1 | import moment from 'moment'; 2 | 3 | function isSameWeek(date) { 4 | if (!date) { 5 | return false; 6 | } 7 | 8 | return moment(date).isSame(moment(), 'week'); 9 | } 10 | 11 | export default isSameWeek; 12 | -------------------------------------------------------------------------------- /frontend/src/Utilities/Date/isToday.js: -------------------------------------------------------------------------------- 1 | import moment from 'moment'; 2 | 3 | function isToday(date) { 4 | if (!date) { 5 | return false; 6 | } 7 | 8 | return moment(date).isSame(moment(), 'day'); 9 | } 10 | 11 | export default isToday; 12 | -------------------------------------------------------------------------------- /frontend/src/Utilities/Date/isTomorrow.js: -------------------------------------------------------------------------------- 1 | import moment from 'moment'; 2 | 3 | function isTomorrow(date) { 4 | if (!date) { 5 | return false; 6 | } 7 | 8 | return moment(date).isSame(moment().add(1, 'day'), 'day'); 9 | } 10 | 11 | export default isTomorrow; 12 | -------------------------------------------------------------------------------- /frontend/src/Utilities/Date/isYesterday.js: -------------------------------------------------------------------------------- 1 | import moment from 'moment'; 2 | 3 | function isYesterday(date) { 4 | if (!date) { 5 | return false; 6 | } 7 | 8 | return moment(date).isSame(moment().subtract(1, 'day'), 'day'); 9 | } 10 | 11 | export default isYesterday; 12 | -------------------------------------------------------------------------------- /frontend/src/Utilities/Number/roundNumber.js: -------------------------------------------------------------------------------- 1 | export default function roundNumber(input, decimalPlaces = 1) { 2 | const multiplier = Math.pow(10, decimalPlaces); 3 | 4 | return Math.round(input * multiplier) / multiplier; 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/Utilities/Series/seriesTypes.js: -------------------------------------------------------------------------------- 1 | export const ANIME = 'anime'; 2 | export const DAILY = 'daily'; 3 | export const STANDARD = 'standard'; 4 | -------------------------------------------------------------------------------- /frontend/src/Utilities/State/getNextId.js: -------------------------------------------------------------------------------- 1 | function getNextId(items) { 2 | return items.reduce((id, x) => Math.max(id, x.id), 1) + 1; 3 | } 4 | 5 | export default getNextId; 6 | -------------------------------------------------------------------------------- /frontend/src/Utilities/String/combinePath.js: -------------------------------------------------------------------------------- 1 | export default function combinePath(isWindows, basePath, paths = []) { 2 | const slash = isWindows ? '\\' : '/'; 3 | 4 | return `${basePath}${slash}${paths.join(slash)}`; 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/Utilities/String/generateUUIDv4.js: -------------------------------------------------------------------------------- 1 | export default function generateUUIDv4() { 2 | return ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, (c) => 3 | // eslint-disable-next-line no-bitwise 4 | (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16) 5 | ); 6 | } 7 | -------------------------------------------------------------------------------- /frontend/src/Utilities/String/isString.js: -------------------------------------------------------------------------------- 1 | export default function isString(possibleString) { 2 | return typeof possibleString === 'string' || possibleString instanceof String; 3 | } 4 | -------------------------------------------------------------------------------- /frontend/src/Utilities/String/naturalExpansion.js: -------------------------------------------------------------------------------- 1 | const regex = /\d+/g; 2 | 3 | function naturalExpansion(input) { 4 | if (!input) { 5 | return ''; 6 | } 7 | 8 | return input.replace(regex, (n) => n.padStart(8, '0')); 9 | } 10 | 11 | export default naturalExpansion; 12 | -------------------------------------------------------------------------------- /frontend/src/Utilities/getPathWithUrlBase.js: -------------------------------------------------------------------------------- 1 | export default function getPathWithUrlBase(path) { 2 | return `${window.Sonarr.urlBase}${path}`; 3 | } 4 | -------------------------------------------------------------------------------- /frontend/src/Utilities/getUniqueElementId.js: -------------------------------------------------------------------------------- 1 | let i = 0; 2 | 3 | // returns a HTML 4.0 compliant element IDs (http://stackoverflow.com/a/79022) 4 | 5 | export default function getUniqueElementId() { 6 | return `id-${i++}`; 7 | } 8 | -------------------------------------------------------------------------------- /frontend/src/Utilities/pages.js: -------------------------------------------------------------------------------- 1 | const pages = { 2 | FIRST: 'first', 3 | PREVIOUS: 'previous', 4 | NEXT: 'next', 5 | LAST: 'last', 6 | EXACT: 'exact' 7 | }; 8 | 9 | export default pages; 10 | -------------------------------------------------------------------------------- /frontend/src/Utilities/sectionTypes.js: -------------------------------------------------------------------------------- 1 | const sectionTypes = { 2 | COLLECTION: 'collection', 3 | MODEL: 'model' 4 | }; 5 | 6 | export default sectionTypes; 7 | -------------------------------------------------------------------------------- /frontend/src/Wanted/CutoffUnmet/CutoffUnmetRow.css: -------------------------------------------------------------------------------- 1 | .episode, 2 | .languages, 3 | .status { 4 | composes: cell from '~Components/Table/Cells/TableRowCell.css'; 5 | 6 | width: 100px; 7 | } 8 | -------------------------------------------------------------------------------- /frontend/src/Wanted/Missing/MissingRow.css: -------------------------------------------------------------------------------- 1 | .episode, 2 | .status { 3 | composes: cell from '~Components/Table/Cells/TableRowCell.css'; 4 | 5 | width: 100px; 6 | } 7 | -------------------------------------------------------------------------------- /frontend/src/Wanted/Missing/MissingRow.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'episode': string; 5 | 'status': string; 6 | } 7 | export const cssExports: CssExports; 8 | export default cssExports; 9 | -------------------------------------------------------------------------------- /frontend/src/index.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 5 | } 6 | export const cssExports: CssExports; 7 | export default cssExports; 8 | -------------------------------------------------------------------------------- /frontend/src/typings/CustomFormat.ts: -------------------------------------------------------------------------------- 1 | export interface QualityProfileFormatItem { 2 | format: number; 3 | name: string; 4 | score: number; 5 | } 6 | 7 | interface CustomFormat { 8 | id: number; 9 | name: string; 10 | } 11 | 12 | export default CustomFormat; 13 | -------------------------------------------------------------------------------- /frontend/src/typings/ImportListExclusion.ts: -------------------------------------------------------------------------------- 1 | import ModelBase from 'App/ModelBase'; 2 | 3 | export default interface ImportListExclusion extends ModelBase { 4 | tvdbId: number; 5 | title: string; 6 | } 7 | -------------------------------------------------------------------------------- /frontend/src/typings/ImportListOptionsSettings.ts: -------------------------------------------------------------------------------- 1 | export type ListSyncLevel = 2 | | 'disabled' 3 | | 'logOnly' 4 | | 'keepAndUnmonitor' 5 | | 'keepAndTag'; 6 | 7 | export default interface ImportListOptionsSettings { 8 | listSyncLevel: ListSyncLevel; 9 | listSyncTag: number; 10 | } 11 | -------------------------------------------------------------------------------- /frontend/src/typings/IndexerFlag.ts: -------------------------------------------------------------------------------- 1 | interface IndexerFlag { 2 | id: number; 3 | name: string; 4 | } 5 | 6 | export default IndexerFlag; 7 | -------------------------------------------------------------------------------- /frontend/src/typings/Rejection.ts: -------------------------------------------------------------------------------- 1 | export enum RejectionType { 2 | Permanent = 'permanent', 3 | Temporary = 'temporary', 4 | } 5 | 6 | interface Rejection { 7 | reason: string; 8 | type: RejectionType; 9 | } 10 | 11 | export default Rejection; 12 | -------------------------------------------------------------------------------- /frontend/src/typings/RootFolder.ts: -------------------------------------------------------------------------------- 1 | import ModelBase from 'App/ModelBase'; 2 | 3 | interface RootFolder extends ModelBase { 4 | id: number; 5 | path: string; 6 | accessible: boolean; 7 | freeSpace?: number; 8 | unmappedFolders: object[]; 9 | } 10 | 11 | export default RootFolder; 12 | -------------------------------------------------------------------------------- /frontend/src/typings/UiSettings.ts: -------------------------------------------------------------------------------- 1 | export interface UiSettings { 2 | theme: string; 3 | showRelativeDates: boolean; 4 | shortDateFormat: string; 5 | longDateFormat: string; 6 | timeFormat: string; 7 | } 8 | -------------------------------------------------------------------------------- /frontend/src/typings/callbacks.ts: -------------------------------------------------------------------------------- 1 | import SortDirection from 'Helpers/Props/SortDirection'; 2 | 3 | export type SortCallback = ( 4 | sortKey: string, 5 | sortDirection: SortDirection 6 | ) => void; 7 | -------------------------------------------------------------------------------- /frontend/src/typings/inputs.ts: -------------------------------------------------------------------------------- 1 | export type CheckInputChanged = { 2 | name: string; 3 | value: boolean; 4 | }; 5 | -------------------------------------------------------------------------------- /frontend/src/typings/props.ts: -------------------------------------------------------------------------------- 1 | export interface SelectStateInputProps { 2 | id: number; 3 | value: boolean; 4 | shiftKey: boolean; 5 | } 6 | -------------------------------------------------------------------------------- /frontend/typings/Globals.d.ts: -------------------------------------------------------------------------------- 1 | declare module '*.module.css'; 2 | 3 | interface Window { 4 | Sonarr: { 5 | apiKey: string; 6 | instanceName: string; 7 | theme: string; 8 | urlBase: string; 9 | version: string; 10 | }; 11 | } 12 | -------------------------------------------------------------------------------- /global.json: -------------------------------------------------------------------------------- 1 | { 2 | "sdk": { 3 | "version": "6.0.405" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /src/.globalconfig: -------------------------------------------------------------------------------- 1 | is_global = true 2 | 3 | dotnet_diagnostic.CA1014.severity = none 4 | -------------------------------------------------------------------------------- /src/Directory.Build.targets: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/Libraries/Interop.NetFwTypeLib.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/src/Libraries/Interop.NetFwTypeLib.dll -------------------------------------------------------------------------------- /src/NzbDrone.Automation.Test/app.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Common.Test/DiskTests/IsParentFixtureBase.cs: -------------------------------------------------------------------------------- 1 | using NzbDrone.Test.Common; 2 | 3 | namespace NzbDrone.Common.Test.DiskTests 4 | { 5 | public class IsParentPathFixture : TestBase 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Common.Test/Http/HttpRequestFixture.cs: -------------------------------------------------------------------------------- 1 | using NUnit.Framework; 2 | 3 | namespace NzbDrone.Common.Test.Http 4 | { 5 | [TestFixture] 6 | public class HttpRequestFixture 7 | { 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/NzbDrone.Common.Test/app.config: -------------------------------------------------------------------------------- 1 |  2 | -------------------------------------------------------------------------------- /src/NzbDrone.Common/Disk/PathValidationType.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Common.Disk 2 | { 3 | public enum PathValidationType 4 | { 5 | CurrentOs, 6 | AnyOs 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Common/EnvironmentInfo/IOsVersionAdapter.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Common.EnvironmentInfo 2 | { 3 | public interface IOsVersionAdapter 4 | { 5 | bool Enabled { get; } 6 | OsVersionModel Read(); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Common/EnvironmentInfo/RuntimeMode.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Common.EnvironmentInfo 2 | { 3 | public enum RuntimeMode 4 | { 5 | Console, 6 | Service, 7 | Tray 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/NzbDrone.Common/Expansive/Tree.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Common.Expansive 2 | { 3 | internal class Tree : TreeNode 4 | { 5 | public Tree(T rootValue) 6 | : base(rootValue) 7 | { 8 | Value = rootValue; 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/NzbDrone.Common/Expansive/license.txt: -------------------------------------------------------------------------------- 1 | Source: https://github.com/anderly/Expansive 2 | Microsoft Public License (MS-PL): http://opensource.org/licenses/MS-PL -------------------------------------------------------------------------------- /src/NzbDrone.Common/Http/IHttpRequestInterceptor.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Common.Http 2 | { 3 | public interface IHttpRequestInterceptor 4 | { 5 | HttpRequest PreRequest(HttpRequest request); 6 | HttpResponse PostResponse(HttpResponse response); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Common/Http/Proxy/IHttpProxySettingsProvider.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Common.Http.Proxy 2 | { 3 | public interface IHttpProxySettingsProvider 4 | { 5 | HttpProxySettings GetProxySettings(HttpUri uri); 6 | HttpProxySettings GetProxySettings(); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Common/Http/Proxy/ProxyType.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Common.Http.Proxy 2 | { 3 | public enum ProxyType 4 | { 5 | Http, 6 | Socks4, 7 | Socks5 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/NzbDrone.Common/Messaging/IEvent.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Common.Messaging 2 | { 3 | public interface IEvent : IMessage 4 | { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/NzbDrone.Common/Messaging/IMessage.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Common.Messaging 2 | { 3 | public interface IMessage 4 | { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/NzbDrone.Core.Test/Files/Indexers/Newznab/unauthorized.xml: -------------------------------------------------------------------------------- 1 |  2 | -------------------------------------------------------------------------------- /src/NzbDrone.Core.Test/Files/Media/H264_sample.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/src/NzbDrone.Core.Test/Files/Media/H264_sample.mp4 -------------------------------------------------------------------------------- /src/NzbDrone.Core.Test/Files/Nzbget/JsonError.txt: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.1", 3 | "error": { 4 | "name": "JSONRPCError", 5 | "code": 1, 6 | "message": "Invalid procedure" 7 | } 8 | } -------------------------------------------------------------------------------- /src/NzbDrone.Core.Test/Files/Nzbget/Queue_empty.txt: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.1", 3 | "result": [] 4 | } -------------------------------------------------------------------------------- /src/NzbDrone.Core.Test/Files/Nzbs/NewznabError.nzb: -------------------------------------------------------------------------------- 1 |  2 | -------------------------------------------------------------------------------- /src/NzbDrone.Core.Test/Files/Nzbs/NoFiles.nzb: -------------------------------------------------------------------------------- 1 |  2 | 5 | 6 | -------------------------------------------------------------------------------- /src/NzbDrone.Core.Test/Files/TestArchive.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/src/NzbDrone.Core.Test/Files/TestArchive.tar.gz -------------------------------------------------------------------------------- /src/NzbDrone.Core.Test/Files/TestArchive.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/src/NzbDrone.Core.Test/Files/TestArchive.zip -------------------------------------------------------------------------------- /src/NzbDrone.Core.Test/Files/Xem/Failure.txt: -------------------------------------------------------------------------------- 1 | { 2 | 3 | "result": "failure", 4 | "data": [ ], 5 | "message": "no show with the tvdb_id 79488 found" 6 | 7 | } -------------------------------------------------------------------------------- /src/NzbDrone.Core.Test/Files/Xem/Ids.txt: -------------------------------------------------------------------------------- 1 | { 2 | 3 | "result": "success", 4 | "data": [ 5 | "73141", 6 | "79886", 7 | ], 8 | "message": "" 9 | 10 | } -------------------------------------------------------------------------------- /src/NzbDrone.Core.Test/Files/emptyfile.txt: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /src/NzbDrone.Core.Test/app.config: -------------------------------------------------------------------------------- 1 |  2 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Annotations/SelectOptionsConverter.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace NzbDrone.Core.Annotations 4 | { 5 | public interface ISelectOptionsConverter 6 | { 7 | List GetSelectOptions(); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Authentication/AuthenticationRequiredType.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Authentication 2 | { 3 | public enum AuthenticationRequiredType 4 | { 5 | Enabled = 0, 6 | DisabledForLocalAddresses = 1 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Authentication/AuthenticationType.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Authentication 2 | { 3 | public enum AuthenticationType 4 | { 5 | None = 0, 6 | Basic = 1, 7 | Forms = 2, 8 | External = 3 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Blocklisting/ClearBlocklistCommand.cs: -------------------------------------------------------------------------------- 1 | using NzbDrone.Core.Messaging.Commands; 2 | 3 | namespace NzbDrone.Core.Blocklisting 4 | { 5 | public class ClearBlocklistCommand : Command 6 | { 7 | public override bool SendUpdatesToClient => true; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Configuration/Events/ConfigFileSavedEvent.cs: -------------------------------------------------------------------------------- 1 | using NzbDrone.Common.Messaging; 2 | 3 | namespace NzbDrone.Core.Configuration.Events 4 | { 5 | public class ConfigFileSavedEvent : IEvent 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Configuration/Events/ConfigSavedEvent.cs: -------------------------------------------------------------------------------- 1 | using NzbDrone.Common.Messaging; 2 | 3 | namespace NzbDrone.Core.Configuration.Events 4 | { 5 | public class ConfigSavedEvent : IEvent 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Configuration/RescanAfterRefreshType.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Configuration 2 | { 3 | public enum RescanAfterRefreshType 4 | { 5 | Always, 6 | AfterManual, 7 | Never 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Configuration/ResetApiKeyCommand.cs: -------------------------------------------------------------------------------- 1 | using NzbDrone.Core.Messaging.Commands; 2 | 3 | namespace NzbDrone.Core.Configuration 4 | { 5 | public class ResetApiKeyCommand : Command 6 | { 7 | public override bool SendUpdatesToClient => true; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/DataAugmentation/DailySeries/DailySeries.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.DataAugmentation.DailySeries 2 | { 3 | public class DailySeries 4 | { 5 | public int TvdbId { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/DataAugmentation/Scene/ISceneMappingProvider.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace NzbDrone.Core.DataAugmentation.Scene 4 | { 5 | public interface ISceneMappingProvider 6 | { 7 | List GetSceneMappings(); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/DataAugmentation/Scene/SceneMappingsUpdatedEvent.cs: -------------------------------------------------------------------------------- 1 | using NzbDrone.Common.Messaging; 2 | 3 | namespace NzbDrone.Core.DataAugmentation.Scene 4 | { 5 | public class SceneMappingsUpdatedEvent : IEvent 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/DataAugmentation/Scene/SearchMode.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NzbDrone.Core.DataAugmentation.Scene 4 | { 5 | [Flags] 6 | public enum SearchMode 7 | { 8 | Default = 0, 9 | SearchID = 1, 10 | SearchTitle = 2 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/DataAugmentation/Scene/UpdateSceneMappingCommand.cs: -------------------------------------------------------------------------------- 1 | using NzbDrone.Core.Messaging.Commands; 2 | 3 | namespace NzbDrone.Core.DataAugmentation.Scene 4 | { 5 | public class UpdateSceneMappingCommand : Command 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/DataAugmentation/Xem/Model/XemSceneTvdbMapping.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.DataAugmentation.Xem.Model 2 | { 3 | public class XemSceneTvdbMapping 4 | { 5 | public XemValues Scene { get; set; } 6 | public XemValues Tvdb { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Datastore/IEmbeddedDocument.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Datastore 2 | { 3 | public interface IEmbeddedDocument 4 | { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Datastore/Migration/Framework/MigrationType.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Datastore.Migration.Framework 2 | { 3 | public enum MigrationType 4 | { 5 | Main, 6 | Log 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Datastore/ModelBase.cs: -------------------------------------------------------------------------------- 1 | using System.Diagnostics; 2 | 3 | namespace NzbDrone.Core.Datastore 4 | { 5 | [DebuggerDisplay("{GetType()} ID = {Id}")] 6 | public abstract class ModelBase 7 | { 8 | public int Id { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Datastore/ResultSet.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Datastore 2 | { 3 | public class ResultSet 4 | { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Datastore/WhereBuilder.cs: -------------------------------------------------------------------------------- 1 | using Dapper; 2 | 3 | namespace NzbDrone.Core.Datastore 4 | { 5 | public abstract class WhereBuilder : ExpressionVisitor 6 | { 7 | public DynamicParameters Parameters { get; protected set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/DecisionEngine/IRejectWithReason.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.DecisionEngine 2 | { 3 | public interface IRejectWithReason 4 | { 5 | string RejectionReason { get; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/DecisionEngine/RejectionType.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.DecisionEngine 2 | { 3 | public enum RejectionType 4 | { 5 | Permanent = 0, 6 | Temporary = 1 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/DecisionEngine/SpecificationPriority.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.DecisionEngine 2 | { 3 | public enum SpecificationPriority 4 | { 5 | Default = 0, 6 | Parsing = 0, 7 | Database = 0, 8 | Disk = 1 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Download/CheckForFinishedDownloadCommand.cs: -------------------------------------------------------------------------------- 1 | using NzbDrone.Core.Messaging.Commands; 2 | 3 | namespace NzbDrone.Core.Download 4 | { 5 | public class CheckForFinishedDownloadCommand : Command 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Download/Clients/Deluge/DelugeError.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Download.Clients.Deluge 2 | { 3 | public class DelugeError 4 | { 5 | public string Message { get; set; } 6 | public int Code { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Download/Clients/Deluge/DelugePriority.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Download.Clients.Deluge 2 | { 3 | public enum DelugePriority 4 | { 5 | Last = 0, 6 | First = 1 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Download/Clients/DownloadStation/Responses/DiskStationAuthResponse.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Download.Clients.DownloadStation.Responses 2 | { 3 | public class DiskStationAuthResponse 4 | { 5 | public string SId { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Download/Clients/Flood/Types/FloodClientSettings.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Download.Clients.Flood.Types 2 | { 3 | public class FloodClientSettings 4 | { 5 | public string DirectoryDefault { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Download/Clients/FreeboxDownload/FreeboxDownloadPriority.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Download.Clients.FreeboxDownload 2 | { 3 | public enum FreeboxDownloadPriority 4 | { 5 | Last = 0, 6 | First = 1 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Download/Clients/Hadouken/Models/HadoukenTorrentResponse.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Download.Clients.Hadouken.Models 2 | { 3 | public class HadoukenTorrentResponse 4 | { 5 | public object[][] Torrents { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Download/Clients/NzbVortex/NzbVortexGroup.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Download.Clients.NzbVortex 2 | { 3 | public class NzbVortexGroup 4 | { 5 | public string GroupName { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Download/Clients/NzbVortex/NzbVortexLoginResultType.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Download.Clients.NzbVortex 2 | { 3 | public enum NzbVortexLoginResultType 4 | { 5 | Successful, 6 | Failed 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Download/Clients/NzbVortex/NzbVortexPriority.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Download.Clients.NzbVortex 2 | { 3 | public enum NzbVortexPriority 4 | { 5 | Low = -1, 6 | Normal = 0, 7 | High = 1, 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Download/Clients/NzbVortex/NzbVortexResultType.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Download.Clients.NzbVortex 2 | { 3 | public enum NzbVortexResultType 4 | { 5 | Ok, 6 | NotLoggedIn, 7 | UnknownCommand 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Download/Clients/NzbVortex/Responses/NzbVortexApiVersionResponse.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Download.Clients.NzbVortex.Responses 2 | { 3 | public class NzbVortexApiVersionResponse : NzbVortexResponseBase 4 | { 5 | public string ApiLevel { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Download/Clients/NzbVortex/Responses/NzbVortexAuthNonceResponse.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Download.Clients.NzbVortex.Responses 2 | { 3 | public class NzbVortexAuthNonceResponse 4 | { 5 | public string AuthNonce { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Download/Clients/NzbVortex/Responses/NzbVortexVersionResponse.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Download.Clients.NzbVortex.Responses 2 | { 3 | public class NzbVortexVersionResponse : NzbVortexResponseBase 4 | { 5 | public string Version { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Download/Clients/Nzbget/JsonError.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Download.Clients.Nzbget 2 | { 3 | public class JsonError 4 | { 5 | public string Version { get; set; } 6 | public ErrorModel Error { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Download/Clients/Nzbget/NzbgetConfigItem.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Download.Clients.Nzbget 2 | { 3 | public class NzbgetConfigItem 4 | { 5 | public string Name { get; set; } 6 | public string Value { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Download/Clients/Nzbget/NzbgetParameter.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Download.Clients.Nzbget 2 | { 3 | public class NzbgetParameter 4 | { 5 | public string Name { get; set; } 6 | public object Value { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Download/Clients/Nzbget/NzbgetResponse.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Download.Clients.Nzbget 2 | { 3 | public class NzbgetResponse 4 | { 5 | public string Version { get; set; } 6 | 7 | public T Result { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Download/Clients/QBittorrent/QBittorrentContentLayout.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Download.Clients.QBittorrent 2 | { 3 | public enum QBittorrentContentLayout 4 | { 5 | Default = 0, 6 | Original = 1, 7 | Subfolder = 2 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Download/Clients/QBittorrent/QBittorrentLabel.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Download.Clients.QBittorrent 2 | { 3 | public class QBittorrentLabel 4 | { 5 | public string Name { get; set; } 6 | public string SavePath { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Download/Clients/QBittorrent/QBittorrentPriority.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Download.Clients.QBittorrent 2 | { 3 | public enum QBittorrentPriority 4 | { 5 | Last = 0, 6 | First = 1 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Download/Clients/QBittorrent/QBittorrentState.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Download.Clients.QBittorrent 2 | { 3 | public enum QBittorrentState 4 | { 5 | Start = 0, 6 | ForceStart = 1, 7 | Pause = 2 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Download/Clients/Sabnzbd/Responses/SabnzbdConfigResponse.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Download.Clients.Sabnzbd.Responses 2 | { 3 | public class SabnzbdConfigResponse 4 | { 5 | public SabnzbdConfig Config { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Download/Clients/Sabnzbd/Responses/SabnzbdFullStatusResponse.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Download.Clients.Sabnzbd.Responses 2 | { 3 | public class SabnzbdFullStatusResponse 4 | { 5 | public SabnzbdFullStatus Status { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Download/Clients/Sabnzbd/Responses/SabnzbdVersionResponse.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Download.Clients.Sabnzbd.Responses 2 | { 3 | public class SabnzbdVersionResponse 4 | { 5 | public string Version { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Download/Clients/Transmission/TransmissionPriority.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Download.Clients.Transmission 2 | { 3 | public enum TransmissionPriority 4 | { 5 | Last = 0, 6 | First = 1 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Download/Clients/rTorrent/RTorrentPriority.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Download.Clients.RTorrent 2 | { 3 | public enum RTorrentPriority 4 | { 5 | VeryLow = 0, 6 | Low = 1, 7 | Normal = 2, 8 | High = 3 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Download/Clients/uTorrent/UTorrentPriority.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Download.Clients.UTorrent 2 | { 3 | public enum UTorrentPriority 4 | { 5 | Last = 0, 6 | First = 1 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Download/Clients/uTorrent/UtorrentState.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Download.Clients.UTorrent 2 | { 3 | public enum UTorrentState 4 | { 5 | Start = 0, 6 | ForceStart = 1, 7 | Pause = 2, 8 | Stop = 3 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Download/DownloadClientStatus.cs: -------------------------------------------------------------------------------- 1 | using NzbDrone.Core.ThingiProvider.Status; 2 | 3 | namespace NzbDrone.Core.Download 4 | { 5 | public class DownloadClientStatus : ProviderStatusBase 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Download/DownloadClientType.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Download 2 | { 3 | public enum DownloadClientType 4 | { 5 | Sabnzbd = 0, 6 | Blackhole = 1, 7 | Pneumatic = 2, 8 | Nzbget = 3 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Download/DownloadsProcessedEvent.cs: -------------------------------------------------------------------------------- 1 | using NzbDrone.Common.Messaging; 2 | 3 | namespace NzbDrone.Core.Download 4 | { 5 | public class DownloadsProcessedEvent : IEvent 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Download/Pending/PendingReleaseReason.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Download.Pending 2 | { 3 | public enum PendingReleaseReason 4 | { 5 | Delay = 0, 6 | DownloadClientUnavailable = 1, 7 | Fallback = 2 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Download/Pending/PendingReleasesUpdatedEvent.cs: -------------------------------------------------------------------------------- 1 | using NzbDrone.Common.Messaging; 2 | 3 | namespace NzbDrone.Core.Download.Pending 4 | { 5 | public class PendingReleasesUpdatedEvent : IEvent 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Download/ProcessedDecisionResult.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Download 2 | { 3 | public enum ProcessedDecisionResult 4 | { 5 | Grabbed, 6 | Pending, 7 | Rejected, 8 | Failed, 9 | Skipped 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Download/RefreshMonitoredDownloadsCommand.cs: -------------------------------------------------------------------------------- 1 | using NzbDrone.Core.Messaging.Commands; 2 | 3 | namespace NzbDrone.Core.Download 4 | { 5 | public class RefreshMonitoredDownloadsCommand : Command 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Extras/Metadata/MetadataDefinition.cs: -------------------------------------------------------------------------------- 1 | using NzbDrone.Core.ThingiProvider; 2 | 3 | namespace NzbDrone.Core.Extras.Metadata 4 | { 5 | public class MetadataDefinition : ProviderDefinition 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Extras/Metadata/MetadataSectionType.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Extras.Metadata 2 | { 3 | public static class MetadataSectionType 4 | { 5 | public const string Metadata = "metadata"; 6 | public const string Image = "image"; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Extras/Others/OtherExtraFile.cs: -------------------------------------------------------------------------------- 1 | using NzbDrone.Core.Extras.Files; 2 | 3 | namespace NzbDrone.Core.Extras.Others 4 | { 5 | public class OtherExtraFile : ExtraFile 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/HealthCheck/CheckHealthCommand.cs: -------------------------------------------------------------------------------- 1 | using NzbDrone.Core.Messaging.Commands; 2 | 3 | namespace NzbDrone.Core.HealthCheck 4 | { 5 | public class CheckHealthCommand : Command 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/HealthCheck/HealthCheckCompleteEvent.cs: -------------------------------------------------------------------------------- 1 | using NzbDrone.Common.Messaging; 2 | 3 | namespace NzbDrone.Core.HealthCheck 4 | { 5 | public class HealthCheckCompleteEvent : IEvent 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/HealthCheck/ICheckOnCondition.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.HealthCheck 2 | { 3 | public interface ICheckOnCondition 4 | { 5 | bool ShouldCheckOnEvent(TEvent message); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/HealthCheck/IProvideHealthCheck.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.HealthCheck 2 | { 3 | public interface IProvideHealthCheck 4 | { 5 | HealthCheck Check(); 6 | bool CheckOnStartup { get; } 7 | bool CheckOnSchedule { get; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Housekeeping/HousekeepingCommand.cs: -------------------------------------------------------------------------------- 1 | using NzbDrone.Core.Messaging.Commands; 2 | 3 | namespace NzbDrone.Core.Housekeeping 4 | { 5 | public class HousekeepingCommand : Command 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Housekeeping/IHousekeepingTask.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Housekeeping 2 | { 3 | public interface IHousekeepingTask 4 | { 5 | void Clean(); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/ImportLists/Custom/CustomAPIResource.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.ImportLists.Custom 2 | { 3 | public class CustomSeries 4 | { 5 | public int TvdbId { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/ImportLists/IImportListRequestGenerator.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.ImportLists 2 | { 3 | public interface IImportListRequestGenerator 4 | { 5 | ImportListPageableRequestChain GetListItems(); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/ImportLists/IImportListSettings.cs: -------------------------------------------------------------------------------- 1 | using NzbDrone.Core.ThingiProvider; 2 | 3 | namespace NzbDrone.Core.ImportLists 4 | { 5 | public interface IImportListSettings : IProviderConfig 6 | { 7 | string BaseUrl { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/ImportLists/ImportListType.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.ImportLists 2 | { 3 | public enum ImportListType 4 | { 5 | Program, 6 | Plex, 7 | Trakt, 8 | Simkl, 9 | Other, 10 | Advanced 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/ImportLists/ListSyncLevelType.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.ImportLists 2 | { 3 | public enum ListSyncLevelType 4 | { 5 | Disabled, 6 | LogOnly, 7 | KeepAndUnmonitor, 8 | KeepAndTag 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/ImportLists/Simkl/User/SimklUserShowType.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.ImportLists.Simkl.User 2 | { 3 | public enum SimklUserShowType 4 | { 5 | Shows = 0, 6 | Anime = 1 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Indexers/DownloadProtocol.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Indexers 2 | { 3 | public enum DownloadProtocol 4 | { 5 | Unknown = 0, 6 | Usenet = 1, 7 | Torrent = 2 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Indexers/IIndexerSettings.cs: -------------------------------------------------------------------------------- 1 | using NzbDrone.Core.ThingiProvider; 2 | 3 | namespace NzbDrone.Core.Indexers 4 | { 5 | public interface IIndexerSettings : IProviderConfig 6 | { 7 | string BaseUrl { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Indexers/IndexerDefaults.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Indexers 2 | { 3 | public static class IndexerDefaults 4 | { 5 | public const int MINIMUM_SEEDERS = 1; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Indexers/RssEnclosure.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Indexers 2 | { 3 | public class RssEnclosure 4 | { 5 | public string Url { get; set; } 6 | public string Type { get; set; } 7 | public long Length { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Instrumentation/Commands/ClearLogCommand.cs: -------------------------------------------------------------------------------- 1 | using NzbDrone.Core.Messaging.Commands; 2 | 3 | namespace NzbDrone.Core.Instrumentation.Commands 4 | { 5 | public class ClearLogCommand : Command 6 | { 7 | public override bool SendUpdatesToClient => true; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Lifecycle/ApplicationStartedEvent.cs: -------------------------------------------------------------------------------- 1 | using NzbDrone.Common.Messaging; 2 | 3 | namespace NzbDrone.Core.Lifecycle 4 | { 5 | public class ApplicationStartedEvent : IEvent 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Lifecycle/ApplicationStartingEvent.cs: -------------------------------------------------------------------------------- 1 | using NzbDrone.Common.Messaging; 2 | 3 | namespace NzbDrone.Core.Lifecycle 4 | { 5 | public class ApplicationStartingEvent : IEvent 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Lifecycle/Commands/RestartCommand.cs: -------------------------------------------------------------------------------- 1 | using NzbDrone.Core.Messaging.Commands; 2 | 3 | namespace NzbDrone.Core.Lifecycle.Commands 4 | { 5 | public class RestartCommand : Command 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Lifecycle/Commands/ShutdownCommand.cs: -------------------------------------------------------------------------------- 1 | using NzbDrone.Core.Messaging.Commands; 2 | 3 | namespace NzbDrone.Core.Lifecycle.Commands 4 | { 5 | public class ShutdownCommand : Command 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Localization/Core/ar.json: -------------------------------------------------------------------------------- 1 | { 2 | "AddAutoTag": "أضف كلمات دلالية تلقائيا", 3 | "AddCondition": "إضافة شرط" 4 | } 5 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Localization/Core/bg.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Localization/Core/bn.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Localization/Core/bs.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Localization/Core/es_MX.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Localization/Core/et.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Localization/Core/fa.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Localization/Core/hi.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Localization/Core/is.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Localization/Core/ja.json: -------------------------------------------------------------------------------- 1 | { 2 | "About": "約" 3 | } 4 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Localization/Core/lt.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Localization/Core/sk.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Localization/Core/sr.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Localization/Core/ta.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Localization/Core/th.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/MediaFiles/Commands/BackendCommandAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NzbDrone.Core.MediaFiles.Commands 4 | { 5 | public class BackendCommandAttribute : Attribute 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/MediaFiles/Commands/CleanUpRecycleBinCommand.cs: -------------------------------------------------------------------------------- 1 | using NzbDrone.Core.Messaging.Commands; 2 | 3 | namespace NzbDrone.Core.MediaFiles.Commands 4 | { 5 | public class CleanUpRecycleBinCommand : Command 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/MediaFiles/DeleteMediaFileReason.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.MediaFiles 2 | { 3 | public enum DeleteMediaFileReason 4 | { 5 | MissingFromDisk, 6 | Manual, 7 | Upgrade, 8 | NoLinkedEpisodes, 9 | ManualOverride 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/MediaFiles/EpisodeImport/DetectSampleResult.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.MediaFiles.EpisodeImport 2 | { 3 | public enum DetectSampleResult 4 | { 5 | Indeterminate, 6 | Sample, 7 | NotSample 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/MediaFiles/EpisodeImport/EpisodeTitleRequiredType.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.MediaFiles.EpisodeImport 2 | { 3 | public enum EpisodeTitleRequiredType 4 | { 5 | Always = 0, 6 | BulkSeasonReleases = 1, 7 | Never = 2 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/MediaFiles/EpisodeImport/ImportMode.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.MediaFiles.EpisodeImport 2 | { 3 | public enum ImportMode 4 | { 5 | Auto = 0, 6 | Move = 1, 7 | Copy = 2 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/MediaFiles/EpisodeImport/ImportResultType.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.MediaFiles.EpisodeImport 2 | { 3 | public enum ImportResultType 4 | { 5 | Imported, 6 | Rejected, 7 | Skipped 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/MediaFiles/Events/DeleteCompletedEvent.cs: -------------------------------------------------------------------------------- 1 | using NzbDrone.Common.Messaging; 2 | 3 | namespace NzbDrone.Core.MediaFiles.Events 4 | { 5 | public class DeleteCompletedEvent : IEvent 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/MediaFiles/Events/RenameCompletedEvent.cs: -------------------------------------------------------------------------------- 1 | using NzbDrone.Common.Messaging; 2 | 3 | namespace NzbDrone.Core.MediaFiles.Events 4 | { 5 | public class RenameCompletedEvent : IEvent 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/MediaFiles/FileDateType.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.MediaFiles 2 | { 3 | public enum FileDateType 4 | { 5 | None = 0, 6 | LocalAirDate = 1, 7 | UtcAirDate = 2 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/MediaFiles/ScriptImportDecision.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.MediaFiles 2 | { 3 | public enum ScriptImportDecision 4 | { 5 | MoveComplete, 6 | RenameRequested, 7 | RejectExtra, 8 | DeferMove 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Messaging/Commands/BackendCommandAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NzbDrone.Core.Messaging.Commands 4 | { 5 | public class BackendCommandAttribute : Attribute 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Messaging/Commands/CommandPriority.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Messaging.Commands 2 | { 3 | public enum CommandPriority 4 | { 5 | Low = -1, 6 | Normal = 0, 7 | High = 1 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Messaging/Commands/CommandResult.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Messaging.Commands 2 | { 3 | public enum CommandResult 4 | { 5 | Unknown = 0, 6 | Successful = 1, 7 | Unsuccessful = 2 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Messaging/Commands/CommandTrigger.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Messaging.Commands 2 | { 3 | public enum CommandTrigger 4 | { 5 | Unspecified = 0, 6 | Manual = 1, 7 | Scheduled = 2 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Messaging/Commands/IExecute.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Messaging.Commands 2 | { 3 | public interface IExecute : IProcessMessage 4 | where TCommand : Command 5 | { 6 | void Execute(TCommand message); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Messaging/Commands/MessagingCleanupCommand.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Messaging.Commands 2 | { 3 | public class MessagingCleanupCommand : Command 4 | { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/MetadataSource/SkyHook/Resource/ImageResource.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.MetadataSource.SkyHook.Resource 2 | { 3 | public class ImageResource 4 | { 5 | public string CoverType { get; set; } 6 | public string Url { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/MetadataSource/SkyHook/Resource/RatingResource.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.MetadataSource.SkyHook.Resource 2 | { 3 | public class RatingResource 4 | { 5 | public int Count { get; set; } 6 | public decimal Value { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/MetadataSource/SkyHook/Resource/TimeOfDayResource.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.MetadataSource.SkyHook.Resource 2 | { 3 | public class TimeOfDayResource 4 | { 5 | public int Hours { get; set; } 6 | public int Minutes { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Notifications/Apprise/AppriseError.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Notifications.Apprise 2 | { 3 | public class AppriseError 4 | { 5 | public string Error { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Notifications/Discord/Payloads/DiscordImage.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Notifications.Discord.Payloads 2 | { 3 | public class DiscordImage 4 | { 5 | public string Url { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Notifications/Gotify/GotifyPriority.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Notifications.Gotify 2 | { 3 | public enum GotifyPriority 4 | { 5 | Min = 0, 6 | Low = 2, 7 | Normal = 5, 8 | High = 8 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Notifications/Join/JoinPriority.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Notifications.Join 2 | { 3 | public enum JoinPriority 4 | { 5 | Silent = -2, 6 | Quiet = -1, 7 | Normal = 0, 8 | High = 1, 9 | Emergency = 2 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Notifications/NotificationStatus.cs: -------------------------------------------------------------------------------- 1 | using NzbDrone.Core.ThingiProvider.Status; 2 | 3 | namespace NzbDrone.Core.Notifications 4 | { 5 | public class NotificationStatus : ProviderStatusBase 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Notifications/Ntfy/NtfyPriority.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Notifications.Ntfy 2 | { 3 | public enum NtfyPriority 4 | { 5 | Min = 1, 6 | Low = 2, 7 | Default = 3, 8 | High = 4, 9 | Max = 5 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Notifications/Plex/PlexMediaType.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Notifications.Plex 2 | { 3 | public enum PlexMediaType 4 | { 5 | None, 6 | Movie, 7 | Show 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Notifications/Plex/PlexTv/PlexTvSignInUrlResponse.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Notifications.Plex.PlexTv 2 | { 3 | public class PlexTvSignInUrlResponse 4 | { 5 | public string OauthUrl { get; set; } 6 | public int PinId { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Notifications/Plex/Server/PlexError.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Notifications.Plex.Server 2 | { 3 | public class PlexError 4 | { 5 | public string Error { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Notifications/Plex/Server/PlexIdentity.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Notifications.Plex.Server 2 | { 3 | public class PlexIdentity 4 | { 5 | public string MachineIdentifier { get; set; } 6 | public string Version { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Notifications/Plex/Server/PlexResponse.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Notifications.Plex.Server 2 | { 3 | public class PlexResponse 4 | { 5 | public T MediaContainer { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Notifications/Prowl/ProwlPriority.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Notifications.Prowl 2 | { 3 | public enum ProwlPriority 4 | { 5 | VeryLow = -2, 6 | Low = -1, 7 | Normal = 0, 8 | High = 1, 9 | Emergency = 2 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Notifications/Pushcut/PushcutResponse.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Notifications.Pushcut 2 | { 3 | public class PushcutResponse 4 | { 5 | public string Error { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Notifications/Pushover/PushoverPriority.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Notifications.Pushover 2 | { 3 | public enum PushoverPriority 4 | { 5 | Silent = -2, 6 | Quiet = -1, 7 | Normal = 0, 8 | High = 1, 9 | Emergency = 2 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Notifications/Signal/SignalError.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Notifications.Signal 2 | { 3 | public class SignalError 4 | { 5 | public string Error { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Notifications/Trakt/Resource/TraktCollectShowResource.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Notifications.Trakt.Resource 2 | { 3 | public class TraktCollectShow : TraktShowResource 4 | { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Notifications/Trakt/Resource/TraktUserIdsResource.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Notifications.Trakt.Resource 2 | { 3 | public class TraktUserIdsResource 4 | { 5 | public string Slug { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Notifications/Trakt/Resource/TraktUserSettingsResource.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Notifications.Trakt.Resource 2 | { 3 | public class TraktUserSettingsResource 4 | { 5 | public TraktUserResource User { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Notifications/Twitter/OAuthToken.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Notifications.Twitter 2 | { 3 | public class OAuthToken 4 | { 5 | public string AccessToken { get; set; } 6 | public string AccessTokenSecret { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Notifications/Webhook/WebhookMethod.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Notifications.Webhook 2 | { 3 | public enum WebhookMethod 4 | { 5 | POST = 1, 6 | PUT = 2 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Notifications/Webhook/WebhookSeriesAddPayload.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Notifications.Webhook 2 | { 3 | public class WebhookSeriesAddPayload : WebhookPayload 4 | { 5 | public WebhookSeries Series { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Organizer/EpisodeFormat.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Organizer 2 | { 3 | public class AbsoluteEpisodeFormat 4 | { 5 | public string Separator { get; set; } 6 | public string AbsoluteEpisodePattern { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Profiles/Releases/TermMatchers/ITermMatcher.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Profiles.Releases.TermMatchers 2 | { 3 | public interface ITermMatcher 4 | { 5 | bool IsMatch(string value); 6 | string MatchingTerm(string value); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Runtime.CompilerServices; 2 | 3 | [assembly: InternalsVisibleTo("Sonarr.Core.Test")] 4 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Qualities/ProperDownloadTypes.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Qualities 2 | { 3 | public enum ProperDownloadTypes 4 | { 5 | PreferAndUpgrade, 6 | DoNotUpgrade, 7 | DoNotPrefer 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Qualities/QualityDetectionSource.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Qualities 2 | { 3 | public enum QualityDetectionSource 4 | { 5 | Unknown, 6 | Name, 7 | Extension, 8 | MediaInfo 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Queue/QueueUpdatedEvent.cs: -------------------------------------------------------------------------------- 1 | using NzbDrone.Common.Messaging; 2 | 3 | namespace NzbDrone.Core.Queue 4 | { 5 | public class QueueUpdatedEvent : IEvent 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/RootFolders/UnmappedFolder.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.RootFolders 2 | { 3 | public class UnmappedFolder 4 | { 5 | public string Name { get; set; } 6 | public string Path { get; set; } 7 | public string RelativePath { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Security/CertificateValidationType.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Security 2 | { 3 | public enum CertificateValidationType 4 | { 5 | Enabled = 0, 6 | DisabledForLocalAddresses = 1, 7 | Disabled = 2 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Tags/Tag.cs: -------------------------------------------------------------------------------- 1 | using NzbDrone.Core.Datastore; 2 | 3 | namespace NzbDrone.Core.Tags 4 | { 5 | public class Tag : ModelBase 6 | { 7 | public string Label { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Tags/TagsUpdatedEvent.cs: -------------------------------------------------------------------------------- 1 | using NzbDrone.Common.Messaging; 2 | 3 | namespace NzbDrone.Core.Tags 4 | { 5 | public class TagsUpdatedEvent : IEvent 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/ThingiProvider/IProviderConfig.cs: -------------------------------------------------------------------------------- 1 | using NzbDrone.Core.Validation; 2 | 3 | namespace NzbDrone.Core.ThingiProvider 4 | { 5 | public interface IProviderConfig 6 | { 7 | NzbDroneValidationResult Validate(); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Tv/AddSeriesOptions.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Tv 2 | { 3 | public class AddSeriesOptions : MonitoringOptions 4 | { 5 | public bool SearchForMissingEpisodes { get; set; } 6 | public bool SearchForCutoffUnmetEpisodes { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Tv/Events/SeriesRefreshCompleteEvent.cs: -------------------------------------------------------------------------------- 1 | using NzbDrone.Common.Messaging; 2 | 3 | namespace NzbDrone.Core.Tv.Events 4 | { 5 | public class SeriesRefreshCompleteEvent : IEvent 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Tv/Ratings.cs: -------------------------------------------------------------------------------- 1 | using NzbDrone.Core.Datastore; 2 | 3 | namespace NzbDrone.Core.Tv 4 | { 5 | public class Ratings : IEmbeddedDocument 6 | { 7 | public int Votes { get; set; } 8 | public decimal Value { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Tv/SeriesStatusType.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Tv 2 | { 3 | public enum SeriesStatusType 4 | { 5 | Deleted = -1, 6 | Continuing = 0, 7 | Ended = 1, 8 | Upcoming = 2 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Tv/SeriesTypes.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Tv 2 | { 3 | public enum SeriesTypes 4 | { 5 | Standard = 0, 6 | Daily = 1, 7 | Anime = 2, 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Update/History/UpdateHistoryEventType.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Update.History 2 | { 3 | public enum UpdateHistoryEventType 4 | { 5 | Unknown = 0, 6 | Initiated = 1, 7 | Installed = 2 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Update/UpdateMechanism.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Update 2 | { 3 | public enum UpdateMechanism 4 | { 5 | BuiltIn = 0, 6 | Script = 1, 7 | External = 10, 8 | Apt = 11, 9 | Docker = 12 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/NzbDrone.Core/Update/UpdatePackageAvailable.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Core.Update 2 | { 3 | public class UpdatePackageAvailable 4 | { 5 | public bool Available { get; set; } 6 | public UpdatePackage UpdatePackage { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Host.Test/app.config: -------------------------------------------------------------------------------- 1 |  2 | -------------------------------------------------------------------------------- /src/NzbDrone.Host/ApplicationModes.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Host 2 | { 3 | public enum ApplicationModes 4 | { 5 | Interactive, 6 | Help, 7 | InstallService, 8 | UninstallService, 9 | Service, 10 | RegisterUrl 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/NzbDrone.Host/Sonarr.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/src/NzbDrone.Host/Sonarr.ico -------------------------------------------------------------------------------- /src/NzbDrone.Integration.Test/app.config: -------------------------------------------------------------------------------- 1 |  2 | -------------------------------------------------------------------------------- /src/NzbDrone.Libraries.Test/app.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Mono.Test/Files/linux/lsb-release: -------------------------------------------------------------------------------- 1 | DISTRIB_ID=Ubuntu 2 | DISTRIB_RELEASE=14.04 3 | DISTRIB_CODENAME=trusty 4 | DISTRIB_DESCRIPTION="Ubuntu 14.04.5 LTS" -------------------------------------------------------------------------------- /src/NzbDrone.Mono.Test/Files/synology/VERSION: -------------------------------------------------------------------------------- 1 | majorversion="6" 2 | minorversion="0" 3 | productversion="6.0.2" 4 | buildphase="hotfix" 5 | buildnumber="8451" 6 | smallfixnumber="7" 7 | builddate="2016/12/20" 8 | buildtime="05:11:44" -------------------------------------------------------------------------------- /src/NzbDrone.Mono.Test/app.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/NzbDrone.SignalR/IBroadcastSignalRMessage.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | 3 | namespace NzbDrone.SignalR 4 | { 5 | public interface IBroadcastSignalRMessage 6 | { 7 | bool IsConnected { get; } 8 | Task BroadcastMessage(SignalRMessage message); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/NzbDrone.Test.Common/TestException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NzbDrone.Test.Common 4 | { 5 | public class TestException : Exception 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Test.Common/TestLogOutput.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Test.Common 2 | { 3 | public enum TestLogOutput 4 | { 5 | Console = 0, 6 | File = 1, 7 | None = 2 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/NzbDrone.Test.Dummy/Sonarr.Test.Dummy.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | Exe 4 | net6.0 5 | 6 | -------------------------------------------------------------------------------- /src/NzbDrone.Test.Dummy/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/NzbDrone.Update.Test/app.config: -------------------------------------------------------------------------------- 1 |  2 | -------------------------------------------------------------------------------- /src/NzbDrone.Update/AppType.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Update 2 | { 3 | public enum AppType 4 | { 5 | Normal, 6 | Console, 7 | Service 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/NzbDrone.Update/app.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/NzbDrone.Windows.Test/app.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/ServiceHelpers/ServiceInstall/Program.cs: -------------------------------------------------------------------------------- 1 | namespace ServiceInstall 2 | { 3 | public static class Program 4 | { 5 | private static void Main() 6 | { 7 | ServiceHelper.Run(@"/i"); 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/ServiceHelpers/ServiceInstall/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/ServiceHelpers/ServiceInstall/green_puzzle.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/src/ServiceHelpers/ServiceInstall/green_puzzle.ico -------------------------------------------------------------------------------- /src/ServiceHelpers/ServiceUninstall/Program.cs: -------------------------------------------------------------------------------- 1 | namespace ServiceUninstall 2 | { 3 | public static class Program 4 | { 5 | private static void Main() 6 | { 7 | ServiceHelper.Run(@"/u"); 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/ServiceHelpers/ServiceUninstall/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/ServiceHelpers/ServiceUninstall/red_puzzle.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bedynamictech/Scorarr/5fa81a5c9d9176763625c49ee4e7c2dfacb0f60a/src/ServiceHelpers/ServiceUninstall/red_puzzle.ico -------------------------------------------------------------------------------- /src/Sonarr.Api.V3/ApplyTags.cs: -------------------------------------------------------------------------------- 1 | namespace Sonarr.Api.V3 2 | { 3 | public enum ApplyTags 4 | { 5 | Add, 6 | Remove, 7 | Replace 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/Sonarr.Api.V3/Blocklist/BlocklistBulkResource.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace Sonarr.Api.V3.Blocklist 4 | { 5 | public class BlocklistBulkResource 6 | { 7 | public List Ids { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/Sonarr.Api.V3/Localization/LocalizationLanguageResource.cs: -------------------------------------------------------------------------------- 1 | namespace Sonarr.Api.V3.Localization 2 | { 3 | public class LocalizationLanguageResource 4 | { 5 | public string Identifier { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/Sonarr.Api.V3/Queue/QueueBulkResource.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace Sonarr.Api.V3.Queue 4 | { 5 | public class QueueBulkResource 6 | { 7 | public List Ids { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/Sonarr.Http/ApiInfoResource.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace NzbDrone.Http 4 | { 5 | public class ApiInfoResource 6 | { 7 | public string Current { get; set; } 8 | public List Deprecated { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/Sonarr.Http/Authentication/LoginResource.cs: -------------------------------------------------------------------------------- 1 | namespace Sonarr.Http.Authentication 2 | { 3 | public class LoginResource 4 | { 5 | public string Username { get; set; } 6 | public string Password { get; set; } 7 | public string RememberMe { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/Sonarr.Http/Ping/PingResource.cs: -------------------------------------------------------------------------------- 1 | namespace NzbDrone.Http.Ping 2 | { 3 | public class PingResource 4 | { 5 | public string Status { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/Sonarr.Http/REST/Attributes/RestPostByIdAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Microsoft.AspNetCore.Mvc; 3 | 4 | namespace Sonarr.Http.REST.Attributes 5 | { 6 | [AttributeUsage(AttributeTargets.Method)] 7 | public class RestPostByIdAttribute : HttpPostAttribute 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/Sonarr.RuntimePatches/Sonarr.RuntimePatches.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | net6.0 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/omnisharp.json: -------------------------------------------------------------------------------- 1 | { 2 | "RoslynExtensionsOptions": { 3 | "enableAnalyzersSupport": true, 4 | "DocumentAnalysisTimeoutMs": 60000 5 | }, 6 | "FormattingOptions": { 7 | "enableEditorConfigSupport": true 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./frontend/tsconfig.json", 3 | } 4 | --------------------------------------------------------------------------------