X-Git-Url: http://git.ithinksw.org/MenuTunes.git/blobdiff_plain/865eb081d76064bc6ec16c44f6ac976a9b1a62b3..34a2a6ce5cce484c5b8dcd413efa1181130fbab0:/AudioscrobblerController.m?ds=inline diff --git a/AudioscrobblerController.m b/AudioscrobblerController.m index 3864a0c..270704b 100644 --- a/AudioscrobblerController.m +++ b/AudioscrobblerController.m @@ -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,6 +214,9 @@ 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]; @@ -222,6 +229,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 +248,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"]]; @@ -290,10 +303,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]; @@ -335,4 +344,10 @@ static AudioscrobblerController *_sharedController = nil; [_responseData release]; } +-(NSCachedURLResponse *)connection:(NSURLConnection *)connection willCacheResponse:(NSCachedURLResponse *)cachedResponse +{ + //Don't cache any Audioscrobbler communication + return nil; +} + @end