using System.Collections.Specialized;
using System.Net;
using YandexMusic.API.Models.Common;
using YandexMusic.API.Requests.Common;
namespace YandexMusic.API.Requests.Track;
/// Особый запрос – не к api.music.yandex.net, а к произвольному URL.
internal class YStorageDownloadFileBuilder : YJsonRequestBuilder
{
public YStorageDownloadFileBuilder(YandexMusicApi api) : base(api) { }
protected override string BaseUrl => ""; // не используется, т.к. URL берётся из параметра
protected override string Method => WebRequestMethods.Http.Get;
protected override string PathTemplate => "{src}";
protected override Dictionary GetSubstitutions(string src)
=> new() { { "src", src.Split('?')[0] } };
protected override NameValueCollection GetQueryParams(string src)
{
var query = new NameValueCollection { { "format", "json" } };
var parts = src.Split('?');
if (parts.Length > 1)
{
foreach (var param in parts[1].Split('&'))
{
var kv = param.Split('=');
if (kv.Length == 2) query.Add(kv[0], kv[1]);
}
}
return query;
}
}