Пример #1
0
        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());
        }
Пример #2
0
        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));
        }