Esempio n. 1
0
        private async Task DoWork(CancellationToken cancellationToken)
        {
            await _youtubeService.Initialize(cancellationToken);

            await _spotifyService.Initialize(cancellationToken);

            if (cancellationToken.IsCancellationRequested)
            {
                return;
            }

            var playlistId = await _spotifyService.CreatePlaylist(Constants.ApplicationName, cancellationToken);

            await foreach (var title in _youtubeService.QueryLikedMusicVideos(cancellationToken))
            {
                var finalTitle = FilterTitle(title);

                _logger.LogInformation("Searching for {title}!", finalTitle);
                var tracks = await _spotifyService.SearchTracks(finalTitle, cancellationToken);

                if (tracks.Count == 0)
                {
                    _logger.LogWarning("{title} not found!", finalTitle);
                    continue;
                }

                // grab the first track for now
                var track = tracks.First();
                _logger.LogInformation("Found {track.Name} by {track.Artists}", track.Name, JsonConvert.SerializeObject(track.Artists));

                await _spotifyService.AddToPlaylist(playlistId, track.Id, cancellationToken);
            }
        }