faster socket, clean up on plugin

This commit is contained in:
Michal Courson
2026-02-26 17:38:50 -05:00
parent ad07bf7fe6
commit 8c83819a17
16 changed files with 74 additions and 513 deletions

View File

@ -1,13 +1,14 @@
using System;
using BarRaider.SdTools;
using Newtonsoft.Json;
using SocketIOClient;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
using SocketIOClient;
using BarRaider.SdTools;
using System.Runtime.CompilerServices;
using static System.Runtime.InteropServices.JavaScript.JSType;
namespace ClipTrimDotNet.Client
{
@ -78,44 +79,32 @@ namespace ClipTrimDotNet.Client
return Task.CompletedTask;
});
Task.Run(async () => await socket.ConnectAsync());
//Task.Run(ShortPoll);
socket.OnDisconnected += (sender, e) =>
{
Logger.Instance.LogMessage(TracingLevel.INFO, $"Socket disconnected: {e}");
Task.Run(async () => await Connect());
};
Task.Run(async () => await Connect());
}
public async Task Connect()
{
while (!socket.Connected)
{
try
{
await socket.ConnectAsync();
}
catch
{
//public async Task ShortPoll()
//{
// while (true)
// {
// await GetMetadata();
// await Task.Delay(TimeSpan.FromSeconds(5)); await Task.Delay(TimeSpan.FromSeconds(5));
// }
//}
}
}
}
public List<CollectionMetaData> Collections { get; private set; } = new List<CollectionMetaData>();
public int SelectedCollection { get; private set; } = -1;
public int PageIndex { get; private set; } = 0;
//private async Task GetMetadata()
//{
// try
// {
// var response = await httpClient.GetAsync("meta");
// if (response.IsSuccessStatusCode)
// {
// var json = await response.Content.ReadAsStringAsync();
// dynamic collections = JsonConvert.DeserializeObject(json);
// collections = collections.collections;
// Collections = JsonConvert.DeserializeObject<List<CollectionMetaData>>(collections.ToString());
// }
// }
// catch (Exception ex)
// {
// //Logger.Instance.LogMessage(TracingLevel.INFO, $"Error pinging ClipTrim API: {ex.Message}");
// return;
// }
//}
public List<string> GetCollectionNames()
{
@ -134,6 +123,7 @@ namespace ClipTrimDotNet.Client
public ClipMetadata? GetClipByPagedIndex(int index)
{
SelectedCollection = Collections.FindIndex(x => x.Name == GlobalSettings.Instance.ProfileName);
if (SelectedCollection == -1) return null;
int clipIndex = PageIndex * 10 + index;
var collection = Collections[SelectedCollection];
@ -147,12 +137,8 @@ namespace ClipTrimDotNet.Client
public async void PlayClip(ClipMetadata? metadata)
{
if (metadata == null) return;
//var response = await httpClient.PostAsync("playback/start", new StringContent(JsonConvert.SerializeObject(metadata), Encoding.UTF8, "application/json"));
//if (!response.IsSuccessStatusCode)
//{
// //Logger.Instance.LogMessage(TracingLevel.INFO, $"Error playing clip: {response.ReasonPhrase}");
//}
Logger.Instance.LogMessage(TracingLevel.INFO, $"playing clip:");
await socket.EmitAsync("play_clip", new List<object>() { metadata });
}
}
}