// // Songtexte.m // iLyrics // // Created by Kim Wittenburg on 22.06.12. // Copyright (c) 2012 __MyCompanyName__. All rights reserved. // // TODO: Implement parsing of multi-page results #import "Songtexte.h" #import "SearchResult.h" @implementation Songtexte { NSString *resultsPage; BOOL hasMoreResults; BOOL hadMoreResults; } @synthesize enabled; -(NSString *) name { return @"Songtexte.com"; } -(NSDate *)hosterVersion { return [NSDate dateWithString:@"2012-06-22 15:00:00 +0100"]; } -(void) startNewSearchForQuery: (NSString *)query { NSString *searchPath = [NSString stringWithFormat:@"http://www.songtexte.com/search?c=songs&q=%@", [query stringByFormattingForURL]]; NSURL *searchURL = [NSURL URLWithString:searchPath]; NSError *error; NSString *page = [NSString stringWithContentsOfURL:searchURL encoding:NSUTF8StringEncoding error:&error]; if (error || page == nil) { //Network or other error resultsPage = nil; hasMoreResults = hadMoreResults = NO; } resultsPage = page; if ([resultsPage rangeOfString:@"\n\n"].location == NSNotFound) { //No Results hasMoreResults = hadMoreResults = NO; } else { hasMoreResults = hadMoreResults = YES; } } -(BOOL)hasMoreResults { return hasMoreResults; } -(NSArray *)nextResults { if (resultsPage == nil) { //Network or other error return nil; } NSRange tableStartRange = [resultsPage rangeOfString:@"\n\n"]; if (tableStartRange.location == NSNotFound) { //No Results return [[NSArray alloc] init]; } NSRange tableRange = [self restRangeFromString:resultsPage subtractingRange:tableStartRange]; int resultsTableStart = NSMaxRange([resultsPage rangeOfString:@"