mirror of
https://github.com/Readarr/Readarr.git
synced 2026-04-17 21:25:39 -04:00
Compare commits
1 Commits
v0.4.7.271
...
sonarr-pul
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e739a93a2a |
@@ -9,7 +9,7 @@ variables:
|
|||||||
testsFolder: './_tests'
|
testsFolder: './_tests'
|
||||||
yarnCacheFolder: $(Pipeline.Workspace)/.yarn
|
yarnCacheFolder: $(Pipeline.Workspace)/.yarn
|
||||||
nugetCacheFolder: $(Pipeline.Workspace)/.nuget/packages
|
nugetCacheFolder: $(Pipeline.Workspace)/.nuget/packages
|
||||||
majorVersion: '0.4.7'
|
majorVersion: '0.4.6'
|
||||||
minorVersion: $[counter('minorVersion', 1)]
|
minorVersion: $[counter('minorVersion', 1)]
|
||||||
readarrVersion: '$(majorVersion).$(minorVersion)'
|
readarrVersion: '$(majorVersion).$(minorVersion)'
|
||||||
buildName: '$(Build.SourceBranchName).$(readarrVersion)'
|
buildName: '$(Build.SourceBranchName).$(readarrVersion)'
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ window.console.debug = window.console.debug || function() {};
|
|||||||
window.console.warn = window.console.warn || function() {};
|
window.console.warn = window.console.warn || function() {};
|
||||||
window.console.assert = window.console.assert || function() {};
|
window.console.assert = window.console.assert || function() {};
|
||||||
|
|
||||||
|
// TODO: Remove in v5, well suppoprted in browsers
|
||||||
if (!String.prototype.startsWith) {
|
if (!String.prototype.startsWith) {
|
||||||
Object.defineProperty(String.prototype, 'startsWith', {
|
Object.defineProperty(String.prototype, 'startsWith', {
|
||||||
enumerable: false,
|
enumerable: false,
|
||||||
@@ -20,6 +21,7 @@ if (!String.prototype.startsWith) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: Remove in v5, well suppoprted in browsers
|
||||||
if (!String.prototype.endsWith) {
|
if (!String.prototype.endsWith) {
|
||||||
Object.defineProperty(String.prototype, 'endsWith', {
|
Object.defineProperty(String.prototype, 'endsWith', {
|
||||||
enumerable: false,
|
enumerable: false,
|
||||||
@@ -34,8 +36,14 @@ if (!String.prototype.endsWith) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: Remove in v5, use `includes` instead
|
||||||
if (!('contains' in String.prototype)) {
|
if (!('contains' in String.prototype)) {
|
||||||
String.prototype.contains = function(str, startIndex) {
|
String.prototype.contains = function(str, startIndex) {
|
||||||
return String.prototype.indexOf.call(this, str, startIndex) !== -1;
|
return String.prototype.indexOf.call(this, str, startIndex) !== -1;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// For Firefox ESR 115 support
|
||||||
|
if (!Object.groupBy) {
|
||||||
|
import('core-js/actual/object/group-by');
|
||||||
|
}
|
||||||
|
|||||||
@@ -42,18 +42,17 @@ namespace NzbDrone.Common
|
|||||||
|
|
||||||
public void CreateZip(string path, IEnumerable<string> files)
|
public void CreateZip(string path, IEnumerable<string> files)
|
||||||
{
|
{
|
||||||
_logger.Debug("Creating archive {0}", path);
|
using (var zipFile = ZipFile.Create(path))
|
||||||
|
|
||||||
using var zipFile = ZipFile.Create(path);
|
|
||||||
|
|
||||||
zipFile.BeginUpdate();
|
|
||||||
|
|
||||||
foreach (var file in files)
|
|
||||||
{
|
{
|
||||||
zipFile.Add(file, Path.GetFileName(file));
|
zipFile.BeginUpdate();
|
||||||
}
|
|
||||||
|
|
||||||
zipFile.CommitUpdate();
|
foreach (var file in files)
|
||||||
|
{
|
||||||
|
zipFile.Add(file, Path.GetFileName(file));
|
||||||
|
}
|
||||||
|
|
||||||
|
zipFile.CommitUpdate();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ExtractZip(string compressedFile, string destination)
|
private void ExtractZip(string compressedFile, string destination)
|
||||||
|
|||||||
@@ -66,19 +66,12 @@ namespace NzbDrone.Core.Backup
|
|||||||
{
|
{
|
||||||
_logger.ProgressInfo("Starting Backup");
|
_logger.ProgressInfo("Starting Backup");
|
||||||
|
|
||||||
var backupFolder = GetBackupFolder(backupType);
|
|
||||||
|
|
||||||
_diskProvider.EnsureFolder(_backupTempFolder);
|
_diskProvider.EnsureFolder(_backupTempFolder);
|
||||||
_diskProvider.EnsureFolder(backupFolder);
|
_diskProvider.EnsureFolder(GetBackupFolder(backupType));
|
||||||
|
|
||||||
if (!_diskProvider.FolderWritable(backupFolder))
|
|
||||||
{
|
|
||||||
throw new UnauthorizedAccessException($"Backup folder {backupFolder} is not writable");
|
|
||||||
}
|
|
||||||
|
|
||||||
var dateNow = DateTime.Now;
|
var dateNow = DateTime.Now;
|
||||||
var backupFilename = $"readarr_backup_v{BuildInfo.Version}_{dateNow:yyyy.MM.dd_HH.mm.ss}.zip";
|
var backupFilename = $"readarr_backup_v{BuildInfo.Version}_{dateNow:yyyy.MM.dd_HH.mm.ss}.zip";
|
||||||
var backupPath = Path.Combine(backupFolder, backupFilename);
|
var backupPath = Path.Combine(GetBackupFolder(backupType), backupFilename);
|
||||||
|
|
||||||
Cleanup();
|
Cleanup();
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ using System.Net;
|
|||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
using NLog;
|
using NLog;
|
||||||
using NzbDrone.Common.Cache;
|
using NzbDrone.Common.Cache;
|
||||||
using NzbDrone.Common.EnvironmentInfo;
|
|
||||||
using NzbDrone.Common.Extensions;
|
using NzbDrone.Common.Extensions;
|
||||||
using NzbDrone.Common.Http;
|
using NzbDrone.Common.Http;
|
||||||
using NzbDrone.Common.Serializer;
|
using NzbDrone.Common.Serializer;
|
||||||
@@ -209,7 +208,7 @@ namespace NzbDrone.Core.Download.Clients.Transmission
|
|||||||
|
|
||||||
private void AuthenticateClient(HttpRequestBuilder requestBuilder, TransmissionSettings settings, bool reauthenticate = false)
|
private void AuthenticateClient(HttpRequestBuilder requestBuilder, TransmissionSettings settings, bool reauthenticate = false)
|
||||||
{
|
{
|
||||||
var authKey = $"{requestBuilder.BaseUrl}:{settings.Password}";
|
var authKey = string.Format("{0}:{1}", requestBuilder.BaseUrl, settings.Password);
|
||||||
|
|
||||||
var sessionId = _authSessionIDCache.Find(authKey);
|
var sessionId = _authSessionIDCache.Find(authKey);
|
||||||
|
|
||||||
@@ -221,26 +220,24 @@ namespace NzbDrone.Core.Download.Clients.Transmission
|
|||||||
authLoginRequest.SuppressHttpError = true;
|
authLoginRequest.SuppressHttpError = true;
|
||||||
|
|
||||||
var response = _httpClient.Execute(authLoginRequest);
|
var response = _httpClient.Execute(authLoginRequest);
|
||||||
|
if (response.StatusCode == HttpStatusCode.MovedPermanently)
|
||||||
switch (response.StatusCode)
|
|
||||||
{
|
{
|
||||||
case HttpStatusCode.MovedPermanently:
|
var url = response.Headers.GetSingleValue("Location");
|
||||||
var url = response.Headers.GetSingleValue("Location");
|
|
||||||
|
|
||||||
throw new DownloadClientException("Remote site redirected to " + url);
|
throw new DownloadClientException("Remote site redirected to " + url);
|
||||||
case HttpStatusCode.Forbidden:
|
}
|
||||||
throw new DownloadClientException($"Failed to authenticate with Transmission. It may be necessary to add {BuildInfo.AppName}'s IP address to RPC whitelist.");
|
else if (response.StatusCode == HttpStatusCode.Conflict)
|
||||||
case HttpStatusCode.Conflict:
|
{
|
||||||
sessionId = response.Headers.GetSingleValue("X-Transmission-Session-Id");
|
sessionId = response.Headers.GetSingleValue("X-Transmission-Session-Id");
|
||||||
|
|
||||||
if (sessionId == null)
|
if (sessionId == null)
|
||||||
{
|
{
|
||||||
throw new DownloadClientException("Remote host did not return a Session Id.");
|
throw new DownloadClientException("Remote host did not return a Session Id.");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
break;
|
else
|
||||||
default:
|
{
|
||||||
throw new DownloadClientAuthenticationException("Failed to authenticate with Transmission.");
|
throw new DownloadClientAuthenticationException("Failed to authenticate with Transmission.");
|
||||||
}
|
}
|
||||||
|
|
||||||
_logger.Debug("Transmission authentication succeeded.");
|
_logger.Debug("Transmission authentication succeeded.");
|
||||||
|
|||||||
Reference in New Issue
Block a user