Добавьте файлы проекта.

This commit is contained in:
FrigaT
2026-04-10 12:12:33 +03:00
parent 9615cf42ee
commit 11d0b0d72f
383 changed files with 9661 additions and 0 deletions

View File

@@ -0,0 +1,7 @@
namespace YandexMusic.API.Models.Ynison.Messages
{
public class YYnisonErrorMessage : Exception
{
public YYnisonError Error { get; set; }
}
}

View File

@@ -0,0 +1,7 @@
namespace YandexMusic.API.Models.Ynison.Messages
{
public class YYnisonMessage
{
public string Rid { get; set; } = Guid.NewGuid().ToString();
}
}

View File

@@ -0,0 +1,12 @@
namespace YandexMusic.API.Models.Ynison.Messages
{
/// <summary>
/// Типы сообщений Ynison
/// </summary>
public enum YYnisonMessageType
{
Redirect,
State,
Error
}
}

View File

@@ -0,0 +1,7 @@
namespace YandexMusic.API.Models.Ynison.Messages
{
public class YYnisonUpdateFullStateMessage : YYnisonUpdateMessage
{
public YYnisonFullState UpdateFullState { get; set; }
}
}

View File

@@ -0,0 +1,10 @@
namespace YandexMusic.API.Models.Ynison.Messages
{
public class YYnisonUpdateMessage : YYnisonMessage
{
#warning нужен enum
public string ActivityInterceptionType { get; set; } = "DO_NOT_INTERCEPT_BY_DEFAULT";
public decimal PlayerActionTimestampMs { get; set; } = DateTimeOffset.Now.ToUnixTimeMilliseconds();
}
}

View File

@@ -0,0 +1,7 @@
namespace YandexMusic.API.Models.Ynison.Messages
{
public class YYnisonUpdatePlayerStateMessage : YYnisonUpdateMessage
{
public YYnisonPlayerState UpdatePlayerState { get; set; }
}
}

View File

@@ -0,0 +1,8 @@
namespace YandexMusic.API.Models.Ynison.Wave
{
public class YYnisonEntityOptions
{
public List<YYnisonTrackSource> TrackSources { get; set; }
public YYnisonWaveEntityOptional WaveEntityOptional { get; set; }
}
}

View File

@@ -0,0 +1,9 @@
namespace YandexMusic.API.Models.Ynison.Wave
{
public class YYnisonPhonotekaSource
{
public YYnisonEntityContext EntityContext { get; set; }
public YYnisonId AlbumId { get; set; }
public YYnisonId PlaylistId { get; set; }
}
}

View File

@@ -0,0 +1,9 @@
namespace YandexMusic.API.Models.Ynison.Wave
{
public class YYnisonTrackSource
{
public decimal Key { get; set; }
public YYnisonWaveSource WaveSource { get; set; }
public YYnisonPhonotekaSource PhonotekaSource { get; set; }
}
}

View File

@@ -0,0 +1,7 @@
namespace YandexMusic.API.Models.Ynison.Wave
{
public class YYnisonWaveEntityOptional
{
public string SessionId { get; set; }
}
}

View File

@@ -0,0 +1,9 @@
namespace YandexMusic.API.Models.Ynison.Wave
{
public class YYnisonWaveQueue
{
public List<YYnisonPlayableItem> RecommendedPlayableList { get; set; }
public int LivePlayableIndex { get; set; }
public YYnisonEntityOptions EntityOptions { get; set; }
}
}

View File

@@ -0,0 +1,7 @@
namespace YandexMusic.API.Models.Ynison.Wave
{
public class YYnisonWaveSource
{
public YYnisonWaveSourceType SourceType { get; set; }
}
}

View File

@@ -0,0 +1,10 @@
using System.Runtime.Serialization;
namespace YandexMusic.API.Models.Ynison.Wave
{
public enum YYnisonWaveSourceType
{
[EnumMember(Value = "ONLINE_BY_DEFAULT")]
OnlineByDefault
}
}

View File

@@ -0,0 +1,10 @@
namespace YandexMusic.API.Models.Ynison
{
public class YYnisonDevice
{
public YYnisonDeviceInfo Info { get; set; }
public YYnisonDeviceCapabilities Capabilities { get; set; } = new();
public YYnisonDeviceVolumeInfo VolumeInfo { get; set; } = new();
public bool IsShadow { get; set; }
}
}

View File

@@ -0,0 +1,9 @@
namespace YandexMusic.API.Models.Ynison
{
public class YYnisonDeviceCapabilities
{
public bool CanBePlayer { get; set; }
public bool CanBeRemoteController { get; set; }
public decimal VolumeGranularity { get; set; }
}
}

View File

@@ -0,0 +1,10 @@
namespace YandexMusic.API.Models.Ynison
{
public class YYnisonDeviceFull : YYnisonDevice
{
public YYnisonSession Session { get; set; }
public decimal Volume { get; set; }
// Эта опция даёт ошибку 500 при попытке отправки на инициализации
public bool IsOffline { get; set; }
}
}

View File

@@ -0,0 +1,11 @@
namespace YandexMusic.API.Models.Ynison
{
public class YYnisonDeviceInfo
{
public string DeviceId { get; set; }
public string Type { get; set; }
public string Title { get; set; }
public string AppName { get; set; }
public string AppVersion { get; set; }
}
}

View File

@@ -0,0 +1,8 @@
namespace YandexMusic.API.Models.Ynison
{
public class YYnisonDeviceVolumeInfo
{
public decimal Volume { get; set; }
public YYnisonVersion Version { get; set; }
}
}

View File

@@ -0,0 +1,7 @@
namespace YandexMusic.API.Models.Ynison
{
public enum YYnisonEntityContext
{
BasedOnEntityByDefault
}
}

