New: Link to "Why Searches Could be Failing" wiki section

pull/3494/head
Bogdan 4 months ago
parent 05d0fe2da6
commit 6b6ff4fe76

@ -1,5 +1,6 @@
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import React, { Component } from 'react'; import React, { Component } from 'react';
import Alert from 'Components/Alert';
import TextInput from 'Components/Form/TextInput'; import TextInput from 'Components/Form/TextInput';
import Icon from 'Components/Icon'; import Icon from 'Components/Icon';
import Button from 'Components/Link/Button'; import Button from 'Components/Link/Button';
@ -7,7 +8,7 @@ import Link from 'Components/Link/Link';
import LoadingIndicator from 'Components/Loading/LoadingIndicator'; import LoadingIndicator from 'Components/Loading/LoadingIndicator';
import PageContent from 'Components/Page/PageContent'; import PageContent from 'Components/Page/PageContent';
import PageContentBody from 'Components/Page/PageContentBody'; import PageContentBody from 'Components/Page/PageContentBody';
import { icons } from 'Helpers/Props'; import { icons, kinds } from 'Helpers/Props';
import getErrorMessage from 'Utilities/Object/getErrorMessage'; import getErrorMessage from 'Utilities/Object/getErrorMessage';
import translate from 'Utilities/String/translate'; import translate from 'Utilities/String/translate';
import AddNewAuthorSearchResultConnector from './Author/AddNewAuthorSearchResultConnector'; import AddNewAuthorSearchResultConnector from './Author/AddNewAuthorSearchResultConnector';
@ -127,9 +128,16 @@ class AddNewItem extends Component {
!isFetching && !!error ? !isFetching && !!error ?
<div className={styles.message}> <div className={styles.message}>
<div className={styles.helpText}> <div className={styles.helpText}>
Failed to load search results, please try again. {translate('FailedLoadingSearchResults')}
</div>
<Alert kind={kinds.WARNING}>{getErrorMessage(error)}</Alert>
<div>
<Link to="https://wiki.servarr.com/readarr/troubleshooting#invalid-response-received-from-metadata-api">
{translate('WhySearchesCouldBeFailing')}
</Link>
</div> </div>
<div>{getErrorMessage(error)}</div>
</div> : null </div> : null
} }

@ -348,6 +348,7 @@
"ExtraFileExtensionsHelpText": "Comma separated list of extra files to import (.nfo will be imported as .nfo-orig)", "ExtraFileExtensionsHelpText": "Comma separated list of extra files to import (.nfo will be imported as .nfo-orig)",
"ExtraFileExtensionsHelpTextsExamples": "Examples: '.sub, .nfo' or 'sub,nfo'", "ExtraFileExtensionsHelpTextsExamples": "Examples: '.sub, .nfo' or 'sub,nfo'",
"FailedDownloadHandling": "Failed Download Handling", "FailedDownloadHandling": "Failed Download Handling",
"FailedLoadingSearchResults": "Failed to load search results, please try again.",
"FailedToLoadQueue": "Failed to load Queue", "FailedToLoadQueue": "Failed to load Queue",
"FileDateHelpText": "Change file date on import/rescan", "FileDateHelpText": "Change file date on import/rescan",
"FileDetails": "File Details", "FileDetails": "File Details",
@ -1073,6 +1074,7 @@
"WatchRootFoldersForFileChanges": "Watch Root Folders for file changes", "WatchRootFoldersForFileChanges": "Watch Root Folders for file changes",
"WeekColumnHeader": "Week Column Header", "WeekColumnHeader": "Week Column Header",
"WhatsNew": "What's New?", "WhatsNew": "What's New?",
"WhySearchesCouldBeFailing": "Click here to find out why searches could be failing",
"WouldYouLikeToRestoreBackup": "Would you like to restore the backup '{name}'?", "WouldYouLikeToRestoreBackup": "Would you like to restore the backup '{name}'?",
"WriteAudioTags": "Tag Audio Files with Metadata", "WriteAudioTags": "Tag Audio Files with Metadata",
"WriteAudioTagsScrub": "Scrub Existing Tags", "WriteAudioTagsScrub": "Scrub Existing Tags",

@ -218,13 +218,12 @@ namespace NzbDrone.Core.MetadataSource.BookInfo
catch (HttpException ex) catch (HttpException ex)
{ {
_logger.Warn(ex, ex.Message); _logger.Warn(ex, ex.Message);
throw new GoodreadsException("Search for '{0}' failed. Unable to communicate with Goodreads.", title); throw new GoodreadsException("Search for '{0}' failed. Unable to communicate with Goodreads.", ex, title);
} }
catch (Exception ex) catch (Exception ex) when (ex is not BookInfoException)
{ {
_logger.Warn(ex, ex.Message); _logger.Warn(ex, ex.Message);
throw new GoodreadsException("Search for '{0}' failed. Invalid response received from Goodreads.", throw new GoodreadsException("Search for '{0}' failed. Invalid response received from Goodreads.", ex, title);
title);
} }
} }
@ -296,6 +295,11 @@ namespace NzbDrone.Core.MetadataSource.BookInfo
{ {
return MapSearchResult(ids); return MapSearchResult(ids);
} }
catch (HttpException ex)
{
_logger.Warn(ex);
throw new BookInfoException("Search for '{0}' failed. Unable to communicate with ReadarrAPI, returning status code: {1}.", ex, query, ex.Response.StatusCode);
}
catch (Exception e) catch (Exception e)
{ {
_logger.Warn(e, "Error mapping search results"); _logger.Warn(e, "Error mapping search results");
@ -484,7 +488,7 @@ namespace NzbDrone.Core.MetadataSource.BookInfo
httpRequest.ContentSummary = ids.ToJson(Formatting.None); httpRequest.ContentSummary = ids.ToJson(Formatting.None);
httpRequest.AllowAutoRedirect = true; httpRequest.AllowAutoRedirect = true;
httpRequest.SuppressHttpError = true; httpRequest.SuppressHttpErrorStatusCodes = new[] { HttpStatusCode.TooManyRequests };
httpResponse = _httpClient.Post<BulkBookResource>(httpRequest); httpResponse = _httpClient.Post<BulkBookResource>(httpRequest);

Loading…
Cancel
Save