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

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,26 @@
using System.Net;
using YandexMusic.API.Common;
using YandexMusic.API.Models.Common;
using YandexMusic.API.Models.Playlist;
using YandexMusic.API.Requests.Common;
using YandexMusic.API.Requests.Common.Attributes;
namespace YandexMusic.API.Requests.Playlist
{
[YApiRequest(WebRequestMethods.Http.Get, "users/{user}/playlists/{kind}")]
public class YGetPlaylistBuilder : YRequestBuilder<YResponse<YPlaylist>, (string user, string kind)>
{
public YGetPlaylistBuilder(YandexMusicApi yandex, AuthStorage auth) : base(yandex, auth)
{
}
protected override Dictionary<string, string> GetSubstitutions((string user, string kind) tuple)
{
return new Dictionary<string, string> {
{ "user", tuple.user },
{ "kind", tuple.kind },
};
}
}
}

View File

@@ -0,0 +1,25 @@
using System.Net;
using YandexMusic.API.Common;
using YandexMusic.API.Models.Common;
using YandexMusic.API.Models.Playlist;
using YandexMusic.API.Requests.Common;
using YandexMusic.API.Requests.Common.Attributes;
namespace YandexMusic.API.Requests.Playlist
{
[YApiRequest(WebRequestMethods.Http.Get, "playlist/{uuid}")]
public class YGetPlaylistByUuidBuilder : YRequestBuilder<YResponse<YPlaylist>, string>
{
public YGetPlaylistByUuidBuilder(YandexMusicApi yandex, AuthStorage auth) : base(yandex, auth)
{
}
protected override Dictionary<string, string> GetSubstitutions(string uuid)
{
return new Dictionary<string, string> {
{ "uuid", uuid },
};
}
}
}

View File

@@ -0,0 +1,25 @@
using System.Net;
using YandexMusic.API.Common;
using YandexMusic.API.Models.Common;
using YandexMusic.API.Models.Playlist;
using YandexMusic.API.Requests.Common;
using YandexMusic.API.Requests.Common.Attributes;
namespace YandexMusic.API.Requests.Playlist
{
[YApiRequest(WebRequestMethods.Http.Get, "users/{uid}/playlists/list")]
public class YGetPlaylistFavoritesBuilder : YRequestBuilder<YResponse<List<YPlaylist>>, object>
{
public YGetPlaylistFavoritesBuilder(YandexMusicApi yandex, AuthStorage auth) : base(yandex, auth)
{
}
protected override Dictionary<string, string> GetSubstitutions(object tuple)
{
return new Dictionary<string, string> {
{ "uid", storage.User.Uid }
};
}
}
}

View File

@@ -0,0 +1,25 @@
using System.Net;
using YandexMusic.API.Common;
using YandexMusic.API.Models.Common;
using YandexMusic.API.Models.Playlist;
using YandexMusic.API.Requests.Common;
using YandexMusic.API.Requests.Common.Attributes;
namespace YandexMusic.API.Requests.Playlist
{
[YApiRequest(WebRequestMethods.Http.Post, "playlists/list")]
public class YGetPlaylistsBuilder : YRequestBuilder<YResponse<List<YPlaylist>>, IEnumerable<(string User, string Kind)>>
{
public YGetPlaylistsBuilder(YandexMusicApi yandex, AuthStorage auth) : base(yandex, auth)
{
}
protected override HttpContent GetContent(IEnumerable<(string User, string Kind)> playlistIds)
{
return new FormUrlEncodedContent(new Dictionary<string, string> {
{ "playlist-Ids", string.Join(",", playlistIds.Select(t => $"{t.User}:{t.Kind}")) }
});
}
}
}

View File

