Переделано воспроизведение аудио
All checks were successful
Release / pack-and-publish (release) Successful in 36s
All checks were successful
Release / pack-and-publish (release) Successful in 36s
This commit is contained in:
@@ -15,7 +15,7 @@ public static class YAlbumExtensions
|
||||
if (album.Volumes != null)
|
||||
return album;
|
||||
|
||||
var result = await album.Context.API.Album.GetAsync(album.Id);
|
||||
var result = await album.Context.Api.Album.GetAsync(album.Id);
|
||||
return result ?? album;
|
||||
}
|
||||
|
||||
@@ -23,11 +23,11 @@ public static class YAlbumExtensions
|
||||
/// Добавляет альбом в список лайкнутых.
|
||||
/// </summary>
|
||||
public static async Task<string?> AddLikeAsync(this YAlbum album)
|
||||
=> await album.Context.API.Library.AddAlbumLikeAsync(album);
|
||||
=> await album.Context.Api.Library.AddAlbumLikeAsync(album);
|
||||
|
||||
/// <summary>
|
||||
/// Удаляет альбом из списка лайкнутых.
|
||||
/// </summary>
|
||||
public static async Task<string?> RemoveLikeAsync(this YAlbum album)
|
||||
=> await album.Context.API.Library.RemoveAlbumLikeAsync(album);
|
||||
=> await album.Context.Api.Library.RemoveAlbumLikeAsync(album);
|
||||
}
|
||||
@@ -12,29 +12,29 @@ public static class YArtistExtensions
|
||||
/// Получает расширенную информацию об исполнителе.
|
||||
/// </summary>
|
||||
public static async Task<YArtistBriefInfo?> BriefInfoAsync(this YArtist artist)
|
||||
=> await artist.Context.API.Artist.GetAsync(artist.Id);
|
||||
=> await artist.Context.Api.Artist.GetAsync(artist.Id);
|
||||
|
||||
/// <summary>
|
||||
/// Получает страницу треков исполнителя.
|
||||
/// </summary>
|
||||
public static async Task<YTracksPage?> GetTracksAsync(this YArtist artist, int page = 0, int pageSize = 20)
|
||||
=> await artist.Context.API.Artist.GetTracksAsync(artist.Id, page, pageSize);
|
||||
=> await artist.Context.Api.Artist.GetTracksAsync(artist.Id, page, pageSize);
|
||||
|
||||
/// <summary>
|
||||
/// Получает все треки исполнителя.
|
||||
/// </summary>
|
||||
public static async Task<List<YTrack>?> GetAllTracksAsync(this YArtist artist)
|
||||
=> (await artist.Context.API.Artist.GetAllTracksAsync(artist.Id))?.Tracks;
|
||||
=> (await artist.Context.Api.Artist.GetAllTracksAsync(artist.Id))?.Tracks;
|
||||
|
||||
/// <summary>
|
||||
/// Добавляет исполнителя в список лайкнутых.
|
||||
/// </summary>
|
||||
public static async Task<string?> AddLikeAsync(this YArtist artist)
|
||||
=> await artist.Context.API.Library.AddArtistLikeAsync(artist);
|
||||
=> await artist.Context.Api.Library.AddArtistLikeAsync(artist);
|
||||
|
||||
/// <summary>
|
||||
/// Удаляет исполнителя из списка лайкнутых.
|
||||
/// </summary>
|
||||
public static async Task<string?> RemoveLikeAsync(this YArtist artist)
|
||||
=> await artist.Context.API.Library.RemoveArtistLikeAsync(artist);
|
||||
=> await artist.Context.Api.Library.RemoveArtistLikeAsync(artist);
|
||||
}
|
||||
@@ -18,44 +18,44 @@ public static class YPlaylistExtensions
|
||||
{
|
||||
if (playlist.Tracks != null)
|
||||
return playlist;
|
||||
return await playlist.Context.API.Playlist.GetAsync(playlist);
|
||||
return await playlist.Context.Api.Playlist.GetAsync(playlist);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Добавляет плейлист в список лайкнутых.
|
||||
/// </summary>
|
||||
public static async Task<string?> AddLikeAsync(this YPlaylist playlist)
|
||||
=> await playlist.Context.API.Library.AddPlaylistLikeAsync(playlist);
|
||||
=> await playlist.Context.Api.Library.AddPlaylistLikeAsync(playlist);
|
||||
|
||||
/// <summary>
|
||||
/// Удаляет плейлист из списка лайкнутых.
|
||||
/// </summary>
|
||||
public static async Task<string?> RemoveLikeAsync(this YPlaylist playlist)
|
||||
=> await playlist.Context.API.Library.RemovePlaylistLikeAsync(playlist);
|
||||
=> await playlist.Context.Api.Library.RemovePlaylistLikeAsync(playlist);
|
||||
|
||||
/// <summary>
|
||||
/// Переименовывает плейлист (только для владельца).
|
||||
/// </summary>
|
||||
public static async Task<YPlaylist?> RenameAsync(this YPlaylist playlist, string newName)
|
||||
=> IsOwner(playlist) ? await playlist.Context.API.Playlist.RenameAsync(playlist, newName) : playlist;
|
||||
=> IsOwner(playlist) ? await playlist.Context.Api.Playlist.RenameAsync(playlist, newName) : playlist;
|
||||
|
||||
/// <summary>
|
||||
/// Удаляет плейлист (только для владельца).
|
||||
/// </summary>
|
||||
public static async Task<bool> DeleteAsync(this YPlaylist playlist)
|
||||
=> IsOwner(playlist) && await playlist.Context.API.Playlist.DeleteAsync(playlist);
|
||||
=> IsOwner(playlist) && await playlist.Context.Api.Playlist.DeleteAsync(playlist);
|
||||
|
||||
/// <summary>
|
||||
/// Вставляет треки в начало плейлиста (только для владельца).
|
||||
/// </summary>
|
||||
public static async Task<YPlaylist?> InsertTracksAsync(this YPlaylist playlist, params YTrack[] tracks)
|
||||
=> IsOwner(playlist) ? await playlist.Context.API.Playlist.InsertTracksAsync(playlist, tracks) : playlist;
|
||||
=> IsOwner(playlist) ? await playlist.Context.Api.Playlist.InsertTracksAsync(playlist, tracks) : playlist;
|
||||
|
||||
/// <summary>
|
||||
/// Удаляет треки из плейлиста (только для владельца).
|
||||
/// </summary>
|
||||
public static async Task<YPlaylist?> RemoveTracksAsync(this YPlaylist playlist, params YTrack[] tracks)
|
||||
=> IsOwner(playlist) ? await playlist.Context.API.Playlist.DeleteTracksAsync(playlist, tracks) : playlist;
|
||||
=> IsOwner(playlist) ? await playlist.Context.Api.Playlist.DeleteTracksAsync(playlist, tracks) : playlist;
|
||||
|
||||
/// <summary>
|
||||
/// Загружает трек в плейлист (только для владельца).
|
||||
@@ -63,7 +63,7 @@ public static class YPlaylistExtensions
|
||||
public static async Task<bool> UploadTrackAsync(this YPlaylist playlist, string filePath, string fileName)
|
||||
{
|
||||
if (!IsOwner(playlist)) return false;
|
||||
var result = await playlist.Context.API.UserGeneratedContent.UploadTrackToPlaylistAsync(playlist, fileName, filePath);
|
||||
var result = await playlist.Context.Api.UserGeneratedContent.UploadTrackToPlaylistAsync(playlist, fileName, filePath);
|
||||
return result == "CREATED";
|
||||
}
|
||||
}
|
||||
@@ -12,17 +12,17 @@ public static class YStationResultExtensions
|
||||
/// Получает список треков для радиостанции.
|
||||
/// </summary>
|
||||
public static async Task<List<YSequenceItem>?> GetTracksAsync(this YStation station, string prevTrackId = "")
|
||||
=> (await station.Context.API.Radio.GetStationTracksAsync(station, prevTrackId))?.Sequence;
|
||||
=> (await station.Context.Api.Radio.GetStationTracksAsync(station, prevTrackId))?.Sequence;
|
||||
|
||||
/// <summary>
|
||||
/// Устанавливает настройки станции.
|
||||
/// </summary>
|
||||
public static async Task<string?> SetSettings2Async(this YStation station, YStationSettings2 settings)
|
||||
=> await station.Context.API.Radio.SetStationSettings2Async(station, settings);
|
||||
=> await station.Context.Api.Radio.SetStationSettings2Async(station, settings);
|
||||
|
||||
/// <summary>
|
||||
/// Отправляет обратную связь о прослушивании.
|
||||
/// </summary>
|
||||
public static Task<string?> SendFeedbackAsync(this YStation station, YStationFeedbackType type, YTrack? track = null, string batchId = "", double totalPlayedSeconds = 0)
|
||||
=> station.Context.API.Radio.SendStationFeedbackAsync(station, type, track, batchId, totalPlayedSeconds);
|
||||
=> station.Context.Api.Radio.SendStationFeedbackAsync(station, type, track, batchId, totalPlayedSeconds);
|
||||
}
|
||||
@@ -11,53 +11,53 @@ public static class YTrackExtensions
|
||||
/// Получает прямую ссылку на скачивание трека.
|
||||
/// </summary>
|
||||
public static Task<string?> GetLinkAsync(this YTrack track)
|
||||
=> track.Context.API.Track.GetFileLinkAsync(track);
|
||||
=> track.Context.Api.Track.GetFileLinkAsync(track);
|
||||
|
||||
/// <summary>
|
||||
/// Сохраняет трек в файл.
|
||||
/// </summary>
|
||||
public static Task SaveAsync(this YTrack track, string filePath)
|
||||
=> track.Context.API.Track.ExtractToFileAsync(track, filePath);
|
||||
=> track.Context.Api.Track.ExtractToFileAsync(track, filePath);
|
||||
|
||||
/// <summary>
|
||||
/// Добавляет трек в список лайкнутых.
|
||||
/// </summary>
|
||||
public static async Task<int?> AddLikeAsync(this YTrack track)
|
||||
=> await track.Context.API.Library.AddTrackLikeAsync(track);
|
||||
=> await track.Context.Api.Library.AddTrackLikeAsync(track);
|
||||
|
||||
/// <summary>
|
||||
/// Удаляет трек из списка лайкнутых.
|
||||
/// </summary>
|
||||
public static async Task<int?> RemoveLikeAsync(this YTrack track)
|
||||
=> await track.Context.API.Library.RemoveTrackLikeAsync(track);
|
||||
=> await track.Context.Api.Library.RemoveTrackLikeAsync(track);
|
||||
|
||||
/// <summary>
|
||||
/// Добавляет трек в список дизлайкнутых.
|
||||
/// </summary>
|
||||
public static async Task<int?> AddDislikeAsync(this YTrack track)
|
||||
=> await track.Context.API.Library.AddTrackDislikeAsync(track);
|
||||
=> await track.Context.Api.Library.AddTrackDislikeAsync(track);
|
||||
|
||||
/// <summary>
|
||||
/// Удаляет трек из списка дизлайкнутых.
|
||||
/// </summary>
|
||||
public static async Task<int?> RemoveDislikeAsync(this YTrack track)
|
||||
=> await track.Context.API.Library.RemoveTrackDislikeAsync(track);
|
||||
=> await track.Context.Api.Library.RemoveTrackDislikeAsync(track);
|
||||
|
||||
/// <summary>
|
||||
/// Отправляет информацию о воспроизведении трека.
|
||||
/// </summary>
|
||||
public static Task<string?> SendPlayTrackInfoAsync(this YTrack track, string from, bool fromCache = false, string playId = "", string playlistId = "", double totalPlayedSeconds = 0, double endPositionSeconds = 0)
|
||||
=> track.Context.API.Track.SendPlayTrackInfoAsync(track, from, fromCache, playId, playlistId, totalPlayedSeconds, endPositionSeconds);
|
||||
=> track.Context.Api.Track.SendPlayTrackInfoAsync(track, from, fromCache, playId, playlistId, totalPlayedSeconds, endPositionSeconds);
|
||||
|
||||
/// <summary>
|
||||
/// Получает дополнительную информацию о треке.
|
||||
/// </summary>
|
||||
public static async Task<YTrackSupplement?> SupplementAsync(this YTrack track)
|
||||
=> await track.Context.API.Track.GetSupplementAsync(track);
|
||||
=> await track.Context.Api.Track.GetSupplementAsync(track);
|
||||
|
||||
/// <summary>
|
||||
/// Получает похожие треки.
|
||||
/// </summary>
|
||||
public static async Task<YTrackSimilar?> SimilarAsync(this YTrack track)
|
||||
=> await track.Context.API.Track.GetSimilarAsync(track);
|
||||
=> await track.Context.Api.Track.GetSimilarAsync(track);
|
||||
}
|
||||
Reference in New Issue
Block a user