|
|
@ -137,7 +137,7 @@ public class OWSLinkPreview: MTLModel {
|
|
|
|
Logger.error("Discarding link preview; message has attachments.")
|
|
|
|
Logger.error("Discarding link preview; message has attachments.")
|
|
|
|
throw LinkPreviewError.invalidInput
|
|
|
|
throw LinkPreviewError.invalidInput
|
|
|
|
}
|
|
|
|
}
|
|
|
|
let urlString = stripPossibleLinkUrl(previewProto.url)
|
|
|
|
let urlString = previewProto.url
|
|
|
|
|
|
|
|
|
|
|
|
guard URL(string: urlString) != nil else {
|
|
|
|
guard URL(string: urlString) != nil else {
|
|
|
|
Logger.error("Could not parse preview URL.")
|
|
|
|
Logger.error("Could not parse preview URL.")
|
|
|
@ -289,7 +289,6 @@ public class OWSLinkPreview: MTLModel {
|
|
|
|
|
|
|
|
|
|
|
|
// MARK: - Domain Whitelist
|
|
|
|
// MARK: - Domain Whitelist
|
|
|
|
|
|
|
|
|
|
|
|
// TODO: Finalize
|
|
|
|
|
|
|
|
private static let linkDomainWhitelist = [
|
|
|
|
private static let linkDomainWhitelist = [
|
|
|
|
"youtube.com",
|
|
|
|
"youtube.com",
|
|
|
|
"reddit.com",
|
|
|
|
"reddit.com",
|
|
|
@ -299,7 +298,6 @@ public class OWSLinkPreview: MTLModel {
|
|
|
|
"youtu.be"
|
|
|
|
"youtu.be"
|
|
|
|
]
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
// TODO: Finalize
|
|
|
|
|
|
|
|
private static let mediaDomainWhitelist = [
|
|
|
|
private static let mediaDomainWhitelist = [
|
|
|
|
"ytimg.com",
|
|
|
|
"ytimg.com",
|
|
|
|
"cdninstagram.com",
|
|
|
|
"cdninstagram.com",
|
|
|
@ -333,16 +331,6 @@ public class OWSLinkPreview: MTLModel {
|
|
|
|
return result
|
|
|
|
return result
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private class func stripPossibleLinkUrl(_ urlString: String) -> String {
|
|
|
|
|
|
|
|
var result = urlString.ows_stripped()
|
|
|
|
|
|
|
|
let suffixToStrip = ","
|
|
|
|
|
|
|
|
while result.hasSuffix(suffixToStrip) {
|
|
|
|
|
|
|
|
let endIndex = result.index(result.endIndex, offsetBy: -suffixToStrip.count)
|
|
|
|
|
|
|
|
result = String(result[..<endIndex]).ows_stripped()
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return result
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@objc
|
|
|
|
@objc
|
|
|
|
public class func isValidLinkUrl(_ urlString: String) -> Bool {
|
|
|
|
public class func isValidLinkUrl(_ urlString: String) -> Bool {
|
|
|
|
guard let url = URL(string: urlString) else {
|
|
|
|
guard let url = URL(string: urlString) else {
|
|
|
|