Compare commits

..
3 Commits
Author SHA1 Message Date
death-claw bf2e8c4bb6 v1.4.7 2019-08-13 11:21:54 +01:00
death-claw 5d449fa4e5 Fixed a bug in image filename extensions 2019-08-13 11:07:11 +01:00
death-claw c8b76b2dfb v1.4.6
* Fixed a bug when creating image file names
* Remove unnecessary logs
* Fix data.json init
2019-08-06 16:44:38 +01:00
10 changed files with 56 additions and 13 deletions
+4
View File
@@ -1,5 +1,9 @@
# Changelog
## [1.4.7] - 2019-08-13
### Changed
- Fixed a bug in image filename extensions
## [1.4.6] - 2019-08-06
### Changed
- Fixed a bug when creating image file names
+1 -1
View File
@@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>tn.mnlr</groupId>
<artifactId>vripper</artifactId>
<version>1.4.6-SNAPSHOT</version>
<version>1.4.7</version>
<packaging>pom</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "vripper-electron",
"version": "1.4.6-SNAPSHOT",
"version": "1.4.7",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "vripper-electron",
"version": "1.4.6-SNAPSHOT",
"version": "1.4.7",
"description": "",
"main": "main.js",
"author": "",
+1 -1
View File
@@ -5,7 +5,7 @@
<parent>
<groupId>tn.mnlr</groupId>
<artifactId>vripper</artifactId>
<version>1.4.6-SNAPSHOT</version>
<version>1.4.7</version>
</parent>
<artifactId>vripper-electron</artifactId>
<name>vripper-electron</name>
+1 -1
View File
@@ -5,7 +5,7 @@
<parent>
<groupId>tn.mnlr</groupId>
<artifactId>vripper</artifactId>
<version>1.4.6-SNAPSHOT</version>
<version>1.4.7</version>
</parent>
<artifactId>vripper-server</artifactId>
<name>vripper-server</name>
@@ -18,10 +18,14 @@ import tn.mnlr.vripper.exception.HtmlProcessorException;
import tn.mnlr.vripper.q.ImageFileData;
import tn.mnlr.vripper.services.*;
import javax.imageio.ImageIO;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;
import java.util.Random;
@Service
@@ -72,10 +76,7 @@ abstract public class Host {
* END HOST SPECIFIC
*/
if (!imageFileData.getImageName().toLowerCase().endsWith(".jpg") && !imageFileData.getImageName().toLowerCase().endsWith(".jpeg")) {
imageFileData.setImageName(imageFileData.getImageName() + ".jpg");
}
imageFileData.setImageName(formatImageFileName(imageFileData.getImageName()));
File destinationFolder = new File(appSettingsService.getDownloadPath(), sanitize(image.getPostName() + "_" + image.getPostId()));
logger.info(String.format("Saving to %s", destinationFolder.getPath()));
if (!destinationFolder.exists()) {
@@ -93,9 +94,10 @@ abstract public class Host {
throw new DownloadException(String.format("Server returned code %d", response.getStatusLine().getStatusCode()));
}
File outputFile = new File(destinationFolder.getPath() + File.separator + imageFileData.getImageName() + ".tmp");
try (
InputStream downloadStream = response.getEntity().getContent();
FileOutputStream fos = new FileOutputStream(sanitize(destinationFolder.getPath() + File.separator + imageFileData.getImageName()))
FileOutputStream fos = new FileOutputStream(outputFile)
) {
image.setTotal(response.getEntity().getContentLength());
@@ -110,6 +112,7 @@ abstract public class Host {
downloadSpeedService.increase(read);
}
EntityUtils.consumeQuietly(response.getEntity());
checkImageTypeAndRename(outputFile, imageFileData.getImageName());
}
}
} catch (Exception e) {
@@ -120,6 +123,42 @@ abstract public class Host {
}
}
private void checkImageTypeAndRename(File outputFile, String imageName) throws HostException {
try {
ImageInputStream iis = ImageIO.createImageInputStream(outputFile);
Iterator<ImageReader> it = ImageIO.getImageReaders(iis);
if (!it.hasNext()) {
throw new HostException("Image file is not recognized!");
}
ImageReader reader = it.next();
String formatName = reader.getFormatName();
if (formatName.toUpperCase().equals("JPEG")) {
formatName = "JPG";
}
String outImageName = imageName + "." + formatName.toUpperCase();
outputFile.renameTo(new File(outputFile.getParent(), outImageName));
} catch (Exception e) {
throw new HostException("Failed to rename output file", e);
}
}
/**
* Will sanitize the image name and remove extension
*
* @param imageName
* @return
*/
protected String formatImageFileName(String imageName) {
int extensionIndex = imageName.lastIndexOf('.');
String fileName;
if (extensionIndex != -1) {
fileName = imageName.substring(0, extensionIndex);
} else {
fileName = imageName;
}
return sanitize(fileName);
}
/**
* Just for testing, you may ignore
* @throws Exception
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "vripper-ui",
"version": "1.4.6-SNAPSHOT",
"version": "1.4.7",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "vripper-ui",
"version": "1.4.6-SNAPSHOT",
"version": "1.4.7",
"scripts": {
"ng": "ng",
"start": "ng serve",
+1 -1
View File
@@ -5,7 +5,7 @@
<parent>
<groupId>tn.mnlr</groupId>
<artifactId>vripper</artifactId>
<version>1.4.6-SNAPSHOT</version>
<version>1.4.7</version>
</parent>
<artifactId>vripper-ui</artifactId>
<name>vripper-ui</name>