Updated to version 1.6.5
[MenuTunes.git] / AudioscrobblerController.m
index 3864a0c..bc56007 100644 (file)
@@ -91,6 +91,10 @@ static AudioscrobblerController *_sharedController = nil;
        if (!_handshakeCompleted && user) {
                NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://post.audioscrobbler.com/?hs=true&p=1.1&c=%@&v=%@&u=%@", AUDIOSCROBBLER_ID, AUDIOSCROBBLER_VERSION, user]];
                
+               [_lastStatus release];
+               _lastStatus = [NSLocalizedString(@"audioscrobbler_handshaking", @"Attempting to handshake with server") retain];
+               [[NSNotificationCenter defaultCenter] postNotificationName:@"AudioscrobblerStatusChanged" object:nil userInfo:[NSDictionary dictionaryWithObject:_lastStatus forKey:@"StatusString"]];
+               
                _currentStatus = AudioscrobblerRequestingHandshakeStatus;
                _responseData = [[NSMutableData alloc] init];
                [NSURLConnection connectionWithRequest:[NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:15] delegate:self];
@@ -210,10 +214,12 @@ static AudioscrobblerController *_sharedController = nil;
        }
        
        ITDebugLog(@"Audioscrobbler: Sending track submission request");
+       [_lastStatus release];
+       _lastStatus = [NSLocalizedString(@"audioscrobbler_submitting", @"Submitting tracks to server") retain];
+       [[NSNotificationCenter defaultCenter] postNotificationName:@"AudioscrobblerStatusChanged" object:nil userInfo:[NSDictionary dictionaryWithObject:_lastStatus forKey:@"StatusString"]];
        
        //Create and send the request
        NSMutableURLRequest *request = [[NSURLRequest requestWithURL:_postURL cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:15] mutableCopy];
-       NSLog(@"Posting Audioscrobbler URL request: %@", requestString);
        [request setHTTPMethod:@"POST"];
        [request setHTTPBody:[requestString dataUsingEncoding:NSUTF8StringEncoding]];
        _currentStatus = AudioscrobblerSubmittingTracksStatus;
@@ -222,6 +228,11 @@ static AudioscrobblerController *_sharedController = nil;
        [requestString release];
        [request release];
        
+       //For now we're not going to cache results, as it is less of a headache
+       //[_tracks removeObjectsInArray:_submitTracks];
+       [_tracks removeAllObjects];
+       [_submitTracks removeAllObjects];
+       
        //If we have tracks left, submit again after the interval seconds
 }
 
@@ -236,6 +247,7 @@ static AudioscrobblerController *_sharedController = nil;
 
 - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
 {
+       [_responseData release];
        [_lastStatus release];
        _lastStatus = [[NSString stringWithFormat:NSLocalizedString(@"audioscrobbler_error", @"Error - %@"), [error localizedDescription]] retain];
        [[NSNotificationCenter defaultCenter] postNotificationName:@"AudioscrobblerStatusChanged" object:self userInfo:[NSDictionary dictionaryWithObject:_lastStatus forKey:@"StatusString"]];
@@ -257,7 +269,6 @@ static AudioscrobblerController *_sharedController = nil;
                responseAction = [lines objectAtIndex:0];
        }
        ITDebugLog(@"Audioscrobbler: Response %@", string);
-       NSLog(@"Audioscrobbler: Response %@", string);
        if (_currentStatus == AudioscrobblerRequestingHandshakeStatus) {
                if ([lines count] < 2) {
                        //We have a protocol error
@@ -290,10 +301,6 @@ static AudioscrobblerController *_sharedController = nil;
                        //We have a protocol error
                }
        } else if (_currentStatus == AudioscrobblerSubmittingTracksStatus) {
-               //For now we're not going to cache results, as it is less of a headache
-               [_tracks removeObjectsInArray:_submitTracks];
-               [_submitTracks removeAllObjects];
-               
                if ([responseAction isEqualToString:@"OK"]) {
                        ITDebugLog(@"Audioscrobbler: Submission successful, clearing queue.");
                        /*[_tracks removeObjectsInArray:_submitTracks];
@@ -311,7 +318,6 @@ static AudioscrobblerController *_sharedController = nil;
                        //Bad auth
                } else if (([responseAction length] > 5) && [[responseAction substringToIndex:5] isEqualToString:@"FAILED"]) {
                        ITDebugLog(@"Audioscrobbler: Submission failed (%@)", [responseAction substringFromIndex:6]);
-                       NSLog(@"Audioscrobbler: Submission failed (%@)", [responseAction substringFromIndex:6]);
                        key = @"audioscrobbler_submission_failed";
                        comment = @"Last track submission failed - see console for error";
                        //Failed
@@ -335,4 +341,10 @@ static AudioscrobblerController *_sharedController = nil;
        [_responseData release];
 }
 
+-(NSCachedURLResponse *)connection:(NSURLConnection *)connection willCacheResponse:(NSCachedURLResponse *)cachedResponse
+{
+       //Don't cache any Audioscrobbler communication
+       return nil;
+}
+
 @end