jellyfin-rich-presence/WindowsFormsApplication2/DiscordRPC.cs
2025-04-29 11:52:21 -06:00

44 lines
2 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Discord;
namespace JellyfinRPC
{
class DiscordRPC
{
public static Int64 discordAppID = Int64.Parse(ConfigManager.GetEntry("DiscordClientID"));
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
{
Details = RPCVari.GetValue(int.Parse("2")).ToString(),
State = RPCVari.GetValue(int.Parse("3")).ToString(),
Timestamps =
{
Start = Utils.DateTimeInUnix(DateTime.Now) - Utils.DateTimeInUnix(DateTime.Parse(RPCVari.GetValue(int.Parse("5")).ToString())),
End = Utils.DateTimeInUnix(DateTime.Now) + (Utils.DateTimeInUnix(DateTime.Parse(RPCVari.GetValue(int.Parse("4")).ToString())) - Utils.DateTimeInUnix(DateTime.Parse(RPCVari.GetValue(int.Parse("5")).ToString())))
},
Assets =
{
LargeImage = RPCVari.GetValue(int.Parse("0")).ToString(),
LargeText = RPCVari.GetValue(int.Parse("1")).ToString()
}
};
StatusManager.WriteStatusLine($"Details: {RPCVari.GetValue(int.Parse("2"))}, State:{RPCVari.GetValue(int.Parse("3"))}");
activityManager.UpdateActivity(activity, result => ConsoleManager.WriteToConsole($"Updating Presence. Details: {activity.Details}, State: {activity.State}, Result: {result}"));
}
else
{
activityManager.ClearActivity(result => ConsoleManager.WriteToConsole($"Update Activity {result}"));
}
}
}
}