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];
}
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];
[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
}
- (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"]];
//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];
[_responseData release];
}
+-(NSCachedURLResponse *)connection:(NSURLConnection *)connection willCacheResponse:(NSCachedURLResponse *)cachedResponse
+{
+ //Don't cache any Audioscrobbler communication
+ return nil;
+}
+
@end