make the quick connect code implementation much much better and actually possible to use twice in a single starting of the app

This commit is contained in:
random() 2025-05-14 14:45:46 -06:00
parent 4cf87623e4
commit 40fdd4e084
10 changed files with 17 additions and 35 deletions

View file

@ -1,7 +1,7 @@
[*.cs]
# CS8632: The annotation for nullable reference types should only be used in code within a '#nullable' annotations context.
dotnet_diagnostic.CS8632.severity = suggestion
dotnet_diagnostic.CS8632.severity = silent
# CS4014: Because this call is not awaited, execution of the current method continues before the call is completed
dotnet_diagnostic.CS4014.severity = suggestion

View file

@ -11,13 +11,13 @@ namespace JellyfinRPC
public static Int64 discordAppID = Int64.Parse(ConfigManager.GetEntry("DiscordClientID"));
static void UpdateActivity(Discord.Discord discord)
public static void UpdateActivity(Discord.Discord discord)
{
var activityManager = discord.GetActivityManager();
string[] RPCVari = JellyfinAPI.Jellyfin().Result.Split('|');
if (JellyfinAPI.Jellyfin().Result != null)
{
var activity = new Discord.Activity
Activity activity = new Activity
{
Details = RPCVari.GetValue(int.Parse("2")).ToString(),
State = RPCVari.GetValue(int.Parse("3")).ToString(),

View file

@ -179,7 +179,6 @@ namespace JellyfinRPC
}
return "album_cover";
}
private static Dictionary<string, string> jsonEntries = new Dictionary<string, string>();
public static async Task<string> SendQuickConnectRequest()
{
using var httpClient = new HttpClient();
@ -198,36 +197,18 @@ namespace JellyfinRPC
{
response.EnsureSuccessStatusCode();
var jsonResponse = await response.Content.ReadAsStringAsync();
string[] splitEmUp = jsonResponse.Split(',');
var jsonObject = JObject.Parse(jsonResponse);
if (!splitEmUp.Any())
if (!jsonObject.HasValues)
{
return "Error: Server did not respond.";
}
else
{
foreach (var splitstring in splitEmUp)
{
string[] values = splitstring.Split(':');
jsonEntries.Add(values.First().Trim(), String.Join(":", values.Skip(1)).Trim());
}
string quickConnectCode = jsonObject.Value<string>("Code");
string quickConnectToken = jsonObject.Value<string>("Secret");
return quickConnectCode;
}
if (jsonEntries.ContainsKey("\"Code\""))
{
return jsonEntries["\"Code\""].Replace('"', ' ').Trim();
}
else
{
return "Error: Server did not return code.";
}
}
catch (Exception ex)
{
@ -244,14 +225,12 @@ namespace JellyfinRPC
public static string DeviceID()
{
using (RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider())
{
byte[] randomNumber = new byte[4];
rng.GetBytes(randomNumber);
int value = BitConverter.ToInt32(randomNumber, 0);
byte[] valueBytes = System.Text.Encoding.UTF8.GetBytes(value.ToString());
return System.Convert.ToBase64String(valueBytes);
}
using RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
byte[] randomNumber = new byte[4];
rng.GetBytes(randomNumber);
int value = BitConverter.ToInt32(randomNumber, 0);
byte[] valueBytes = System.Text.Encoding.UTF8.GetBytes(value.ToString());
return System.Convert.ToBase64String(valueBytes);
}
public static async Task GetTokenFromUsernameAndPassword(string Username, string Password)
@ -294,8 +273,10 @@ namespace JellyfinRPC
public class Login
{
#pragma warning disable IDE1006 // Naming Styles
public string username { get; set; }
public string pw { get; set; }
#pragma warning restore IDE1006 // Naming Styles
}
public class QuickConnect
{

View file

@ -39,3 +39,4 @@ C:\Users\random()\Documents\Visual Studio 2010\Projects\WindowsFormsApplication2
C:\Users\random()\Documents\Visual Studio 2010\Projects\WindowsFormsApplication2\WindowsFormsApplication2\obj\x86\Debug\JellyfinRPCGUI.csproj.CopyComplete
C:\Users\random()\Documents\Visual Studio 2010\Projects\WindowsFormsApplication2\WindowsFormsApplication2\obj\x86\Debug\Jellyfin Rich Presence.exe
C:\Users\random()\Documents\Visual Studio 2010\Projects\WindowsFormsApplication2\WindowsFormsApplication2\obj\x86\Debug\Jellyfin Rich Presence.pdb
C:\Users\random()\Documents\Visual Studio 2010\Projects\WindowsFormsApplication2\WindowsFormsApplication2\obj\x86\Debug\JellyfinRPCGUI.csproj.AssemblyReference.cache