Skip to content

Commit

Permalink
Removed Tidal, Implementing new settings structure
Browse files Browse the repository at this point in the history
  • Loading branch information
AlexanderDotH committed Apr 25, 2023
1 parent 4188949 commit f885a7c
Show file tree
Hide file tree
Showing 29 changed files with 277 additions and 1,015 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,9 @@ public async Task CollectToken()
{
bool settingsChanged = false;

try
return;

/*try
{
if (!DataValidator.ValidateData(Core.INSTANCE.SettingManager.Settings.MusixMatchToken))
return;
Expand Down Expand Up @@ -75,12 +77,12 @@ public async Task CollectToken()
}

if (settingsChanged)
Core.INSTANCE.SettingManager.WriteSettings(false);
Core.INSTANCE.SettingManager.WriteSettings(false);*/
}

public MusixMatchToken GetToken()
{
List<MusixMatchToken> tokens = Core.INSTANCE.SettingManager.Settings.MusixMatchToken;
/*List<MusixMatchToken> tokens = Core.INSTANCE.SettingManager.Settings.MusixMatchToken;

if (tokens.Count == 0)
return null;
Expand All @@ -91,9 +93,9 @@ public MusixMatchToken GetToken()
if (token.Usage <= 0)
{
Core.INSTANCE.SettingManager.Settings.MusixMatchToken.Remove(token);
}
}*/

return token;
return null;
}
}
}
3 changes: 3 additions & 0 deletions OpenLyricsClient/Backend/Core.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
using OpenLyricsClient.Backend.Handler.Song;
using OpenLyricsClient.Backend.Helper;
using OpenLyricsClient.Backend.Settings;
using OpenLyricsClient.Backend.Settings.Sections.Connection.Spotify;
using OpenLyricsClient.Backend.Settings.Sections.Lyrics;
using OpenLyricsClient.Backend.Structure.Enum;
using TaskRegister = OpenLyricsClient.Backend.Overwrite.TaskRegister;
Expand Down Expand Up @@ -106,6 +107,8 @@ public Core()
this._songHandler = songHandler;

_loaded = true;

SettingsHandler.TriggerGlobal();
}

private async Task TickTask()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,18 @@ namespace OpenLyricsClient.Backend.Events.EventArgs;