View File

@@ -0,0 +1,16 @@
namespace YandexMusic.API.Models.Ynison
{
public enum YYnisonEntityType
{
Unspecified,
Album,
Artist,
Various,
Radio,
Generative,
FmRadio,
VideoWave,
LocalTracks,
Playlist
}
}

View File

@@ -0,0 +1,11 @@
namespace YandexMusic.API.Models.Ynison
{
public class YYnisonError
{
public YYnisonErrorDetails Details { get; set; }
public int GrpcCode { get; set; }
public int HttpCode { get; set; }
public string HttpStatus { get; set; }
public string Message { get; set; }
}
}

View File

@@ -0,0 +1,8 @@
namespace YandexMusic.API.Models.Ynison
{
public class YYnisonErrorDetails
{
public string YnisonErrorCode { get; set; }
public string YnisonBackoffMillis { get; set; }
}
}

View File

@@ -0,0 +1,9 @@
namespace YandexMusic.API.Models.Ynison
{
public class YYnisonFullState
{
public YYnisonPlayerState PlayerState { get; set; }
public YYnisonDevice Device { get; set; }
public bool IsCurrentlyActive { get; set; }
}
}

View File

@@ -0,0 +1,7 @@
namespace YandexMusic.API.Models.Ynison
{
public class YYnisonId
{
public string Id { get; set; }
}
}

View File

@@ -0,0 +1,8 @@
namespace YandexMusic.API.Models.Ynison
{
public class YYnisonKeepAliveParams
{
public int KeepAliveTimeSeconds { get; set; }
public int KeepAliveTimeoutSeconds { get; set; }
}
}

View File

@@ -0,0 +1,20 @@
namespace YandexMusic.API.Models.Ynison
{
public class YYnisonPlayableItem
{
public string AlbumIdOptional { get; set; }
public string CoverUrlOptional { get; set; }
#warning нужен enum
public string From { get; set; }
public string PlayableId { get; set; }
public YYnisonPlayableItemType PlayableType { get; set; }
public string Title { get; set; }
public YYnisonTrackInfo TrackInfo { get; set; }
}
}

View File

@@ -0,0 +1,7 @@
namespace YandexMusic.API.Models.Ynison
{
public enum YYnisonPlayableItemType
{
Track
}
}

View File

@@ -0,0 +1,22 @@
namespace YandexMusic.API.Models.Ynison
{
public class YYnisonPlayerQueue
{
public int CurrentPlayableIndex { get; set; } = -1;
public string EntityId { get; set; }
public YYnisonEntityType EntityType { get; set; } = YYnisonEntityType.Various;
public YYnisonEntityContext EntityContext { get; set; } = YYnisonEntityContext.BasedOnEntityByDefault;
public YYnisonQueueOptions Options { get; set; } = new();
public List<YYnisonPlayableItem> PlayableList { get; set; } = new();
public YYnisonQueue Queue { get; set; }
public string FromOptional { get; set; }
public YYnisonVersion Version { get; set; }
}
}

View File

@@ -0,0 +1,9 @@
namespace YandexMusic.API.Models.Ynison
{
public class YYnisonPlayerState
{
public YYnisonPlayerQueue PlayerQueue { get; set; }
public YYnisonPlayerStateStatus Status { get; set; }
}
}

View File

@@ -0,0 +1,11 @@
namespace YandexMusic.API.Models.Ynison
{
public class YYnisonPlayerStateStatus
{
public decimal DurationMs { get; set; }
public bool Paused { get; set; } = true;
public decimal PlaybackSpeed { get; set; } = 1;
public decimal ProgressMs { get; set; }
public YYnisonVersion Version { get; set; }
}
}

View File

@@ -0,0 +1,9 @@
using YandexMusic.API.Models.Ynison.Wave;
namespace YandexMusic.API.Models.Ynison
{
public class YYnisonQueue
{
public YYnisonWaveQueue WaveQueue { get; set; }
}
}

View File

@@ -0,0 +1,8 @@
namespace YandexMusic.API.Models.Ynison
{
public class YYnisonQueueOptions
{
#warning нужен enum
public string RepeatMode { get; set; } = "NONE";
}
}

View File

@@ -0,0 +1,10 @@
namespace YandexMusic.API.Models.Ynison
{
public class YYnisonRedirect
{
public string Host { get; set; }
public string RedirectTicket { get; set; }
public string SessionId { get; set; }
public YYnisonKeepAliveParams KeepAliveParams { get; set; }
}
}

View File

@@ -0,0 +1,7 @@
namespace YandexMusic.API.Models.Ynison
{
public class YYnisonSession : YYnisonId
{
}
}

View File

@@ -0,0 +1,11 @@
using YandexMusic.API.Models.Ynison.Messages;
namespace YandexMusic.API.Models.Ynison
{
public class YYnisonState : YYnisonMessage
{
public List<YYnisonDeviceFull> Devices { get; set; }
public YYnisonPlayerState PlayerState { get; set; }
public decimal TimestampMs { get; set; }
}
}

View File

@@ -0,0 +1,7 @@
namespace YandexMusic.API.Models.Ynison
{
public class YYnisonTrackInfo
{
public decimal TrackSourceKey { get; set; }
}
}

View File

@@ -0,0 +1,9 @@
namespace YandexMusic.API.Models.Ynison
{
public class YYnisonVersion
{
public string DeviceId { get; set; }
public string Version { get; set; } = Math.Floor(0x8000000000000000 * new Random().NextDouble()).ToString("##############################") + "0";
public decimal TimestampMs { get; set; } = DateTimeOffset.Now.ToUnixTimeMilliseconds();
}
}