Merge pull request #1412 from thelounge/xpaw/fix-uri

Do not throw an exception when URI parsing fails
This commit is contained in:
Pavel Djundik 2017-08-15 14:40:37 +03:00 committed by GitHub
commit 6ce46a63bf

View File

@ -23,8 +23,16 @@ function findLinks(text) {
// See https://medialize.github.io/URI.js/docs.html#static-withinString // See https://medialize.github.io/URI.js/docs.html#static-withinString
// In our case, we store each URI encountered in a result array. // In our case, we store each URI encountered in a result array.
URI.withinString(text, function(url, start, end) { URI.withinString(text, function(url, start, end) {
// Extract the scheme of the URL detected, if there is one let parsedScheme;
const parsedScheme = URI(url).scheme().toLowerCase();
try {
// Extract the scheme of the URL detected, if there is one
parsedScheme = URI(url).scheme().toLowerCase();
} catch (e) {
// URI may throw an exception for malfored urls,
// as to why withinString finds these in the first place is a mystery
return;
}
// Check if the scheme of the detected URL matches a common one above. // Check if the scheme of the detected URL matches a common one above.
// In a URL like `foo..http://example.com`, the scheme would be `foo..http`, // In a URL like `foo..http://example.com`, the scheme would be `foo..http`,