diff --git a/YandexMusicResolver/Loaders/IYandexMusicTrackLoader.cs b/YandexMusicResolver/Loaders/IYandexMusicTrackLoader.cs index c8c44b4..d5613c1 100644 --- a/YandexMusicResolver/Loaders/IYandexMusicTrackLoader.cs +++ b/YandexMusicResolver/Loaders/IYandexMusicTrackLoader.cs @@ -1,6 +1,8 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.Threading.Tasks; using YandexMusicResolver.AudioItems; +using YandexMusicResolver.Ids; namespace YandexMusicResolver.Loaders { /// @@ -13,6 +15,27 @@ public interface IYandexMusicTrackLoader { /// Target track id /// Instance of Task LoadTrack(long trackId); + + /// + /// Load track info + /// + /// Target track id + /// Instance of + Task LoadTrack(Guid trackId); + + /// + /// Load track info + /// + /// Target track id + /// Instance of + Task LoadTrack(YandexId trackId); + + /// + /// Load track info + /// + /// Target track id + /// Instance of + Task LoadTrack(string trackId); /// /// Load track infos @@ -20,5 +43,26 @@ public interface IYandexMusicTrackLoader { /// Target track ids /// List of instances of Task> LoadTracks(IEnumerable trackIds); + + /// + /// Load track infos + /// + /// Target track ids + /// List of instances of + Task> LoadTracks(IEnumerable trackIds); + + /// + /// Load track infos + /// + /// Target track ids + /// List of instances of + Task> LoadTracks(IEnumerable trackIds); + + /// + /// Load track infos + /// + /// Target track ids + /// List of instances of + Task> LoadTracks(IEnumerable trackIds); } } diff --git a/YandexMusicResolver/Loaders/YandexMusicTrackLoader.cs b/YandexMusicResolver/Loaders/YandexMusicTrackLoader.cs index 7d6f2ba..939a081 100644 --- a/YandexMusicResolver/Loaders/YandexMusicTrackLoader.cs +++ b/YandexMusicResolver/Loaders/YandexMusicTrackLoader.cs @@ -5,6 +5,7 @@ using System.Threading.Tasks; using YandexMusicResolver.AudioItems; using YandexMusicResolver.Config; +using YandexMusicResolver.Ids; using YandexMusicResolver.Responses; namespace YandexMusicResolver.Loaders { @@ -40,7 +41,16 @@ public static YandexMusicTrackLoader CreateWithHttpClient(IYandexCredentialsProv } /// - public async Task LoadTrack(long trackId) { + public Task LoadTrack(long trackId) => LoadTrack(trackId.ToString()); + + /// + public Task LoadTrack(Guid trackId) => LoadTrack(trackId.ToString()); + + /// + public Task LoadTrack(YandexId trackId) => LoadTrack(trackId.ToString()); + + /// + public async Task LoadTrack(string trackId) { try { var url = TracksInfoFormat + trackId; var response = await _httpClient.PerformYMusicRequestAsync>(_credentialsProvider, url); @@ -52,7 +62,16 @@ public static YandexMusicTrackLoader CreateWithHttpClient(IYandexCredentialsProv } /// - public async Task> LoadTracks(IEnumerable trackIds) { + public Task> LoadTracks(IEnumerable trackIds) => LoadTracks(trackIds.Select(l => l.ToString())); + + /// + public Task> LoadTracks(IEnumerable trackIds) => LoadTracks(trackIds.Select(l => l.ToString())); + + /// + public Task> LoadTracks(IEnumerable trackIds) => LoadTracks(trackIds.Select(l => l.ToString())); + + /// + public async Task> LoadTracks(IEnumerable trackIds) { try { var trackIdsString = string.Join(",", trackIds); var url = TracksInfoFormat + trackIdsString;