public void UpdateNowPlayingToLastFM(Domain.Objects.Track info) { Console.WriteLine("Updating Now playing on last FM"); if (System.Diagnostics.Debugger.IsAttached) { return; } Task.Factory.StartNew(() => { lock (scrobbler) // make sure no requests are run at the same time { try { var response = scrobbler.NowPlaying(GetLastFmTrackFromAudioInfo(info)); if (response.ErrorCode > 0) { Console.Error.WriteLine("Unable to update now playing track " + info.Artists.FirstOrDefault() + " - " + info.Title + " to Last FM" + ": " + response.Exception.Message); } } catch (Exception ex) { Console.Error.WriteLine("Unable to update now playing track " + info.Artists.FirstOrDefault() + " - " + info.Title + " to Last FM" + ": " + ex.Message); } } }); }
public LinkLibraryInfo RunAfterPlay(string title, string album, string artist, int trackNo, int duration, bool isLinkLibraryEnable ) { LinkLibraryInfo lastFmInfo = new LinkLibraryInfo(); if (_scrobbler == null) { return(lastFmInfo); } CurrentTrack = new Track { TrackName = title, AlbumName = album, ArtistName = artist, TrackNumber = trackNo, Duration = new TimeSpan(0, 0, 0, duration) }; CurrentTrack.WhenStartedPlaying = DateTime.Now; _scrobbler.NowPlaying(CurrentTrack); if (isLinkLibraryEnable) { // トラック情報取得 var trackInfo = _scrobbler.GetTrackInfo(CurrentTrack, false); if (trackInfo != null) { lastFmInfo.Listener = trackInfo.listeners; lastFmInfo.AllPlaycount = trackInfo.playcount; lastFmInfo.Url = trackInfo.url; } trackInfo = _scrobbler.GetLibraryTrack(CurrentTrack, true); if (trackInfo != null) { lastFmInfo.UserPlaycount = trackInfo.playcount; } else { lastFmInfo.UserPlaycount = -1; } lastFmInfo.SimilarArtists = _scrobbler.GetSimilarArtist(CurrentTrack); } return(lastFmInfo); }
public void NowPlaying_SessionKey_NoException() { // Arrange var scrobbler = new Scrobbler(ApiKey, ApiSecret, SessionKey); var track = new Track { TrackName = "Spying Glass", AlbumArtist = "Massive Attack", ArtistName = "Massive Attack", AlbumName = "Protection", Duration = new TimeSpan(0, 0, 5, 21), TrackNumber = 5, }; // Act var response = scrobbler.NowPlaying(track); }
public void NowPlaying_SessionKey_NoException() { // Arrange var scrobbler = new Scrobbler(ApiKey, ApiSecret, SessionKey); var track = new Track { TrackName = "Spying Glass", AlbumArtist = "Massive Attack", ArtistName = "Massive Attack", AlbumName = "Protection", Duration = new TimeSpan(0, 0, 5, 21), TrackNumber = 5, }; // Act var response = scrobbler.NowPlaying(track); }
/* * public static void SetRegistrySetting(string valueName, string value) { * if (string.IsNullOrEmpty(valueName)) throw new ArgumentException("valueName cannot be empty or null", "valueName"); * valueName = valueName.Trim(); * * Registry.SetValue(LpfmRegistryNameSpace, valueName, value); * }*/ public void Send(int type, string title, string artist, int duration) { try { if (type == 0) // NowPlaying // Send { CurrentTrack.TrackName = title; CurrentTrack.ArtistName = artist; CurrentTrack.WhenStartedPlaying = DateTime.Now; CurrentTrack.Duration = new TimeSpan(0, 0, duration); _scrobbler.NowPlaying(CurrentTrack); } else if (type == 1) // NowPlaying { _scrobbler.Scrobble(CurrentTrack); } } catch (Exception exception) { Console.WriteLine(exception.Message); } }