public class SettingsChangedEventArgs : System.EventArgs
{
private Settings.Settings _settings;
private Object _section;
private string _field;

public SettingsChangedEventArgs(Settings.Settings settings)
public Object Section
{
_settings = settings;
get => _section;
set => _section = value;
}

public Settings.Settings Settings
public string Field
{
get => _settings;
set => _settings = value;
get => _field;
set => _field = value;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
using OpenLyricsClient.Backend.Debugger;
using OpenLyricsClient.Backend.Handler.Services.Services;
using OpenLyricsClient.Backend.Handler.Services.Services.Spotify;
using OpenLyricsClient.Backend.Handler.Services.Services.Tidal;
using OpenLyricsClient.Backend.Utils;

namespace OpenLyricsClient.Backend.Handler.Services
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
using DevBase.Generics;
using Microsoft.Extensions.Configuration;
using OpenLyricsClient.Backend.Debugger;
using OpenLyricsClient.Backend.Settings.Sections.Connection.Spotify;
using OpenLyricsClient.Backend.Structure.Enum;
using OpenLyricsClient.Backend.Structure.Other;
using OpenLyricsClient.Backend.Utils;
Expand Down Expand Up @@ -47,34 +48,33 @@ private async Task RefreshToken()
await this._refreshTokenSuspensionToken.WaitForRelease();
await Task.Delay(1000);

if (Core.INSTANCE.SettingManager.Settings.SpotifyAccess.IsSpotifyConnected)
{
if (Core.INSTANCE.SettingManager.Settings.SpotifyAccess.AccessToken != null)
{
long now = DateTimeOffset.Now.ToUnixTimeMilliseconds();
long settings = Core.INSTANCE.SettingManager.Settings.SpotifyAccess.SpotifyExpireTime;
if (IsConnected())
continue;

long now = DateTimeOffset.Now.ToUnixTimeMilliseconds();
long settings = Core.INSTANCE.SettingsHandler.Settings<SpotifySection>()
.GetValue<long>("SpotifyExpireTime");

if (now > settings)
{
await RefreshTokenRequest();
this._debugger.Write("Refreshed Spotify Token", DebugType.DEBUG);
}
}
if (now > settings)
{
await RefreshTokenRequest();
this._debugger.Write("Refreshed Spotify Token", DebugType.DEBUG);
}
}
}

public bool IsConnected()
{
return Core.INSTANCE.SettingManager.Settings.SpotifyAccess.IsSpotifyConnected && Core.INSTANCE.SettingManager.Settings.SpotifyAccess.AccessToken != null;
return Core.INSTANCE.SettingsHandler.Settings<SpotifySection>().GetValue<bool>("IsSpotifyConnected")
&& Core.INSTANCE.SettingsHandler.Settings<SpotifySection>().GetValue<string>("AccessToken") != null;
}

public async Task<bool> TestConnection()
{
if (!IsConnected())
return false;

if (!DataValidator.ValidateData(Core.INSTANCE.SettingManager.Settings.SpotifyAccess))
if (!DataValidator.ValidateData(GetAccessToken()))
return false;

try
Expand Down Expand Up @@ -149,7 +149,7 @@ public string GetAccessToken()
// await RefreshTokenRequest();
//
// }).Wait(Core.INSTANCE.CancellationTokenSource.Token);
return Core.INSTANCE.SettingManager.Settings.SpotifyAccess.AccessToken;
return Core.INSTANCE.SettingsHandler.Settings<SpotifySection>().GetValue<string>("AccessToken");
}

private async Task RefreshTokenRequest()
Expand All @@ -160,15 +160,22 @@ private async Task RefreshTokenRequest()
new DevBase.Api.Apis.OpenLyricsClient.OpenLyricsClient();

JsonOpenLyricsClientAccess access =
await api.GetAccessToken(Core.INSTANCE.SettingManager.Settings.SpotifyAccess.RefreshToken);

await api.GetAccessToken(Core.INSTANCE.SettingsHandler.Settings<SpotifySection>().GetValue<string>("RefreshToken"));
SpotifyStatistics statistics = await GetStatistics(access.AccessToken);

Core.INSTANCE.SettingsHandler.Settings<SpotifySection>()
.SetValue("Statistics", statistics);

Core.INSTANCE.SettingsHandler.Settings<SpotifySection>()
.SetValue("AccessToken", access.AccessToken);

Core.INSTANCE.SettingsHandler.Settings<SpotifySection>()
.SetValue("SpotifyExpireTime", DateTimeOffset.Now.AddHours(1).ToUnixTimeMilliseconds());

Core.INSTANCE.SettingManager.Settings.SpotifyAccess.Statistics = statistics;
Core.INSTANCE.SettingManager.Settings.SpotifyAccess.AccessToken = access.AccessToken;
Core.INSTANCE.SettingManager.Settings.SpotifyAccess.SpotifyExpireTime =
DateTimeOffset.Now.AddHours(1).ToUnixTimeMilliseconds();
Core.INSTANCE.SettingManager.WriteSettings();
await Core.INSTANCE.SettingsHandler.TriggerEvent(typeof(SpotifySection), "Statistics");
await Core.INSTANCE.SettingsHandler.TriggerEvent(typeof(SpotifySection), "AccessToken");
await Core.INSTANCE.SettingsHandler.TriggerEvent(typeof(SpotifySection), "SpotifyExpireTime");
}
catch (Exception e)
{
Expand Down Expand Up @@ -208,52 +215,37 @@ public async Task StartAuthorization()
if (!DataValidator.ValidateData(token))
return;

string t = token.RefreshToken;
String t = token.RefreshToken;

if (token.RefreshToken.EndsWith("&"))
t = token.RefreshToken.Substring(0, token.RefreshToken.Length - 1);

SpotifyClient client = new SpotifyClient(token.AccessToken);

Core.INSTANCE.SettingManager.Settings.SpotifyAccess.UserData = await client.UserProfile.Current();
Core.INSTANCE.SettingManager.Settings.SpotifyAccess.Statistics =
await this.GetStatistics(token.AccessToken);

Core.INSTANCE.SettingManager.Settings.SpotifyAccess.AccessToken = token.AccessToken;
Core.INSTANCE.SettingManager.Settings.SpotifyAccess.RefreshToken = t;
Core.INSTANCE.SettingManager.Settings.SpotifyAccess.SpotifyExpireTime =
DateTimeOffset.Now.AddHours(1).ToUnixTimeMilliseconds();
Core.INSTANCE.SettingManager.Settings.SpotifyAccess.IsSpotifyConnected = true;
Core.INSTANCE.SettingManager.WriteSettings();
Core.INSTANCE.SettingsHandler.Settings<SpotifySection>()
.SetValue("UserData", await client.UserProfile.Current());

/*
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{
ProcessStartInfo processStartInfo = new ProcessStartInfo(url);
processStartInfo.UseShellExecute = true;
Process.Start(processStartInfo);
}

Listener.Listener l = new Listener.Listener("http://localhost:8080/", "/callback", "code");

string token = string.Empty;
bool running = false;
while (!l.Finished && !running)
{
if (l.Response != null)
{
token = l.Response;
running = true;
}
}


/*BearerAccessRefreshToken bearerAccessRefresh = await _userAccountsService.RequestAccessRefreshToken(token);

Core.INSTANCE.SettingManager.Settings.SpotifyAccess.RefreshToken = bearerAccessRefresh.RefreshToken;
Core.INSTANCE.SettingManager.Settings.SpotifyAccess.BearerAccess = bearerAccessRefresh;
Core.INSTANCE.SettingManager.Settings.SpotifyAccess.IsSpotifyConnected = true;
Core.INSTANCE.SettingManager.WriteSettings();*/
Core.INSTANCE.SettingsHandler.Settings<SpotifySection>()
.SetValue("Statistics", await this.GetStatistics(token.AccessToken));

Core.INSTANCE.SettingsHandler.Settings<SpotifySection>()
.SetValue("AccessToken", token.AccessToken);

Core.INSTANCE.SettingsHandler.Settings<SpotifySection>()
.SetValue("RefreshToken", t);

Core.INSTANCE.SettingsHandler.Settings<SpotifySection>()
.SetValue("SpotifyExpireTime", DateTimeOffset.Now.AddHours(1).ToUnixTimeMilliseconds());

Core.INSTANCE.SettingsHandler.Settings<SpotifySection>()
.SetValue<Boolean>("IsSpotifyConnected", true);

await Core.INSTANCE.SettingsHandler.TriggerEvent(typeof(SpotifySection), "UserData");
await Core.INSTANCE.SettingsHandler.TriggerEvent(typeof(SpotifySection), "Statistics");
await Core.INSTANCE.SettingsHandler.TriggerEvent(typeof(SpotifySection), "AccessToken");
await Core.INSTANCE.SettingsHandler.TriggerEvent(typeof(SpotifySection), "RefreshToken");
await Core.INSTANCE.SettingsHandler.TriggerEvent(typeof(SpotifySection), "SpotifyExpireTime");
await Core.INSTANCE.SettingsHandler.TriggerEvent(typeof(SpotifySection), "IsSpotifyConnected");
}

string IService.ServiceName()
Expand Down
Loading

0 comments on commit f885a7c

Please sign in to comment.