Пример #1
0
        public async Task ExecuteCommandAsync(Message message, Func <Chat, string, Task> responseFunc)
        {
            string lastfmUsername = await lastfmUsernameService.TryGetUsernameAsync(message.From.Id);

            if (string.IsNullOrEmpty(lastfmUsername))
            {
                throw new CommandException("Seems like you haven't registered a username 😢");
            }

            var latestScrobble = await lastfmService.GetLatestScrobbleAsync(lastfmUsername);

            if (latestScrobble == null)
            {
                string encodedUsername = HttpUtility.HtmlEncode(lastfmUsername);

                throw new CommandException($"Could not find <i>{encodedUsername}</i> on last.fm 😢");
            }

            var url = await spotifyService.TryGetLinkToTrackAsync(
                latestScrobble.LastfmTrack.ArtistName,
                latestScrobble.LastfmTrack.Name);

            string response = GetResponseMessage(lastfmUsername, latestScrobble, url);

            await responseFunc(message.Chat, response);
        }
Пример #2
0
        public async Task ExecuteCommandAsync(Message message, Func <Chat, string, Task> responseFunc)
        {
            var lastfmUsername = await lastfmUsernameService.TryGetUsernameAsync(message.From.Id);

            lastfmUsername = HttpUtility.HtmlEncode(lastfmUsername);

            if (string.IsNullOrEmpty(lastfmUsername))
            {
                throw new CommandException("No username set 😢");
            }

            IReadOnlyList <LastfmTrack> topTracks = await lastfmService.GetTopTracksAsync(lastfmUsername);

            if (topTracks.Count == 0)
            {
                throw new CommandException($"Could not retrieve top tracks for <i>{lastfmUsername}</i>");
            }

            string response = await GetResponseAsync(lastfmUsername, topTracks);

            await responseFunc(message.Chat, response);
        }