[banshee] Last.fm: add logging for ignored tracks



commit b058fa7e6496983822f6a446298f4e75f497f902
Author: Phil Trimble <PhilTrimble gmail com>
Date:   Sat Jul 21 04:02:32 2012 -0500

    Last.fm: add logging for ignored tracks
    
    Adds informational logging for ignored tracks from last.fm. Also
    cleans up formatting from previous commit in LastFmRequest.
    
    Signed-off-by: Alexander Kojevnikov <alexk gnome org>

 .../Lastfm/Lastfm/AudioscrobblerConnection.cs      |   27 ++++++++++++++++++++
 src/Libraries/Lastfm/Lastfm/LastfmRequest.cs       |    3 +-
 2 files changed, 29 insertions(+), 1 deletions(-)
---
diff --git a/src/Libraries/Lastfm/Lastfm/AudioscrobblerConnection.cs b/src/Libraries/Lastfm/Lastfm/AudioscrobblerConnection.cs
index 3fc15de..fb6e214 100644
--- a/src/Libraries/Lastfm/Lastfm/AudioscrobblerConnection.cs
+++ b/src/Libraries/Lastfm/Lastfm/AudioscrobblerConnection.cs
@@ -274,6 +274,16 @@ namespace Lastfm
                     var scrobbles_attr = (JsonObject)scrobbles["@attr"];
                     Log.InformationFormat ("Audioscrobbler upload succeeded: {0} accepted, {1} ignored",
                                            scrobbles_attr["accepted"], scrobbles_attr["ignored"]);
+
+                    if (nb_tracks_scrobbled > 1) {
+                        var scrobble_array = (JsonArray)scrobbles["scrobble"];
+                        foreach (JsonObject scrobbled_track in scrobble_array) {
+                            LogIfIgnored (scrobbled_track);
+                        }
+                    } else {
+                        var scrobbled_track = (JsonObject)scrobbles["scrobble"];
+                        LogIfIgnored (scrobbled_track);
+                    }
                 } catch (Exception) {
                     Log.Information ("Audioscrobbler upload succeeded but unknown response received");
                     Log.Debug ("Response received", response.ToString ());
@@ -289,6 +299,23 @@ namespace Lastfm
             }
         }
 
+        private void LogIfIgnored (JsonObject scrobbled_track)
+        {
+            var ignoredMessage = (JsonObject)scrobbled_track["ignoredMessage"];
+
+            if (Convert.ToInt32 (ignoredMessage["code"]) == 0) {
+                return;
+            }
+
+            var track = (JsonObject)scrobbled_track["track"];
+            var artist = (JsonObject)scrobbled_track["artist"];
+            var album = (JsonObject)scrobbled_track["album"];
+
+            Log.InformationFormat ("Track {0} - {1} (on {2}) ignored by Last.fm, reason: {3}",
+                                   artist["#text"], track["#text"], album["#text"],
+                                   ignoredMessage["#text"]);
+        }
+
         public void NowPlaying (string artist, string title, string album, double duration,
                                 int tracknum)
         {
diff --git a/src/Libraries/Lastfm/Lastfm/LastfmRequest.cs b/src/Libraries/Lastfm/Lastfm/LastfmRequest.cs
index e22dc4d..dd20bff 100644
--- a/src/Libraries/Lastfm/Lastfm/LastfmRequest.cs
+++ b/src/Libraries/Lastfm/Lastfm/LastfmRequest.cs
@@ -251,7 +251,8 @@ namespace Lastfm
             return sb.ToString ();
         }
 
-        private void SetResponseString () {
+        private void SetResponseString ()
+        {
             if (response_string == null) {
                 using (StreamReader sr = new StreamReader (response_stream)) {
                     response_string = sr.ReadToEnd ();



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]