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 : YXmlRequestBuilder { public YStorageDownloadFileBuilder(YandexMusicApi api) : base(api) { } protected override bool ShouldAddAuthorization => false; protected override string BaseUrl => "{src}"; // не используется, т.к. URL берётся из параметра protected override string Method => WebRequestMethods.Http.Get; protected override string PathTemplate => ""; protected override Dictionary GetSubstitutions(string src) => new() { { "src", src } }; protected override NameValueCollection GetQueryParams(string src) { var query = new NameValueCollection(); 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; } }