Fixed: Migration 170 setting incorrect trakt auth values

This commit is contained in:
Qstick 2020-08-04 12:03:59 -04:00
parent 7f1761bec5
commit d41eed2e79
9 changed files with 30 additions and 66 deletions

View File

@ -57,27 +57,6 @@ namespace NzbDrone.Core.Datastore.Migration
private void FixTraktConfig(IDbConnection conn, IDbTransaction tran)
{
var config = new Dictionary<string, string>();
using (IDbCommand configCmd = conn.CreateCommand())
{
configCmd.Transaction = tran;
configCmd.CommandText = @"SELECT * FROM Config";
using (IDataReader configReader = configCmd.ExecuteReader())
{
var keyIndex = configReader.GetOrdinal("Key");
var valueIndex = configReader.GetOrdinal("Value");
while (configReader.Read())
{
var key = configReader.GetString(keyIndex);
var value = configReader.GetString(valueIndex);
config.Add(key.ToLowerInvariant(), value);
}
}
}
var rows = conn.Query<ProviderDefinition169>($"SELECT Id, Implementation, ConfigContract, Settings FROM NetImport WHERE Implementation = 'TraktImport'");
var corrected = new List<ProviderDefinition169>();
@ -94,12 +73,9 @@ namespace NzbDrone.Core.Datastore.Migration
Username = settings.Username,
AuthUser = settings.Username,
OAuthUrl = "http://radarr.aeonlucid.com/v1/trakt/redirect",
RenewUri = "http://radarr.aeonlucid.com/v1/trakt/refresh",
ClientId = "964f67b126ade0112c4ae1f0aea3a8fb03190f71117bd83af6a0560a99bc52e6",
Scope = settings.Scope,
AccessToken = settings.AccessToken.IsNotNullOrWhiteSpace() ? settings.AccessToken : GetConfigValue(config, "TraktAuthToken", "localhost") ?? "",
RefreshToken = settings.RefreshToken.IsNotNullOrWhiteSpace() ? settings.RefreshToken : GetConfigValue(config, "TraktRefreshToken", "localhost") ?? "",
AccessToken = settings.AccessToken.IsNotNullOrWhiteSpace() ? settings.AccessToken : "",
RefreshToken = settings.RefreshToken.IsNotNullOrWhiteSpace() ? settings.RefreshToken : "",
Expires = settings.Expires > DateTime.UtcNow ? settings.Expires : DateTime.UtcNow,
Link = settings.Link,
Rating = settings.Rating,
@ -126,12 +102,9 @@ namespace NzbDrone.Core.Datastore.Migration
TraktListType = settings.TraktListType,
AuthUser = settings.Username,
OAuthUrl = "http://radarr.aeonlucid.com/v1/trakt/redirect",
RenewUri = "http://radarr.aeonlucid.com/v1/trakt/refresh",
ClientId = "964f67b126ade0112c4ae1f0aea3a8fb03190f71117bd83af6a0560a99bc52e6",
Scope = settings.Scope,
AccessToken = settings.AccessToken.IsNotNullOrWhiteSpace() ? settings.AccessToken : GetConfigValue(config, "TraktAuthToken", "localhost") ?? "",
RefreshToken = settings.RefreshToken.IsNotNullOrWhiteSpace() ? settings.RefreshToken : GetConfigValue(config, "TraktRefreshToken", "localhost") ?? "",
AccessToken = settings.AccessToken.IsNotNullOrWhiteSpace() ? settings.AccessToken : "",
RefreshToken = settings.RefreshToken.IsNotNullOrWhiteSpace() ? settings.RefreshToken : "",
Expires = settings.Expires > DateTime.UtcNow ? settings.Expires : DateTime.UtcNow,
Link = settings.Link,
Rating = settings.Rating,
@ -158,12 +131,9 @@ namespace NzbDrone.Core.Datastore.Migration
TraktListType = (int)Enum.Parse(typeof(TraktPopularListType170), Enum.GetName(typeof(TraktListType169), settings.TraktListType)),
AuthUser = settings.Username,
OAuthUrl = "http://radarr.aeonlucid.com/v1/trakt/redirect",
RenewUri = "http://radarr.aeonlucid.com/v1/trakt/refresh",
ClientId = "964f67b126ade0112c4ae1f0aea3a8fb03190f71117bd83af6a0560a99bc52e6",
Scope = settings.Scope,
AccessToken = settings.AccessToken.IsNotNullOrWhiteSpace() ? settings.AccessToken : GetConfigValue(config, "TraktAuthToken", "localhost") ?? "",
RefreshToken = settings.RefreshToken.IsNotNullOrWhiteSpace() ? settings.RefreshToken : GetConfigValue(config, "TraktRefreshToken", "localhost") ?? "",
AccessToken = settings.AccessToken.IsNotNullOrWhiteSpace() ? settings.AccessToken : "",
RefreshToken = settings.RefreshToken.IsNotNullOrWhiteSpace() ? settings.RefreshToken : "",
Expires = settings.Expires > DateTime.UtcNow ? settings.Expires : DateTime.UtcNow,
Link = settings.Link,
Rating = settings.Rating,
@ -190,18 +160,6 @@ namespace NzbDrone.Core.Datastore.Migration
var updateSql = "UPDATE NetImport SET Implementation = @Implementation, ConfigContract = @ConfigContract, Settings = @Settings WHERE Id = @Id";
conn.Execute(updateSql, corrected, transaction: tran);
}
private T GetConfigValue<T>(Dictionary<string, string> config, string key, T defaultValue)
{
key = key.ToLowerInvariant();
if (config.ContainsKey(key))
{
return (T)Convert.ChangeType(config[key], typeof(T));
}
return defaultValue;
}
}
public class ProviderDefinition169 : ModelBase
@ -213,9 +171,6 @@ namespace NzbDrone.Core.Datastore.Migration
public class TraktBaseSettings170
{
public string OAuthUrl { get; set; }
public string RenewUri { get; set; }
public string ClientId { get; set; }
public string Scope { get; set; }
public string AuthUser { get; set; }
public string AccessToken { get; set; }

View File

@ -25,7 +25,8 @@ namespace NzbDrone.Core.NetImport.Trakt.List
{
return new TraktListRequestGenerator()
{
Settings = Settings
Settings = Settings,
ClientId = ClientId
};
}
}

