public async Task NowPlaying(Audio item, LastfmUser user) { var request = new NowPlayingRequest { Track = item.Name, Album = item.Album, Artist = item.Artists.First(), ApiKey = Strings.Keys.LastfmApiKey, Method = Strings.Methods.NowPlaying, SessionKey = user.SessionKey }; //Add duration if (item.RunTimeTicks != null) { request.Duration = Convert.ToInt32(TimeSpan.FromTicks((long)item.RunTimeTicks).TotalSeconds); } var response = await Post <NowPlayingRequest, ScrobbleResponse>(request); if (response != null && !response.IsError()) { Plugin.Logger.Info("{0} is now playing '{1}' - {2} - {3}", user.Username, request.Track, request.Album, request.Artist); return; } Plugin.Logger.Error("Failed to send now playing for track: {0}", item.Name); }
public async Task NowPlaying(Audio item, LastfmUser user) { var request = new NowPlayingRequest { Track = item.Name, Album = item.Album, Artist = item.Artists.First(), ApiKey = Strings.Keys.LastfmApiKey, Method = Strings.Methods.NowPlaying, SessionKey = user.SessionKey }; //Add duration if (item.RunTimeTicks != null) request.Duration = Convert.ToInt32(TimeSpan.FromTicks((long)item.RunTimeTicks).TotalSeconds); var response = await Post<NowPlayingRequest, ScrobbleResponse>(request); if (response != null && !response.IsError()) { Plugin.Logger.Info("{0} is now playing '{1}' - {2} - {3}", user.Username, request.Track, request.Album, request.Artist); return; } Plugin.Logger.Error("Failed to send now playing for track: {0}", item.Name); }
public async Task NowPlaying(Audio item, LastfmUser user) { var request = new NowPlayingRequest { Track = item.Name, Artist = item.Artists.First(), ApiKey = Strings.Keys.LastfmApiKey, Method = Strings.Methods.NowPlaying, SessionKey = user.SessionKey, Secure = true }; if (!string.IsNullOrWhiteSpace(item.Album)) { request.Album = item.Album; } if (item.ProviderIds.ContainsKey("MusicBrainzTrack")) { request.MbId = item.ProviderIds["MusicBrainzTrack"]; } // Add duration if (item.RunTimeTicks != null) { request.Duration = Convert.ToInt32(TimeSpan.FromTicks((long)item.RunTimeTicks).TotalSeconds); } try { var response = await Post <NowPlayingRequest, ScrobbleResponse>(request); if (response != null && !response.IsError()) { _logger.LogInformation("{0} is now playing artist={1}, track={2}, album={3}", user.Username, request.Artist, request.Track, request.Album); return; } _logger.LogError("Failed to send now playing for track: {0}", item.Name); } catch (Exception ex) { _logger.LogError("Failed to send now playing for track: ex={0}, name={1}, track={2}, artist={3}, album={4}, mbid={5}", ex, item.Name, request.Track, request.Artist, request.Album, request.MbId); } }
public async Task NowPlaying(Audio item, LastfmUser user) { if (string.IsNullOrWhiteSpace(item.Name)) { Plugin.Logger.Error("Cannot set now playing for track: {0}, no name", item.Id); return; } var artist = item.Artists?.FirstOrDefault(); if (string.IsNullOrWhiteSpace(artist)) { Plugin.Logger.Error("Cannot set now playing for track: {0} ({1}), no artist found", item.Id, item.Name); return; } var request = new NowPlayingRequest { Track = item.Name, Artist = artist, Album = item.Album, SessionKey = user.SessionKey }; //Add duration if (item.RunTimeTicks != null) { request.Duration = Convert.ToInt32(TimeSpan.FromTicks((long)item.RunTimeTicks).TotalSeconds); } var response = await Post <NowPlayingRequest, ScrobbleResponse>(request).ConfigureAwait(false); if (response != null && !response.IsError()) { Plugin.Logger.Info("{0} is now playing '{1}' - {2} - {3}", user.Username, request.Track, request.Album, request.Artist); return; } Plugin.Logger.Error("Failed to send now playing for track: {0}", item.Name); }