Полностью переписанное api
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:
@@ -1,36 +1,22 @@
|
||||
using System.Collections.Specialized;
|
||||
using System.Net;
|
||||
|
||||
using YandexMusic.API.Common;
|
||||
using YandexMusic.API.Models.Common;
|
||||
using YandexMusic.API.Models.Landing.Entity.Entities.Context;
|
||||
using YandexMusic.API.Models.Library;
|
||||
using YandexMusic.API.Requests.Common;
|
||||
using YandexMusic.API.Requests.Common.Attributes;
|
||||
|
||||
namespace YandexMusic.API.Requests.Library;
|
||||
|
||||
[YApiRequest(WebRequestMethods.Http.Get, "/users/{uid}/contexts")]
|
||||
public class YGetLibraryRecentlyListenedBuilder : YRequestBuilder<YResponse<YRecentlyListenedContext>,
|
||||
(IEnumerable<YPlayContextType> contextTypes, int trackCount, int contextCount)>
|
||||
public class YGetLibraryRecentlyListenedBuilder : YMusicRequestBuilder<YRecentlyListenedContext?, (IEnumerable<YPlayContextType> contextTypes, int trackCount, int contextCount)>
|
||||
{
|
||||
public YGetLibraryRecentlyListenedBuilder(YandexMusicApi yandex, AuthStorage auth) : base(yandex, auth)
|
||||
{
|
||||
}
|
||||
|
||||
public YGetLibraryRecentlyListenedBuilder(YandexMusicApi api) : base(api) { }
|
||||
protected override string Method => WebRequestMethods.Http.Get;
|
||||
protected override string PathTemplate => "users/{uid}/contexts";
|
||||
protected override Dictionary<string, string> GetSubstitutions((IEnumerable<YPlayContextType> contextTypes, int trackCount, int contextCount) tuple)
|
||||
=> new() { { "uid", Api.Storage.User.Uid } };
|
||||
protected override NameValueCollection GetQueryParams((IEnumerable<YPlayContextType> contextTypes, int trackCount, int contextCount) tuple)
|
||||
{
|
||||
return new NameValueCollection {
|
||||
=> new()
|
||||
{
|
||||
{ "trackCount", tuple.trackCount.ToString() },
|
||||
{ "contextCount", tuple.contextCount.ToString() },
|
||||
{ "types", string.Join(",", tuple.contextTypes.Select(x => x.ToString().ToLowerInvariant())) }
|
||||
};
|
||||
}
|
||||
|
||||
protected override Dictionary<string, string> GetSubstitutions((IEnumerable<YPlayContextType> contextTypes, int trackCount, int contextCount) tuple)
|
||||
{
|
||||
return new Dictionary<string, string> {
|
||||
{ "uid", storage.User.Uid }
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -1,26 +1,18 @@
|
||||
using System.Net;
|
||||
|
||||
using YandexMusic.API.Common;
|
||||
using YandexMusic.API.Models.Common;
|
||||
using YandexMusic.API.Models.Library;
|
||||
using YandexMusic.API.Requests.Common;
|
||||
using YandexMusic.API.Requests.Common.Attributes;
|
||||
|
||||
namespace YandexMusic.API.Requests.Library;
|
||||
|
||||
[YApiRequest(WebRequestMethods.Http.Get, "users/{uid}/{type}/{section}")]
|
||||
public class YGetLibrarySectionBuilder<T> : YRequestBuilder<YResponse<T>, (YLibrarySection section, YLibrarySectionType type)>
|
||||
public class YGetLibrarySectionBuilder<T> : YMusicRequestBuilder<T?, (YLibrarySection section, YLibrarySectionType type)>
|
||||
{
|
||||
public YGetLibrarySectionBuilder(YandexMusicApi yandex, AuthStorage auth) : base(yandex, auth)
|
||||
{
|
||||
}
|
||||
|
||||
public YGetLibrarySectionBuilder(YandexMusicApi api) : base(api) { }
|
||||
protected override string Method => WebRequestMethods.Http.Get;
|
||||
protected override string PathTemplate => "users/{uid}/{type}/{section}";
|
||||
protected override Dictionary<string, string> GetSubstitutions((YLibrarySection section, YLibrarySectionType type) tuple)
|
||||
{
|
||||
return new Dictionary<string, string> {
|
||||
{ "uid", storage.User.Uid },
|
||||
=> new()
|
||||
{
|
||||
{ "uid", Api.Storage.User.Uid },
|
||||
{ "type", tuple.type.ToString().ToLower() },
|
||||
{ "section", tuple.section.ToString().ToLower() },
|
||||
{ "section", tuple.section.ToString().ToLower() }
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -1,33 +1,20 @@
|
||||
using System.Net;
|
||||
|
||||
using YandexMusic.API.Common;
|
||||
using YandexMusic.API.Models.Common;
|
||||
using YandexMusic.API.Models.Library;
|
||||
using YandexMusic.API.Requests.Common;
|
||||
using YandexMusic.API.Requests.Common.Attributes;
|
||||
|
||||
namespace YandexMusic.API.Requests.Library;
|
||||
|
||||
[YApiRequest(WebRequestMethods.Http.Post, "users/{uid}/{type}/{section}/add-multiple")]
|
||||
public class YLibraryAddBuilder<T> : YRequestBuilder<YResponse<T>, (string id, YLibrarySection section, YLibrarySectionType type)>
|
||||
public class YLibraryAddBuilder<T> : YMusicRequestBuilder<T?, (string id, YLibrarySection section, YLibrarySectionType type)>
|
||||
{
|
||||
public YLibraryAddBuilder(YandexMusicApi yandex, AuthStorage auth) : base(yandex, auth)
|
||||
{
|
||||
}
|
||||
|
||||
public YLibraryAddBuilder(YandexMusicApi api) : base(api) { }
|
||||
protected override string Method => WebRequestMethods.Http.Post;
|
||||
protected override string PathTemplate => "users/{uid}/{type}/{section}/add-multiple";
|
||||
protected override Dictionary<string, string> GetSubstitutions((string id, YLibrarySection section, YLibrarySectionType type) tuple)
|
||||
{
|
||||
return new Dictionary<string, string> {
|
||||
{ "uid", storage.User.Uid },
|
||||
=> new()
|
||||
{
|
||||
{ "uid", Api.Storage.User.Uid },
|
||||
{ "type", tuple.type.ToString().ToLower() },
|
||||
{ "section", tuple.section.ToString().ToLower() },
|
||||
{ "section", tuple.section.ToString().ToLower() }
|
||||
};
|
||||
}
|
||||
|
||||
protected override HttpContent GetContent((string id, YLibrarySection section, YLibrarySectionType type) tuple)
|
||||
{
|
||||
return new FormUrlEncodedContent(new Dictionary<string, string> {
|
||||
{ $"{tuple.section.ToString().ToLower().TrimEnd('s')}-ids", tuple.id }
|
||||
});
|
||||
}
|
||||
protected override HttpContent? GetContent((string id, YLibrarySection section, YLibrarySectionType type) tuple)
|
||||
=> new FormUrlEncodedContent(new Dictionary<string, string> { { $"{tuple.section.ToString().ToLower().TrimEnd('s')}-ids", tuple.id } });
|
||||
}
|
||||
@@ -1,33 +1,20 @@
|
||||
using System.Net;
|
||||
|
||||
using YandexMusic.API.Common;
|
||||
using YandexMusic.API.Models.Common;
|
||||
using YandexMusic.API.Models.Library;
|
||||
using YandexMusic.API.Requests.Common;
|
||||
using YandexMusic.API.Requests.Common.Attributes;
|
||||
|
||||
namespace YandexMusic.API.Requests.Library;
|
||||
|
||||
[YApiRequest(WebRequestMethods.Http.Post, "users/{uid}/{type}/{section}/remove")]
|
||||
public class YLibraryRemoveBuilder<T> : YRequestBuilder<YResponse<T>, (string id, YLibrarySection section, YLibrarySectionType type)>
|
||||
public class YLibraryRemoveBuilder<T> : YMusicRequestBuilder<T?, (string id, YLibrarySection section, YLibrarySectionType type)>
|
||||
{
|
||||
public YLibraryRemoveBuilder(YandexMusicApi yandex, AuthStorage auth) : base(yandex, auth)
|
||||
{
|
||||
}
|
||||
|
||||
public YLibraryRemoveBuilder(YandexMusicApi api) : base(api) { }
|
||||
protected override string Method => WebRequestMethods.Http.Post;
|
||||
protected override string PathTemplate => "users/{uid}/{type}/{section}/remove";
|
||||
protected override Dictionary<string, string> GetSubstitutions((string id, YLibrarySection section, YLibrarySectionType type) tuple)
|
||||
{
|
||||
return new Dictionary<string, string> {
|
||||
{ "uid", storage.User.Uid },
|
||||
=> new()
|
||||
{
|
||||
{ "uid", Api.Storage.User.Uid },
|
||||
{ "type", tuple.type.ToString().ToLower() },
|
||||
{ "section", tuple.section.ToString().ToLower() },
|
||||
{ "section", tuple.section.ToString().ToLower() }
|
||||
};
|
||||
}
|
||||
|
||||
protected override HttpContent GetContent((string id, YLibrarySection section, YLibrarySectionType type) tuple)
|
||||
{
|
||||
return new FormUrlEncodedContent(new Dictionary<string, string> {
|
||||
{ $"{tuple.section.ToString().ToLower().TrimEnd('s')}-ids", tuple.id }
|
||||
});
|
||||
}
|
||||
protected override HttpContent? GetContent((string id, YLibrarySection section, YLibrarySectionType type) tuple)
|
||||
=> new FormUrlEncodedContent(new Dictionary<string, string> { { $"{tuple.section.ToString().ToLower().TrimEnd('s')}-ids", tuple.id } });
|
||||
}
|
||||
Reference in New Issue
Block a user