Bugfix for issue #1121

check with lowercase to also match JPEG, JPeg ...

changed image url in comment
This commit is contained in:
lookshe 2015-04-13 10:57:30 +02:00
parent 37d08276a8
commit 6da77bdf3b
1 changed files with 18 additions and 10 deletions

View File

@ -430,23 +430,31 @@ public class Message extends AbstractEntity {
} }
public boolean bodyContainsDownloadable() { public boolean bodyContainsDownloadable() {
/**
* there are a few cases where spaces result in an unwanted behavior, e.g.
* "http://example.com/image.jpg" text that will not be shown /abc.png"
* or more than one image link in one message.
*/
if (body.contains(" ")) {
return false;
}
try { try {
URL url = new URL(this.getBody()); URL url = new URL(body);
if (!url.getProtocol().equalsIgnoreCase("http") if (!url.getProtocol().equalsIgnoreCase("http")
&& !url.getProtocol().equalsIgnoreCase("https")) { && !url.getProtocol().equalsIgnoreCase("https")) {
return false; return false;
} }
if (url.getPath() == null) {
String sUrlPath = url.getPath();
if (sUrlPath == null || sUrlPath.isEmpty()) {
return false; return false;
} }
String[] pathParts = url.getPath().split("/");
String filename; int iSlashIndex = sUrlPath.lastIndexOf('/') + 1;
if (pathParts.length > 0) {
filename = pathParts[pathParts.length - 1].toLowerCase(); String sLastUrlPath = sUrlPath.substring(iSlashIndex).toLowerCase();
} else {
return false; String[] extensionParts = sLastUrlPath.split("\\.");
}
String[] extensionParts = filename.split("\\.");
if (extensionParts.length == 2 if (extensionParts.length == 2
&& Arrays.asList(Downloadable.VALID_IMAGE_EXTENSIONS).contains( && Arrays.asList(Downloadable.VALID_IMAGE_EXTENSIONS).contains(
extensionParts[extensionParts.length - 1])) { extensionParts[extensionParts.length - 1])) {