public async Task <SongInfo> ResolveSong(string query) { var svideo = !_sc.IsSoundCloudLink(query) ? await _sc.GetVideoByQueryAsync(query).ConfigureAwait(false) : await _sc.ResolveVideoAsync(query).ConfigureAwait(false); if (svideo == null) { return(null); } return(await svideo.GetSongInfo()); }
public async Task <ITrackInfo?> ResolveByQueryAsync(string query) { var cached = await _trackCacher.GetCachedDataByQueryAsync(query, MusicPlatform.SoundCloud); if (!(cached is null)) { return(CachableDataToTrackInfo(cached)); } var svideo = !IsSoundCloudLink(query) ? await _sc.GetVideoByQueryAsync(query).ConfigureAwait(false) : await _sc.ResolveVideoAsync(query).ConfigureAwait(false); if (svideo is null) { return(null); } var cachableData = VideoModelToCachedData(svideo); await _trackCacher.CacheTrackDataByQueryAsync(query, cachableData); return(CachableDataToTrackInfo(cachableData)); }