View File

@ -7,6 +7,7 @@ namespace NzbDrone.Core.NetImport.Trakt.List
public class TraktListRequestGenerator : INetImportRequestGenerator
{
public TraktListSettings Settings { get; set; }
public string ClientId { get; set; }
public TraktListRequestGenerator()
{
@ -31,7 +32,7 @@ namespace NzbDrone.Core.NetImport.Trakt.List
var request = new NetImportRequest($"{link}", HttpAccept.Json);
request.HttpRequest.Headers.Add("trakt-api-version", "2");
request.HttpRequest.Headers.Add("trakt-api-key", Settings.ClientId); //aeon
request.HttpRequest.Headers.Add("trakt-api-key", ClientId); //aeon
if (Settings.AccessToken.IsNotNullOrWhiteSpace())
{

View File

@ -30,7 +30,8 @@ namespace NzbDrone.Core.NetImport.Trakt.Popular
{
return new TraktPopularRequestGenerator()
{
Settings = Settings
Settings = Settings,
ClientId = ClientId
};
}
}

View File

@ -8,6 +8,8 @@ namespace NzbDrone.Core.NetImport.Trakt.Popular
{
public TraktPopularSettings Settings { get; set; }
public string ClientId { get; set; }
public TraktPopularRequestGenerator()
{
}
@ -58,7 +60,7 @@ namespace NzbDrone.Core.NetImport.Trakt.Popular
var request = new NetImportRequest($"{link}", HttpAccept.Json);
request.HttpRequest.Headers.Add("trakt-api-version", "2");
request.HttpRequest.Headers.Add("trakt-api-key", Settings.ClientId); //aeon
request.HttpRequest.Headers.Add("trakt-api-key", ClientId); //aeon
if (Settings.AccessToken.IsNotNullOrWhiteSpace())
{

View File

@ -14,6 +14,11 @@ namespace NzbDrone.Core.NetImport.Trakt
{
public override NetImportType ListType => NetImportType.Trakt;
public const string OAuthUrl = "https://api.trakt.tv/oauth/authorize";
public const string RedirectUri = "https://auth.servarr.com/v1/trakt/auth";
public const string RenewUri = "https://auth.servarr.com/v1/trakt/renew";
public const string ClientId = "64508a8bf370cee550dde4806469922fd7cd70afb2d5690e3ee7f75ae784b70e";
private INetImportRepository _netImportRepository;
protected TraktImportBase(INetImportRepository netImportRepository,
@ -50,10 +55,10 @@ namespace NzbDrone.Core.NetImport.Trakt
{
if (action == "startOAuth")
{
var request = new HttpRequestBuilder(Settings.OAuthUrl)
.AddQueryParam("client_id", Settings.ClientId)
var request = new HttpRequestBuilder(OAuthUrl)
.AddQueryParam("client_id", ClientId)
.AddQueryParam("response_type", "code")
.AddQueryParam("redirect_uri", Settings.RedirectUri)
.AddQueryParam("redirect_uri", RedirectUri)
.AddQueryParam("state", query["callbackUrl"])
.Build();
@ -82,7 +87,7 @@ namespace NzbDrone.Core.NetImport.Trakt
.Build();
request.Headers.Add("trakt-api-version", "2");
request.Headers.Add("trakt-api-key", Settings.ClientId); //aeon
request.Headers.Add("trakt-api-key", ClientId);
if (accessToken.IsNotNullOrWhiteSpace())
{
@ -112,7 +117,7 @@ namespace NzbDrone.Core.NetImport.Trakt
Settings.Validate().Filter("RefreshToken").ThrowOnError();
var request = new HttpRequestBuilder(Settings.RenewUri)
var request = new HttpRequestBuilder(RenewUri)
.AddQueryParam("refresh_token", Settings.RefreshToken)
.Build();

View File

@ -59,10 +59,6 @@ namespace NzbDrone.Core.NetImport.Trakt
}
public string Link => "https://api.trakt.tv";
public string OAuthUrl => "https://api.trakt.tv/oauth/authorize";
public string RedirectUri => "https://auth.servarr.com/v1/trakt/auth";
public string RenewUri => "https://auth.servarr.com/v1/trakt/renew";
public string ClientId => "64508a8bf370cee550dde4806469922fd7cd70afb2d5690e3ee7f75ae784b70e";
public virtual string Scope => "";
[FieldDefinition(0, Label = "Access Token", Type = FieldType.Textbox, Hidden = HiddenType.Hidden)]

View File

@ -25,7 +25,8 @@ namespace NzbDrone.Core.NetImport.Trakt.User
{
return new TraktUserRequestGenerator()
{
Settings = Settings
Settings = Settings,
ClientId = ClientId
};
}
}

View File

@ -8,6 +8,8 @@ namespace NzbDrone.Core.NetImport.Trakt.User
{
public TraktUserSettings Settings { get; set; }
public string ClientId { get; set; }
public TraktUserRequestGenerator()
{
}
@ -41,7 +43,7 @@ namespace NzbDrone.Core.NetImport.Trakt.User
var request = new NetImportRequest($"{link}", HttpAccept.Json);
request.HttpRequest.Headers.Add("trakt-api-version", "2");
request.HttpRequest.Headers.Add("trakt-api-key", Settings.ClientId);
request.HttpRequest.Headers.Add("trakt-api-key", ClientId);
if (Settings.AccessToken.IsNotNullOrWhiteSpace())
{