Respond to CR.

pull/1/head
Matthew Chen 7 years ago
parent 8e44bf554c
commit 6e044675ac

@ -389,7 +389,7 @@ public class OWSLinkPreview: MTLModel {
Logger.verbose("url: \(url)")
guard let sessionManager: AFHTTPSessionManager = ReverseProxy.sessionManager(baseUrl: nil) else {
guard let sessionManager: AFHTTPSessionManager = ContentProxy.sessionManager(baseUrl: nil) else {
owsFailDebug("Couldn't create session manager.")
completion(nil)
return
@ -456,10 +456,10 @@ public class OWSLinkPreview: MTLModel {
}
Logger.verbose("linkText: \(linkText)")
let title = parseFirstMatch(pattern: "<meta property=\"og:title\" content=\"([^\"]+)\">", text: linkText)
let title = NSRegularExpression.parseFirstMatch(pattern: "<meta property=\"og:title\" content=\"([^\"]+)\">", text: linkText)
Logger.verbose("title: \(String(describing: title))")
guard let imageUrlString = parseFirstMatch(pattern: "<meta property=\"og:image\" content=\"([^\"]+)\">", text: linkText) else {
guard let imageUrlString = NSRegularExpression.parseFirstMatch(pattern: "<meta property=\"og:image\" content=\"([^\"]+)\">", text: linkText) else {
return completion(OWSLinkPreviewInfo(urlString: linkUrlString, title: title))
}
Logger.verbose("imageUrlString: \(imageUrlString)")
@ -510,26 +510,4 @@ public class OWSLinkPreview: MTLModel {
completion(linkPreviewInfo)
})
}
private class func parseFirstMatch(pattern: String,
text: String) -> String? {
do {
let regex = try NSRegularExpression(pattern: pattern)
guard let match = regex.firstMatch(in: text,
options: [],
range: NSRange(location: 0, length: text.count)) else {
return nil
}
let matchRange = match.range(at: 1)
guard let textRange = Range(matchRange, in: text) else {
owsFailDebug("Invalid match.")
return nil
}
let substring = String(text[textRange])
return substring
} catch {
Logger.error("Error: \(error)")
return nil
}
}
}

@ -11,4 +11,27 @@ public extension NSRegularExpression {
public func hasMatch(input: String) -> Bool {
return self.firstMatch(in: input, options: [], range: NSRange(location: 0, length: input.utf16.count)) != nil
}
@objc
public class func parseFirstMatch(pattern: String,
text: String) -> String? {
do {
let regex = try NSRegularExpression(pattern: pattern)
guard let match = regex.firstMatch(in: text,
options: [],
range: NSRange(location: 0, length: text.count)) else {
return nil
}
let matchRange = match.range(at: 1)
guard let textRange = Range(matchRange, in: text) else {
owsFailDebug("Invalid match.")
return nil
}
let substring = String(text[textRange])
return substring
} catch {
Logger.error("Error: \(error)")
return nil
}
}
}

Loading…
Cancel
Save