5 // Created by Christian Brunschen on 25/06/2008.
6 // Copyright 2008 Google Inc. All rights reserved.
9 #import "URLResultParser.h"
10 #import "URIParsedResult.h"
12 @implementation NSString (ZXingURLExtensions)
14 - (bool)looksLikeAURI {
15 if ([self rangeOfCharacterFromSet:[NSCharacterSet whitespaceCharacterSet]].location != NSNotFound) {
18 if ([self rangeOfString:@":"].location == NSNotFound) {
24 - (NSString *)massagedURLString {
25 NSRange colonRange = [self rangeOfString:@":"];
26 if (colonRange.location == NSNotFound) {
27 return [NSString stringWithFormat:@"http://%@", self];
29 return [NSString stringWithFormat:@"%@%@",
30 [[self substringToIndex:colonRange.location] lowercaseString],
31 [self substringFromIndex:colonRange.location]
39 #define PREFIX @"URL:"
41 @implementation URLResultParser
43 + (ParsedResult *)parsedResultForString:(NSString *)s {
44 NSRange prefixRange = [s rangeOfString:PREFIX options:NSCaseInsensitiveSearch];
45 if (prefixRange.location == 0) {
46 int restStart = prefixRange.location + prefixRange.length;
47 return [[[URIParsedResult alloc] initWithURLString:[[s substringFromIndex:restStart] massagedURLString]]
51 if ([s looksLikeAURI]) {
52 NSString *massaged = [s massagedURLString];
53 NSURL *url = [NSURL URLWithString:massaged];
55 return [[[URIParsedResult alloc] initWithURLString:massaged URL:url] autorelease];