@@ -0,0 +1,35 @@
using System.Net;
using YandexMusic.API.Common;
using YandexMusic.API.Models.Common;
using YandexMusic.API.Models.Playlist;
using YandexMusic.API.Requests.Common;
using YandexMusic.API.Requests.Common.Attributes;
namespace YandexMusic.API.Requests.Playlist
{
[YApiRequest(WebRequestMethods.Http.Post, "users/{uid}/playlists/{kind}/change")]
public class YPlaylistChangeBuilder : YRequestBuilder<YResponse<YPlaylist>, (YPlaylist playlist, IEnumerable<YPlaylistChange> changes)>
{
public YPlaylistChangeBuilder(YandexMusicApi yandex, AuthStorage auth) : base(yandex, auth)
{
}
protected override Dictionary<string, string> GetSubstitutions((YPlaylist playlist, IEnumerable<YPlaylistChange> changes) tuple)
{
return new Dictionary<string, string> {
{ "uid", storage.User.Uid },
{ "kind", tuple.playlist.Kind }
};
}
protected override HttpContent GetContent((YPlaylist playlist, IEnumerable<YPlaylistChange> changes) tuple)
{
return new FormUrlEncodedContent(new Dictionary<string, string> {
{ "kind", tuple.playlist.Kind },
{ "revision", tuple.playlist.Revision.ToString() },
{ "diff", SerializeJson(tuple.changes) }
});
}
}
}

View File

@@ -0,0 +1,33 @@
using System.Net;
using YandexMusic.API.Common;
using YandexMusic.API.Models.Common;
using YandexMusic.API.Models.Playlist;
using YandexMusic.API.Requests.Common;
using YandexMusic.API.Requests.Common.Attributes;
namespace YandexMusic.API.Requests.Playlist
{
[YApiRequest(WebRequestMethods.Http.Post, "users/{uid}/playlists/create")]
public class YPlaylistCreateBuilder : YRequestBuilder<YResponse<YPlaylist>, string>
{
public YPlaylistCreateBuilder(YandexMusicApi yandex, AuthStorage auth) : base(yandex, auth)
{
}
protected override Dictionary<string, string> GetSubstitutions(string name)
{
return new Dictionary<string, string> {
{ "uid", storage.User.Uid }
};
}
protected override HttpContent GetContent(string name)
{
return new FormUrlEncodedContent(new Dictionary<string, string> {
{ "title", name },
{ "visibility", "public" }
});
}
}
}

View File

@@ -0,0 +1,33 @@
using System.Net;
using YandexMusic.API.Common;
using YandexMusic.API.Models.Common;
using YandexMusic.API.Models.Playlist;
using YandexMusic.API.Requests.Common;
using YandexMusic.API.Requests.Common.Attributes;
namespace YandexMusic.API.Requests.Playlist
{
[YApiRequest(WebRequestMethods.Http.Post, "users/{uid}/playlists/{kind}/name")]
public class YPlaylistRenameBuilder : YRequestBuilder<YResponse<YPlaylist>, (string kind, string name)>
{
public YPlaylistRenameBuilder(YandexMusicApi yandex, AuthStorage auth) : base(yandex, auth)
{
}
protected override Dictionary<string, string> GetSubstitutions((string kind, string name) tuple)
{
return new Dictionary<string, string> {
{ "uid", storage.User.Uid },
{ "kind", tuple.kind }
};
}
protected override HttpContent GetContent((string kind, string name) tuple)
{
return new FormUrlEncodedContent(new Dictionary<string, string> {
{ "value", tuple.name }
});
}
}
}

View File

@@ -0,0 +1,24 @@
using System.Net;
using YandexMusic.API.Common;
using YandexMusic.API.Requests.Common;
using YandexMusic.API.Requests.Common.Attributes;
namespace YandexMusic.API.Requests.Playlist
{
[YApiRequest(WebRequestMethods.Http.Post, "users/{uid}/playlists/{kind}/delete")]
public class YPlaylistRemoveBuilder : YRequestBuilder<HttpResponseMessage, string>
{
public YPlaylistRemoveBuilder(YandexMusicApi yandex, AuthStorage auth) : base(yandex, auth)
{
}
protected override Dictionary<string, string> GetSubstitutions(string kind)
{
return new Dictionary<string, string> {
{ "uid", storage.User.Uid },
{ "kind", kind }
};
}
}
}