83 lines
2.8 KiB
C#
83 lines
2.8 KiB
C#
using YandexMusic.API.Models.Album;
|
|
using YandexMusic.API.Models.Artist;
|
|
using YandexMusic.API.Models.Common;
|
|
|
|
namespace YandexMusic.API.Models.Track;
|
|
|
|
public class YTrack : YBaseModel, IEquatable<YTrack>
|
|
{
|
|
public List<YAlbum> Albums { get; set; }
|
|
public List<YArtist> Artists { get; set; }
|
|
public bool Available { get; set; }
|
|
public bool AvailableForPremiumUsers { get; set; }
|
|
public bool AvailableFullWithoutPermission { get; set; }
|
|
public List<string> AvailableForOptions { get; set; }
|
|
public string BackgroundVideoUri { get; set; }
|
|
public bool Best { get; set; }
|
|
public YChart Chart { get; set; }
|
|
public string ContentWarning { get; set; }
|
|
public string CoverUri { get; set; }
|
|
public List<string> ClipIds { get; set; }
|
|
public YDerivedColors DerivedColors { get; set; }
|
|
public List<string> Disclaimers { get; set; }
|
|
public long DurationMs { get; set; }
|
|
public string Error { get; set; }
|
|
public YTrackFade Fade { get; set; }
|
|
public long FileSize { get; set; }
|
|
public string Id { get; set; }
|
|
public bool IsSuitableForChildren { get; set; }
|
|
public YMajor Major { get; set; }
|
|
public YTrackNormalization Normalization { get; set; }
|
|
public YTrackNormalizationR128 R128 { get; set; }
|
|
public string OgImage { get; set; }
|
|
public bool LyricsAvailable { get; set; }
|
|
public YLyricsInfo LyricsInfo { get; set; }
|
|
public string PlayerId { get; set; }
|
|
public long PreviewDurationMs { get; set; }
|
|
public YPodcastEpisodeType PodcastEpisodeType { get; set; }
|
|
public DateTime PubDate { get; set; }
|
|
public string RealId { get; set; }
|
|
public bool RememberPosition { get; set; }
|
|
public string ShortDescription { get; set; }
|
|
public List<string> SpecialAudioResources { get; set; }
|
|
public string StorageDir { get; set; }
|
|
public YTrack Substituted { get; set; }
|
|
public string Title { get; set; }
|
|
public YTrackSharingFlag TrackSharingFlag { get; set; }
|
|
public YTrackSource TrackSource { get; set; }
|
|
public string Type { get; set; }
|
|
public string Version { get; set; }
|
|
|
|
public YTrackAlbumPair GetKey()
|
|
{
|
|
return new YTrackAlbumPair
|
|
{
|
|
Id = Id,
|
|
AlbumId = Albums?.FirstOrDefault()?.Id
|
|
};
|
|
}
|
|
|
|
#region IEquatable
|
|
|
|
public bool Equals(YTrack other)
|
|
{
|
|
if (ReferenceEquals(null, other)) return false;
|
|
if (ReferenceEquals(this, other)) return true;
|
|
return GetKey().Equals(other.GetKey());
|
|
}
|
|
|
|
public override bool Equals(object obj)
|
|
{
|
|
if (ReferenceEquals(null, obj)) return false;
|
|
if (ReferenceEquals(this, obj)) return true;
|
|
if (obj.GetType() != GetType()) return false;
|
|
return Equals((YTrack)obj);
|
|
}
|
|
|
|
public override int GetHashCode()
|
|
{
|
|
return GetKey().GetHashCode();
|
|
}
|
|
|
|
#endregion IEquatable
|
|
} |