35 lines
1016 B
C#
35 lines
1016 B
C#
using Manager.YouTube.Models.Innertube;
|
|
|
|
namespace Manager.YouTube.Models;
|
|
|
|
public class ClientExternalData
|
|
{
|
|
public ClientState? State { get; set; }
|
|
public ClientInformation Information { get; set; } = new();
|
|
public List<string> DatasyncIds { get; set; } = [];
|
|
|
|
public string GetDatasyncId()
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(State?.WebPlayerContextConfig?.WebPlayerContext?.DatasyncId))
|
|
{
|
|
return State.WebPlayerContextConfig.WebPlayerContext.DatasyncId;
|
|
}
|
|
|
|
var tempDatasyncId = "";
|
|
foreach (var datasyncId in DatasyncIds)
|
|
{
|
|
var split = datasyncId.Split("||", StringSplitOptions.RemoveEmptyEntries);
|
|
switch (split.Length)
|
|
{
|
|
case 0:
|
|
case 2 when tempDatasyncId.Equals(split[1]):
|
|
continue;
|
|
case 2:
|
|
tempDatasyncId = split[1];
|
|
break;
|
|
}
|
|
}
|
|
|
|
return tempDatasyncId;
|
|
}
|
|
} |