2014-02-27 04:54:44 +01:00
|
|
|
package com.rarchives.ripme.ripper;
|
|
|
|
|
|
|
|
import java.io.File;
|
|
|
|
import java.io.FileOutputStream;
|
|
|
|
import java.io.IOException;
|
|
|
|
import java.net.URL;
|
|
|
|
|
|
|
|
import org.apache.log4j.Logger;
|
|
|
|
import org.jsoup.Connection.Response;
|
|
|
|
import org.jsoup.Jsoup;
|
|
|
|
|
|
|
|
import com.rarchives.ripme.utils.Utils;
|
|
|
|
|
|
|
|
public class DownloadFileThread extends Thread {
|
|
|
|
|
|
|
|
private static final Logger logger = Logger.getLogger(DownloadFileThread.class);
|
|
|
|
|
|
|
|
private URL url;
|
|
|
|
private File saveAs;
|
|
|
|
|
|
|
|
public DownloadFileThread(URL url, File saveAs) {
|
|
|
|
super();
|
|
|
|
this.url = url;
|
|
|
|
this.saveAs = saveAs;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void run() {
|
|
|
|
// Check if file already exists
|
|
|
|
if (saveAs.exists()) {
|
|
|
|
if (Utils.getConfigBoolean("file.overwrite", false)) {
|
2014-02-28 04:49:28 +01:00
|
|
|
logger.info("[!] File already exists and 'file.overwrite' is true, deleting: " + saveAs);
|
2014-02-27 04:54:44 +01:00
|
|
|
saveAs.delete();
|
|
|
|
} else {
|
2014-02-28 04:49:28 +01:00
|
|
|
logger.info("[!] Not downloading " + url + " because file already exists: " + saveAs);
|
2014-02-27 04:54:44 +01:00
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2014-02-28 04:49:28 +01:00
|
|
|
logger.info("[ ] Downloading file from: " + url);
|
2014-02-27 04:54:44 +01:00
|
|
|
try {
|
|
|
|
Response response;
|
|
|
|
response = Jsoup.connect(url.toExternalForm())
|
|
|
|
.ignoreContentType(true)
|
|
|
|
.execute();
|
|
|
|
FileOutputStream out = (new FileOutputStream(saveAs));
|
|
|
|
out.write(response.bodyAsBytes());
|
|
|
|
out.close();
|
|
|
|
} catch (IOException e) {
|
2014-02-28 04:49:28 +01:00
|
|
|
logger.error("[!] Exception while downloading file: " + url, e);
|
2014-02-27 04:54:44 +01:00
|
|
|
return;
|
|
|
|
}
|
2014-02-28 04:49:28 +01:00
|
|
|
logger.info("[+] Download completed: " + url);
|
2014-02-27 04:54:44 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
}
|