diff --git a/Application/PlaybackController.m b/Application/PlaybackController.m index 3e4ab90a0..fb0fcd137 100644 --- a/Application/PlaybackController.m +++ b/Application/PlaybackController.m @@ -170,7 +170,13 @@ NSDictionary * makeRGInfo(PlaylistEntry *pe) if (pe == nil) return; - + + BOOL loadData = YES; + NSString * urlScheme = [[pe URL] scheme]; + if ([urlScheme isEqualToString:@"http"] || + [urlScheme isEqualToString:@"https"]) + loadData = NO; + #if 0 // Race here, but the worst that could happen is we re-read the data if ([pe metadataLoaded] != YES) { @@ -184,7 +190,7 @@ NSDictionary * makeRGInfo(PlaylistEntry *pe) } #else // Let's do it this way instead - if ([pe metadataLoaded] != YES) { + if ([pe metadataLoaded] != YES && loadData == YES) { NSArray *entries = [NSArray arrayWithObject:pe]; [playlistLoader performSelectorInBackground:@selector(loadInfoForEntries:) withObject:entries]; } diff --git a/Audio/PluginController.m b/Audio/PluginController.m index a644fda28..2f119f037 100644 --- a/Audio/PluginController.m +++ b/Audio/PluginController.m @@ -287,6 +287,11 @@ static PluginController *sharedPluginController = nil; - (NSDictionary *)metadataForURL:(NSURL *)url { + NSString * urlScheme = [url scheme]; + if ([urlScheme isEqualToString:@"http"] || + [urlScheme isEqualToString:@"https"]) + return nil; + NSString *ext = [url pathExtension]; NSArray *readers = [metadataReaders objectForKey:[ext lowercaseString]]; NSString *classString; @@ -311,6 +316,11 @@ static PluginController *sharedPluginController = nil; //If no properties reader is defined, use the decoder's properties. - (NSDictionary *)propertiesForURL:(NSURL *)url { + NSString * urlScheme = [url scheme]; + if ([urlScheme isEqualToString:@"http"] || + [urlScheme isEqualToString:@"https"]) + return nil; + NSDictionary *properties = nil; NSString *ext = [url pathExtension]; diff --git a/Plugins/HTTPSource/HTTPSource.m b/Plugins/HTTPSource/HTTPSource.m index c4d506b21..79688afbe 100644 --- a/Plugins/HTTPSource/HTTPSource.m +++ b/Plugins/HTTPSource/HTTPSource.m @@ -111,9 +111,9 @@ dataTask:(NSURLSessionDataTask *)dataTask didReceiveResponse:(NSURLResponse *)response completionHandler:(void (^)(NSURLSessionResponseDisposition disposition))completionHandler { - if ([response isKindOfClass:[NSHTTPURLResponse class]]) { - NSInteger statusCode = [(NSHTTPURLResponse *)response statusCode]; - if (statusCode != 200) { + NSInteger statusCode = [(NSHTTPURLResponse *)response statusCode]; + if (statusCode != 200) { if ([response isKindOfClass:[NSHTTPURLResponse class]]) { + completionHandler(NSURLSessionResponseCancel); @synchronized (task) { task = nil;