From 1d60bf695667a297e495ec86804abbf9a0686fdc Mon Sep 17 00:00:00 2001 From: cyian-1756 Date: Sun, 22 Jul 2018 19:31:11 -0400 Subject: [PATCH] Added a fuzzyExist func to check if a file exist when we don't know it's extension (For use with rippers that use getFileExtFromMIME) --- .../ripme/ripper/DownloadFileThread.java | 2 +- .../java/com/rarchives/ripme/utils/Utils.java | 22 +++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/rarchives/ripme/ripper/DownloadFileThread.java b/src/main/java/com/rarchives/ripme/ripper/DownloadFileThread.java index c699522e..f0d78ddb 100644 --- a/src/main/java/com/rarchives/ripme/ripper/DownloadFileThread.java +++ b/src/main/java/com/rarchives/ripme/ripper/DownloadFileThread.java @@ -79,7 +79,7 @@ class DownloadFileThread extends Thread { observer.downloadErrored(url, "Download interrupted"); return; } - if (saveAs.exists() && !observer.tryResumeDownload()) { + if (saveAs.exists() && !observer.tryResumeDownload() || Utils.fuzzyExists(new File(saveAs.getParent()), saveAs.getName())) { if (Utils.getConfigBoolean("file.overwrite", false)) { logger.info("[!] Deleting existing file" + prettySaveAs); saveAs.delete(); diff --git a/src/main/java/com/rarchives/ripme/utils/Utils.java b/src/main/java/com/rarchives/ripme/utils/Utils.java index 77a062d0..31af93a0 100644 --- a/src/main/java/com/rarchives/ripme/utils/Utils.java +++ b/src/main/java/com/rarchives/ripme/utils/Utils.java @@ -741,4 +741,26 @@ public class Utils { return null; } + // Checks if a file exists ignoring it's extension. + // Code from: https://stackoverflow.com/a/17698068 + public static boolean fuzzyExists(File folder, String fileName) { + if (!folder.exists()) { + return false; + } + File[] listOfFiles = folder.listFiles(); + if (listOfFiles == null) { + return false; + } + + for (File file : listOfFiles) { + if (file.isFile()) { + String[] filename = file.getName().split("\\.(?=[^\\.]+$)"); //split filename from it's extension + if(filename[0].equalsIgnoreCase(fileName)) { + return true; + } + } + } + return false; + } + } \ No newline at end of file