Changed way it gets the link to improve probability of it getting the link without html.
This commit is contained in:
parent
1002a9616f
commit
cc420e9c72
@ -48,13 +48,27 @@ NSString * const MGMAIAllowStrangers = @"MGMAIAllowStrangers";
|
|||||||
continue;
|
continue;
|
||||||
range.location = linkStartRange.location+linkStartRange.length;
|
range.location = linkStartRange.location+linkStartRange.length;
|
||||||
range.length = [html length]-range.location;
|
range.length = [html length]-range.location;
|
||||||
NSRange linkEndRange = [html rangeOfString:@"<" options:NSCaseInsensitiveSearch range:range];
|
NSRange linkEndRange = [html rangeOfString:@"</a" options:NSCaseInsensitiveSearch range:range];
|
||||||
if (linkEndRange.location==NSNotFound)
|
if (linkEndRange.location==NSNotFound)
|
||||||
continue;
|
continue;
|
||||||
range.location = linkEndRange.location+linkEndRange.length;
|
range.location = linkEndRange.location+linkEndRange.length;
|
||||||
range.length = [html length]-range.location;
|
range.length = [html length]-range.location;
|
||||||
linkRange = NSMakeRange(linkStartRange.location+linkStartRange.length, linkEndRange.location-(linkStartRange.location+linkStartRange.length));
|
linkRange = NSMakeRange(linkStartRange.location+linkStartRange.length, linkEndRange.location-(linkStartRange.location+linkStartRange.length));
|
||||||
NSString *link = [html substringWithRange:linkRange];
|
NSMutableString *link = [[html substringWithRange:linkRange] mutableCopy];
|
||||||
|
NSRange tagRange = NSMakeRange(0, [link length]);
|
||||||
|
while (YES) {
|
||||||
|
NSRange tagStartRange = [link rangeOfString:@"<" options:NSCaseInsensitiveSearch range:tagRange];
|
||||||
|
if (tagStartRange.location==NSNotFound)
|
||||||
|
break;
|
||||||
|
tagRange.location = tagStartRange.location;
|
||||||
|
tagRange.length = [link length]-tagRange.location;
|
||||||
|
NSRange tagEndRange = [link rangeOfString:@">" options:NSCaseInsensitiveSearch range:tagRange];
|
||||||
|
if (tagEndRange.location==NSNotFound)
|
||||||
|
break;
|
||||||
|
[link replaceCharactersInRange:NSMakeRange(tagStartRange.location, (tagEndRange.location+tagEndRange.length)-tagStartRange.location) withString:@""];
|
||||||
|
tagRange.location = tagStartRange.location;
|
||||||
|
tagRange.length = [link length]-tagRange.location;
|
||||||
|
}
|
||||||
if ([imageExtensions containsObject:[[[[NSURL URLWithString:link] path] pathExtension] lowercaseString]]) {
|
if ([imageExtensions containsObject:[[[[NSURL URLWithString:link] path] pathExtension] lowercaseString]]) {
|
||||||
if (shouldScroll==nil) {
|
if (shouldScroll==nil) {
|
||||||
WebView *webview = (WebView *)[[(id<MGMChatViewController>)[[[theContent chat] chatContainer] chatViewController] messageDisplayController] messageView];
|
WebView *webview = (WebView *)[[(id<MGMChatViewController>)[[[theContent chat] chatContainer] chatViewController] messageDisplayController] messageView];
|
||||||
@ -65,6 +79,7 @@ NSString * const MGMAIAllowStrangers = @"MGMAIAllowStrangers";
|
|||||||
range.location += [image length]-linkRange.length;
|
range.location += [image length]-linkRange.length;
|
||||||
range.length = [html length]-range.location;
|
range.length = [html length]-range.location;
|
||||||
}
|
}
|
||||||
|
[link release];
|
||||||
} else {
|
} else {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user