mirror of
https://github.com/Sonarr/Sonarr.git
synced 2024-12-16 11:37:58 +02:00
removed redundant else
This commit is contained in:
parent
3b087ba922
commit
cf77104a02
@ -241,7 +241,7 @@ public TransferMode TransferFile(string source, string destination, TransferMode
|
|||||||
{
|
{
|
||||||
return TransferMode.HardLink;
|
return TransferMode.HardLink;
|
||||||
}
|
}
|
||||||
else if (!mode.HasFlag(TransferMode.Copy))
|
if (!mode.HasFlag(TransferMode.Copy))
|
||||||
{
|
{
|
||||||
throw new IOException("Hardlinking from '" + source + "' to '" + destination + "' failed.");
|
throw new IOException("Hardlinking from '" + source + "' to '" + destination + "' failed.");
|
||||||
}
|
}
|
||||||
|
@ -48,25 +48,21 @@ private static OsPathKind DetectPathKind(String path)
|
|||||||
{
|
{
|
||||||
return OsPathKind.Windows;
|
return OsPathKind.Windows;
|
||||||
}
|
}
|
||||||
else if (path.Contains('/'))
|
if (path.Contains('/'))
|
||||||
{
|
{
|
||||||
return OsPathKind.Unix;
|
return OsPathKind.Unix;
|
||||||
}
|
}
|
||||||
else
|
return OsPathKind.Unknown;
|
||||||
{
|
|
||||||
return OsPathKind.Unknown;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String FixSlashes(String path, OsPathKind kind)
|
private static String FixSlashes(String path, OsPathKind kind)
|
||||||
{
|
{
|
||||||
if (kind == OsPathKind.Windows)
|
switch (kind)
|
||||||
{
|
{
|
||||||
return path.Replace('/', '\\');
|
case OsPathKind.Windows:
|
||||||
}
|
return path.Replace('/', '\\');
|
||||||
else if (kind == OsPathKind.Unix)
|
case OsPathKind.Unix:
|
||||||
{
|
return path.Replace('\\', '/');
|
||||||
return path.Replace('\\', '/');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return path;
|
return path;
|
||||||
@ -103,14 +99,12 @@ public Boolean IsRooted
|
|||||||
{
|
{
|
||||||
return _path.StartsWith(@"\\") || _path.Contains(':');
|
return _path.StartsWith(@"\\") || _path.Contains(':');
|
||||||
}
|
}
|
||||||
else if (IsUnixPath)
|
if (IsUnixPath)
|
||||||
{
|
{
|
||||||
return _path.StartsWith("/");
|
return _path.StartsWith("/");
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
return false;
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -124,10 +118,8 @@ public OsPath Directory
|
|||||||
{
|
{
|
||||||
return new OsPath(null);
|
return new OsPath(null);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
return new OsPath(_path.Substring(0, index), _kind).AsDirectory();
|
||||||
return new OsPath(_path.Substring(0, index), _kind).AsDirectory();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -156,10 +148,8 @@ public String FileName
|
|||||||
|
|
||||||
return path;
|
return path;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
return _path.Substring(index).Trim('\\', '/');
|
||||||
return _path.Substring(index).Trim('\\', '/');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -211,14 +201,11 @@ public override Boolean Equals(Object obj)
|
|||||||
{
|
{
|
||||||
return Equals((OsPath)obj);
|
return Equals((OsPath)obj);
|
||||||
}
|
}
|
||||||
else if (obj is String)
|
if (obj is String)
|
||||||
{
|
{
|
||||||
return Equals(new OsPath(obj as String));
|
return Equals(new OsPath(obj as String));
|
||||||
}
|
}
|
||||||
else
|
return false;
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public OsPath AsDirectory()
|
public OsPath AsDirectory()
|
||||||
@ -228,18 +215,14 @@ public OsPath AsDirectory()
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Kind == OsPathKind.Windows)
|
switch (Kind)
|
||||||
{
|
{
|
||||||
return new OsPath(_path.TrimEnd('\\') + "\\", _kind);
|
case OsPathKind.Windows:
|
||||||
}
|
return new OsPath(_path.TrimEnd('\\') + "\\", _kind);
|
||||||
else if (Kind == OsPathKind.Unix)
|
case OsPathKind.Unix:
|
||||||
{
|
return new OsPath(_path.TrimEnd('/') + "/", _kind);
|
||||||
return new OsPath(_path.TrimEnd('/') + "/", _kind);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return this;
|
|
||||||
}
|
}
|
||||||
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boolean Contains(OsPath other)
|
public Boolean Contains(OsPath other)
|
||||||
@ -286,10 +269,7 @@ public Boolean Equals(OsPath other)
|
|||||||
{
|
{
|
||||||
return String.Equals(left, right, StringComparison.InvariantCultureIgnoreCase);
|
return String.Equals(left, right, StringComparison.InvariantCultureIgnoreCase);
|
||||||
}
|
}
|
||||||
else
|
return String.Equals(left, right, StringComparison.InvariantCulture);
|
||||||
{
|
|
||||||
return String.Equals(left, right, StringComparison.InvariantCulture);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Boolean operator ==(OsPath left, OsPath right)
|
public static Boolean operator ==(OsPath left, OsPath right)
|
||||||
@ -327,14 +307,11 @@ public Boolean Equals(OsPath other)
|
|||||||
{
|
{
|
||||||
return new OsPath(String.Join("\\", left._path.TrimEnd('\\'), right._path.TrimStart('\\')), OsPathKind.Windows);
|
return new OsPath(String.Join("\\", left._path.TrimEnd('\\'), right._path.TrimStart('\\')), OsPathKind.Windows);
|
||||||
}
|
}
|
||||||
else if (left.Kind == OsPathKind.Unix || right.Kind == OsPathKind.Unix)
|
if (left.Kind == OsPathKind.Unix || right.Kind == OsPathKind.Unix)
|
||||||
{
|
{
|
||||||
return new OsPath(String.Join("/", left._path.TrimEnd('/'), right._path), OsPathKind.Unix);
|
return new OsPath(String.Join("/", left._path.TrimEnd('/'), right._path), OsPathKind.Unix);
|
||||||
}
|
}
|
||||||
else
|
return new OsPath(String.Join("/", left._path, right._path), OsPathKind.Unknown);
|
||||||
{
|
|
||||||
return new OsPath(String.Join("/", left._path, right._path), OsPathKind.Unknown);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static OsPath operator +(OsPath left, String right)
|
public static OsPath operator +(OsPath left, String right)
|
||||||
@ -389,10 +366,7 @@ public Boolean Equals(OsPath other)
|
|||||||
{
|
{
|
||||||
return new OsPath(String.Join("\\", newFragments), OsPathKind.Unknown);
|
return new OsPath(String.Join("\\", newFragments), OsPathKind.Unknown);
|
||||||
}
|
}
|
||||||
else
|
return new OsPath(String.Join("/", newFragments), OsPathKind.Unknown);
|
||||||
{
|
|
||||||
return new OsPath(String.Join("/", newFragments), OsPathKind.Unknown);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -63,10 +63,7 @@ public static string GetParentPath(this string childPath)
|
|||||||
{
|
{
|
||||||
return parentPath.Substring(0, index);
|
return parentPath.Substring(0, index);
|
||||||
}
|
}
|
||||||
else
|
return null;
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool IsParentPath(this string parentPath, string childPath)
|
public static bool IsParentPath(this string parentPath, string childPath)
|
||||||
|
@ -210,30 +210,25 @@ private ValidationFailure TestConnection()
|
|||||||
catch (WebException ex)
|
catch (WebException ex)
|
||||||
{
|
{
|
||||||
_logger.ErrorException(ex.Message, ex);
|
_logger.ErrorException(ex.Message, ex);
|
||||||
if (ex.Status == WebExceptionStatus.ConnectFailure)
|
switch (ex.Status)
|
||||||
{
|
{
|
||||||
return new NzbDroneValidationFailure("Host", "Unable to connect")
|
case WebExceptionStatus.ConnectFailure:
|
||||||
{
|
return new NzbDroneValidationFailure("Host", "Unable to connect")
|
||||||
DetailedDescription = "Please verify the hostname and port."
|
{
|
||||||
};
|
DetailedDescription = "Please verify the hostname and port."
|
||||||
}
|
};
|
||||||
else if (ex.Status == WebExceptionStatus.ConnectionClosed)
|
case WebExceptionStatus.ConnectionClosed:
|
||||||
{
|
return new NzbDroneValidationFailure("UseSsl", "Verify SSL settings")
|
||||||
return new NzbDroneValidationFailure("UseSsl", "Verify SSL settings")
|
{
|
||||||
{
|
DetailedDescription = "Please verify your SSL configuration on both Deluge and NzbDrone."
|
||||||
DetailedDescription = "Please verify your SSL configuration on both Deluge and NzbDrone."
|
};
|
||||||
};
|
case WebExceptionStatus.SecureChannelFailure:
|
||||||
}
|
return new NzbDroneValidationFailure("UseSsl", "Unable to connect through SSL")
|
||||||
else if (ex.Status == WebExceptionStatus.SecureChannelFailure)
|
{
|
||||||
{
|
DetailedDescription = "Drone is unable to connect to Deluge using SSL. This problem could be computer related. Please try to configure both drone and Deluge to not use SSL."
|
||||||
return new NzbDroneValidationFailure("UseSsl", "Unable to connect through SSL")
|
};
|
||||||
{
|
default:
|
||||||
DetailedDescription = "Drone is unable to connect to Deluge using SSL. This problem could be computer related. Please try to configure both drone and Deluge to not use SSL."
|
return new NzbDroneValidationFailure(String.Empty, "Unknown exception: " + ex.Message);
|
||||||
};
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return new NzbDroneValidationFailure(String.Empty, "Unknown exception: " + ex.Message);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
@ -264,11 +264,8 @@ private void AuthenticateClient(IRestClient restClient)
|
|||||||
_logger.Debug("Deluge authentication failed.");
|
_logger.Debug("Deluge authentication failed.");
|
||||||
throw new DownloadClientAuthenticationException("Failed to authenticate with Deluge.");
|
throw new DownloadClientAuthenticationException("Failed to authenticate with Deluge.");
|
||||||
}
|
}
|
||||||
else
|
_logger.Debug("Deluge authentication succeeded.");
|
||||||
{
|
_authCookieContainer = restClient.CookieContainer;
|
||||||
_logger.Debug("Deluge authentication succeeded.");
|
|
||||||
_authCookieContainer = restClient.CookieContainer;
|
|
||||||
}
|
|
||||||
|
|
||||||
ConnectDaemon(restClient);
|
ConnectDaemon(restClient);
|
||||||
}
|
}
|
||||||
|
@ -212,10 +212,7 @@ private ValidationFailure TestConnection()
|
|||||||
DetailedDescription = "Please verify the hostname and port."
|
DetailedDescription = "Please verify the hostname and port."
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
else
|
return new NzbDroneValidationFailure(String.Empty, "Unknown exception: " + ex.Message);
|
||||||
{
|
|
||||||
return new NzbDroneValidationFailure(String.Empty, "Unknown exception: " + ex.Message);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
@ -183,20 +183,21 @@ protected String GetSessionId(IRestClient client, TransmissionSettings settings)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// We expect the StatusCode = Conflict, coz that will provide us with a new session id.
|
// We expect the StatusCode = Conflict, coz that will provide us with a new session id.
|
||||||
if (restResponse.StatusCode == HttpStatusCode.Conflict)
|
switch (restResponse.StatusCode)
|
||||||
{
|
{
|
||||||
var sessionId = restResponse.Headers.SingleOrDefault(o => o.Name == "X-Transmission-Session-Id");
|
case HttpStatusCode.Conflict:
|
||||||
|
|
||||||
if (sessionId == null)
|
|
||||||
{
|
{
|
||||||
throw new DownloadClientException("Remote host did not return a Session Id.");
|
var sessionId = restResponse.Headers.SingleOrDefault(o => o.Name == "X-Transmission-Session-Id");
|
||||||
}
|
|
||||||
|
|
||||||
return (String)sessionId.Value;
|
if (sessionId == null)
|
||||||
}
|
{
|
||||||
else if (restResponse.StatusCode == HttpStatusCode.Unauthorized)
|
throw new DownloadClientException("Remote host did not return a Session Id.");
|
||||||
{
|
}
|
||||||
throw new DownloadClientAuthenticationException("User authentication failed.");
|
|
||||||
|
return (String)sessionId.Value;
|
||||||
|
}
|
||||||
|
case HttpStatusCode.Unauthorized:
|
||||||
|
throw new DownloadClientAuthenticationException("User authentication failed.");
|
||||||
}
|
}
|
||||||
|
|
||||||
restResponse.ValidateResponse(client);
|
restResponse.ValidateResponse(client);
|
||||||
|
@ -223,10 +223,7 @@ private ValidationFailure TestConnection()
|
|||||||
DetailedDescription = "Please verify the hostname and port."
|
DetailedDescription = "Please verify the hostname and port."
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
else
|
return new NzbDroneValidationFailure(String.Empty, "Unknown exception: " + ex.Message);
|
||||||
{
|
|
||||||
return new NzbDroneValidationFailure(String.Empty, "Unknown exception: " + ex.Message);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
@ -108,10 +108,7 @@ private string DownloadFromWebUrl(RemoteEpisode remoteEpisode, String torrentUrl
|
|||||||
{
|
{
|
||||||
return DownloadFromMagnetUrl(remoteEpisode, locationHeader);
|
return DownloadFromMagnetUrl(remoteEpisode, locationHeader);
|
||||||
}
|
}
|
||||||
else
|
throw new WebException("Remote website tried to redirect without providing a location.");
|
||||||
{
|
|
||||||
throw new WebException("Remote website tried to redirect without providing a location.");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
torrentFile = response.ResponseData;
|
torrentFile = response.ResponseData;
|
||||||
|
@ -47,7 +47,7 @@ public override HealthCheck Check()
|
|||||||
|
|
||||||
return new HealthCheck(GetType(), HealthCheckResult.Warning, "Enable Completed Download Handling if possible (Sabnzbd)", "Migrating-to-Completed-Download-Handling#sabnzbd-enable-completed-download-handling");
|
return new HealthCheck(GetType(), HealthCheckResult.Warning, "Enable Completed Download Handling if possible (Sabnzbd)", "Migrating-to-Completed-Download-Handling#sabnzbd-enable-completed-download-handling");
|
||||||
}
|
}
|
||||||
else if (downloadClients.All(v => v.downloadClient is Nzbget))
|
if (downloadClients.All(v => v.downloadClient is Nzbget))
|
||||||
{
|
{
|
||||||
// With Nzbget we can check if the category should be changed.
|
// With Nzbget we can check if the category should be changed.
|
||||||
if (downloadClientOutputInDroneFactory)
|
if (downloadClientOutputInDroneFactory)
|
||||||
@ -57,10 +57,7 @@ public override HealthCheck Check()
|
|||||||
|
|
||||||
return new HealthCheck(GetType(), HealthCheckResult.Warning, "Enable Completed Download Handling if possible (Nzbget)", "Migrating-to-Completed-Download-Handling#nzbget-enable-completed-download-handling");
|
return new HealthCheck(GetType(), HealthCheckResult.Warning, "Enable Completed Download Handling if possible (Nzbget)", "Migrating-to-Completed-Download-Handling#nzbget-enable-completed-download-handling");
|
||||||
}
|
}
|
||||||
else
|
return new HealthCheck(GetType(), HealthCheckResult.Warning, "Enable Completed Download Handling if possible", "Migrating-to-Completed-Download-Handling");
|
||||||
{
|
|
||||||
return new HealthCheck(GetType(), HealthCheckResult.Warning, "Enable Completed Download Handling if possible", "Migrating-to-Completed-Download-Handling");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!_configService.EnableCompletedDownloadHandling && droneFactoryFolder.IsEmpty)
|
if (!_configService.EnableCompletedDownloadHandling && droneFactoryFolder.IsEmpty)
|
||||||
|
@ -106,10 +106,7 @@ public List<DownloadDecision> SeasonSearch(int seriesId, int seasonNumber)
|
|||||||
{
|
{
|
||||||
return v.SceneSeasonNumber.Value;
|
return v.SceneSeasonNumber.Value;
|
||||||
}
|
}
|
||||||
else
|
return v.SeasonNumber;
|
||||||
{
|
|
||||||
return v.SeasonNumber;
|
|
||||||
}
|
|
||||||
}).Distinct();
|
}).Distinct();
|
||||||
|
|
||||||
foreach (var sceneSeasonEpisodes in sceneSeasonGroups)
|
foreach (var sceneSeasonEpisodes in sceneSeasonGroups)
|
||||||
|
@ -13,21 +13,20 @@ public IList<ReleaseInfo> ParseResponse(IndexerResponse indexerResponse)
|
|||||||
{
|
{
|
||||||
var results = new List<ReleaseInfo>();
|
var results = new List<ReleaseInfo>();
|
||||||
|
|
||||||
if (indexerResponse.HttpResponse.StatusCode == HttpStatusCode.Unauthorized)
|
switch (indexerResponse.HttpResponse.StatusCode)
|
||||||
{
|
{
|
||||||
throw new ApiKeyException("API Key invalid or not authorized");
|
case HttpStatusCode.Unauthorized:
|
||||||
}
|
throw new ApiKeyException("API Key invalid or not authorized");
|
||||||
else if (indexerResponse.HttpResponse.StatusCode == HttpStatusCode.NotFound)
|
case HttpStatusCode.NotFound:
|
||||||
{
|
throw new IndexerException(indexerResponse, "Indexer API call returned NotFound, the Indexer API may have changed.");
|
||||||
throw new IndexerException(indexerResponse, "Indexer API call returned NotFound, the Indexer API may have changed.");
|
case HttpStatusCode.ServiceUnavailable:
|
||||||
}
|
throw new RequestLimitReachedException("Cannot do more than 150 API requests per hour.");
|
||||||
else if (indexerResponse.HttpResponse.StatusCode == HttpStatusCode.ServiceUnavailable)
|
default:
|
||||||
{
|
if (indexerResponse.HttpResponse.StatusCode != HttpStatusCode.OK)
|
||||||
throw new RequestLimitReachedException("Cannot do more than 150 API requests per hour.");
|
{
|
||||||
}
|
throw new IndexerException(indexerResponse, "Indexer API call returned an unexpected StatusCode [{0}]", indexerResponse.HttpResponse.StatusCode);
|
||||||
else if (indexerResponse.HttpResponse.StatusCode != HttpStatusCode.OK)
|
}
|
||||||
{
|
break;
|
||||||
throw new IndexerException(indexerResponse, "Indexer API call returned an unexpected StatusCode [{0}]", indexerResponse.HttpResponse.StatusCode);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var jsonResponse = new HttpResponse<JsonRpcResponse<BroadcastheNetTorrents>>(indexerResponse.HttpResponse).Resource;
|
var jsonResponse = new HttpResponse<JsonRpcResponse<BroadcastheNetTorrents>>(indexerResponse.HttpResponse).Resource;
|
||||||
@ -46,7 +45,7 @@ public IList<ReleaseInfo> ParseResponse(IndexerResponse indexerResponse)
|
|||||||
{
|
{
|
||||||
var torrentInfo = new TorrentInfo();
|
var torrentInfo = new TorrentInfo();
|
||||||
|
|
||||||
torrentInfo.Guid = String.Format("BTN-{0}", torrent.TorrentID.ToString());
|
torrentInfo.Guid = String.Format("BTN-{0}", torrent.TorrentID);
|
||||||
torrentInfo.Title = torrent.ReleaseName;
|
torrentInfo.Title = torrent.ReleaseName;
|
||||||
torrentInfo.Size = torrent.Size;
|
torrentInfo.Size = torrent.Size;
|
||||||
torrentInfo.DownloadUrl = torrent.DownloadURL;
|
torrentInfo.DownloadUrl = torrent.DownloadURL;
|
||||||
|
@ -100,16 +100,13 @@ private bool AddSeriesSearchParameters(BroadcastheNetTorrentQuery parameters, Se
|
|||||||
parameters.Tvrage = String.Format("{0}", searchCriteria.Series.TvRageId);
|
parameters.Tvrage = String.Format("{0}", searchCriteria.Series.TvRageId);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else if (searchCriteria.Series.TvdbId != 0)
|
if (searchCriteria.Series.TvdbId != 0)
|
||||||
{
|
{
|
||||||
parameters.Tvdb = String.Format("{0}", searchCriteria.Series.TvdbId);
|
parameters.Tvdb = String.Format("{0}", searchCriteria.Series.TvdbId);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else
|
// BTN is very neatly managed, so it's unlikely they map tvrage/tvdb wrongly.
|
||||||
{
|
return false;
|
||||||
// BTN is very neatly managed, so it's unlikely they map tvrage/tvdb wrongly.
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private IEnumerable<IndexerRequest> GetPagedRequests(Int32 maxPages, BroadcastheNetTorrentQuery parameters)
|
private IEnumerable<IndexerRequest> GetPagedRequests(Int32 maxPages, BroadcastheNetTorrentQuery parameters)
|
||||||
|
@ -147,10 +147,7 @@ protected virtual string GetDownloadUrl(XElement item)
|
|||||||
{
|
{
|
||||||
return item.Element("enclosure").Attribute("url").Value;
|
return item.Element("enclosure").Attribute("url").Value;
|
||||||
}
|
}
|
||||||
else
|
return item.Element("link").Value;
|
||||||
{
|
|
||||||
return item.Element("link").Value;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected virtual string GetInfoUrl(XElement item)
|
protected virtual string GetInfoUrl(XElement item)
|
||||||
@ -174,7 +171,7 @@ protected virtual long GetSize(XElement item)
|
|||||||
{
|
{
|
||||||
return GetEnclosureLength(item);
|
return GetEnclosureLength(item);
|
||||||
}
|
}
|
||||||
else if (ParseSizeInDescription)
|
if (ParseSizeInDescription)
|
||||||
{
|
{
|
||||||
return ParseSize(item.Element("description").Value, true);
|
return ParseSize(item.Element("description").Value, true);
|
||||||
}
|
}
|
||||||
|
@ -74,15 +74,9 @@ private List<ImportResult> ProcessFolder(DownloadedEpisodesScanCommand message)
|
|||||||
|
|
||||||
return _downloadedEpisodesImportService.ProcessFolder(new DirectoryInfo(message.Path));
|
return _downloadedEpisodesImportService.ProcessFolder(new DirectoryInfo(message.Path));
|
||||||
}
|
}
|
||||||
else
|
return _completedDownloadService.Import(trackedDownload, message.Path);
|
||||||
{
|
|
||||||
return _completedDownloadService.Import(trackedDownload, message.Path);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return _downloadedEpisodesImportService.ProcessFolder(new DirectoryInfo(message.Path));
|
|
||||||
}
|
}
|
||||||
|
return _downloadedEpisodesImportService.ProcessFolder(new DirectoryInfo(message.Path));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Execute(DownloadedEpisodesScanCommand message)
|
public void Execute(DownloadedEpisodesScanCommand message)
|
||||||
|
@ -79,10 +79,7 @@ public EpisodeFile CopyEpisodeFile(EpisodeFile episodeFile, LocalEpisode localEp
|
|||||||
{
|
{
|
||||||
return TransferFile(episodeFile, localEpisode.Series, localEpisode.Episodes, filePath, TransferMode.HardLinkOrCopy);
|
return TransferFile(episodeFile, localEpisode.Series, localEpisode.Episodes, filePath, TransferMode.HardLinkOrCopy);
|
||||||
}
|
}
|
||||||
else
|
return TransferFile(episodeFile, localEpisode.Series, localEpisode.Episodes, filePath, TransferMode.Copy);
|
||||||
{
|
|
||||||
return TransferFile(episodeFile, localEpisode.Series, localEpisode.Episodes, filePath, TransferMode.Copy);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private EpisodeFile TransferFile(EpisodeFile episodeFile, Series series, List<Episode> episodes, string destinationFilename, TransferMode mode)
|
private EpisodeFile TransferFile(EpisodeFile episodeFile, Series series, List<Episode> episodes, string destinationFilename, TransferMode mode)
|
||||||
|
@ -115,11 +115,8 @@ public override MetadataFile FindMetadataFile(Series series, string path)
|
|||||||
return metadata;
|
return metadata;
|
||||||
}
|
}
|
||||||
|
|
||||||
else
|
metadata.Type = MetadataType.SeriesImage;
|
||||||
{
|
return metadata;
|
||||||
metadata.Type = MetadataType.SeriesImage;
|
|
||||||
return metadata;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var parseResult = Parser.Parser.ParseTitle(filename);
|
var parseResult = Parser.Parser.ParseTitle(filename);
|
||||||
|
@ -112,11 +112,8 @@ public override MetadataFile FindMetadataFile(Series series, string path)
|
|||||||
return metadata;
|
return metadata;
|
||||||
}
|
}
|
||||||
|
|
||||||
else
|
metadata.Type = MetadataType.SeriesImage;
|
||||||
{
|
return metadata;
|
||||||
metadata.Type = MetadataType.SeriesImage;
|
|
||||||
return metadata;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var parseResult = Parser.Parser.ParseTitle(filename);
|
var parseResult = Parser.Parser.ParseTitle(filename);
|
||||||
|
@ -17,10 +17,7 @@ public class TorrentInfo : ReleaseInfo
|
|||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
else
|
return torrentInfo.Seeds;
|
||||||
{
|
|
||||||
return torrentInfo.Seeds;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -384,10 +384,7 @@ public static string RemoveFileExtension(string title)
|
|||||||
{
|
{
|
||||||
return String.Empty;
|
return String.Empty;
|
||||||
}
|
}
|
||||||
else
|
return m.Value;
|
||||||
{
|
|
||||||
return m.Value;
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
return title;
|
return title;
|
||||||
|
@ -143,20 +143,17 @@ public static QualityModel ParseQuality(string name)
|
|||||||
if (sourceMatch.Groups["bdrip"].Success ||
|
if (sourceMatch.Groups["bdrip"].Success ||
|
||||||
sourceMatch.Groups["brrip"].Success)
|
sourceMatch.Groups["brrip"].Success)
|
||||||
{
|
{
|
||||||
if (resolution == Resolution._720p)
|
switch (resolution)
|
||||||
{
|
{
|
||||||
result.Quality = Quality.Bluray720p;
|
case Resolution._720p:
|
||||||
return result;
|
result.Quality = Quality.Bluray720p;
|
||||||
}
|
return result;
|
||||||
else if (resolution == Resolution._1080p)
|
case Resolution._1080p:
|
||||||
{
|
result.Quality = Quality.Bluray1080p;
|
||||||
result.Quality = Quality.Bluray1080p;
|
return result;
|
||||||
return result;
|
default:
|
||||||
}
|
result.Quality = Quality.DVD;
|
||||||
else
|
return result;
|
||||||
{
|
|
||||||
result.Quality = Quality.DVD;
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -113,39 +113,36 @@ public Series FindByTitleInexact(string title)
|
|||||||
// no series matched
|
// no series matched
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
else if (list.Count == 1)
|
if (list.Count == 1)
|
||||||
{
|
{
|
||||||
// return the first series if there is only one
|
// return the first series if there is only one
|
||||||
return list.Single();
|
return list.Single();
|
||||||
}
|
}
|
||||||
else
|
// build ordered list of series by position in the search string
|
||||||
{
|
var query =
|
||||||
// build ordered list of series by position in the search string
|
list.Select(series => new
|
||||||
var query =
|
|
||||||
list.Select(series => new
|
|
||||||
{
|
|
||||||
position = cleanTitle.IndexOf(series.CleanTitle),
|
|
||||||
length = series.CleanTitle.Length,
|
|
||||||
series = series
|
|
||||||
})
|
|
||||||
.Where(s => (s.position>=0))
|
|
||||||
.ToList()
|
|
||||||
.OrderBy(s => s.position)
|
|
||||||
.ThenByDescending(s => s.length)
|
|
||||||
.ToList();
|
|
||||||
|
|
||||||
// get the leftmost series that is the longest
|
|
||||||
// series are usually the first thing in release title, so we select the leftmost and longest match
|
|
||||||
var match = query.First().series;
|
|
||||||
|
|
||||||
_logger.Debug("Multiple series matched {0} from title {1}", match.Title, title);
|
|
||||||
foreach (var entry in list)
|
|
||||||
{
|
{
|
||||||
_logger.Debug("Multiple series match candidate: {0} cleantitle: {1}", entry.Title, entry.CleanTitle);
|
position = cleanTitle.IndexOf(series.CleanTitle),
|
||||||
}
|
length = series.CleanTitle.Length,
|
||||||
|
series = series
|
||||||
|
})
|
||||||
|
.Where(s => (s.position>=0))
|
||||||
|
.ToList()
|
||||||
|
.OrderBy(s => s.position)
|
||||||
|
.ThenByDescending(s => s.length)
|
||||||
|
.ToList();
|
||||||
|
|
||||||
return match;
|
// get the leftmost series that is the longest
|
||||||
|
// series are usually the first thing in release title, so we select the leftmost and longest match
|
||||||
|
var match = query.First().series;
|
||||||
|
|
||||||
|
_logger.Debug("Multiple series matched {0} from title {1}", match.Title, title);
|
||||||
|
foreach (var entry in list)
|
||||||
|
{
|
||||||
|
_logger.Debug("Multiple series match candidate: {0} cleantitle: {1}", entry.Title, entry.CleanTitle);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return match;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Series FindByTitle(string title, int year)
|
public Series FindByTitle(string title, int year)
|
||||||
|
@ -73,29 +73,27 @@ private UpdateStartupContext ParseArgs(string[] args)
|
|||||||
|
|
||||||
if (OsInfo.IsMono)
|
if (OsInfo.IsMono)
|
||||||
{
|
{
|
||||||
if (args.Count() == 1)
|
switch (args.Count())
|
||||||
{
|
{
|
||||||
return startupContext;
|
case 1:
|
||||||
}
|
return startupContext;
|
||||||
|
case 3:
|
||||||
else if (args.Count() == 3)
|
startupContext.UpdateLocation = args[1];
|
||||||
{
|
startupContext.ExecutingApplication = args[2];
|
||||||
startupContext.UpdateLocation = args[1];
|
break;
|
||||||
startupContext.ExecutingApplication = args[2];
|
default:
|
||||||
}
|
|
||||||
|
|
||||||
else
|
|
||||||
{
|
|
||||||
logger.Debug("Arguments:");
|
|
||||||
|
|
||||||
foreach (var arg in args)
|
|
||||||
{
|
{
|
||||||
logger.Debug(" {0}", arg);
|
logger.Debug("Arguments:");
|
||||||
|
|
||||||
|
foreach (var arg in args)
|
||||||
|
{
|
||||||
|
logger.Debug(" {0}", arg);
|
||||||
|
}
|
||||||
|
|
||||||
|
var message = String.Format("Number of arguments are unexpected, expected: 3, found: {0}", args.Count());
|
||||||
|
|
||||||
|
throw new ArgumentOutOfRangeException("args", message);
|
||||||
}
|
}
|
||||||
|
|
||||||
var message = String.Format("Number of arguments are unexpected, expected: 3, found: {0}", args.Count());
|
|
||||||
|
|
||||||
throw new ArgumentOutOfRangeException("args", message);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user