diff --git a/src/main/java/com/rarchives/ripme/ripper/AbstractRipper.java b/src/main/java/com/rarchives/ripme/ripper/AbstractRipper.java index 4bf1a7e0..ed4cc085 100644 --- a/src/main/java/com/rarchives/ripme/ripper/AbstractRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/AbstractRipper.java @@ -159,9 +159,11 @@ public abstract class AbstractRipper protected abstract boolean addURLToDownload(URL url, File saveAs, String referrer, Map cookies); protected boolean addURLToDownload(URL url, String prefix, String subdirectory, String referrer, Map cookies) { - if (hasDownloadedURL(url.toExternalForm())) { - sendUpdate(STATUS.DOWNLOAD_WARN, "Already downloaded " + url.toExternalForm()); - return false; + if (Utils.getConfigBoolean("remember.url_history", true)) { + if (hasDownloadedURL(url.toExternalForm())) { + sendUpdate(STATUS.DOWNLOAD_WARN, "Already downloaded " + url.toExternalForm()); + return false; + } } try { stopCheck(); @@ -196,10 +198,12 @@ public abstract class AbstractRipper logger.info("[+] Creating directory: " + Utils.removeCWD(saveFileAs.getParent())); saveFileAs.getParentFile().mkdirs(); } - try { - writeDownloadedURL(url.toExternalForm() + "\n"); - } catch (IOException e) { + if (Utils.getConfigBoolean("remember.url_history", true)) { + try { + writeDownloadedURL(url.toExternalForm() + "\n"); + } catch (IOException e) { logger.debug("Unable to write URL history file"); + } } return addURLToDownload(url, saveFileAs, referrer, cookies); } diff --git a/src/main/java/com/rarchives/ripme/ui/MainWindow.java b/src/main/java/com/rarchives/ripme/ui/MainWindow.java index 38c73889..7550e256 100644 --- a/src/main/java/com/rarchives/ripme/ui/MainWindow.java +++ b/src/main/java/com/rarchives/ripme/ui/MainWindow.java @@ -118,6 +118,7 @@ public final class MainWindow implements Runnable, RipStatusHandler { private static JTextField configRetriesText; private static JCheckBox configAutoupdateCheckbox; private static JComboBox configLogLevelCombobox; + private static JCheckBox configURLHistoryCheckbox; private static JCheckBox configPlaySound; private static JCheckBox configSaveOrderCheckbox; private static JCheckBox configShowPopup; @@ -191,6 +192,7 @@ public final class MainWindow implements Runnable, RipStatusHandler { Utils.setConfigBoolean("clipboard.autorip", configClipboardAutorip.isSelected()); Utils.setConfigBoolean("descriptions.save", configSaveDescriptions.isSelected()); Utils.setConfigBoolean("prefer.mp4", configPreferMp4.isSelected()); + Utils.setConfigBoolean("remember.url_history", configURLHistoryCheckbox.isSelected()); saveWindowPosition(mainFrame); saveHistory(); Utils.saveConfig(); @@ -489,6 +491,9 @@ public final class MainWindow implements Runnable, RipStatusHandler { configWindowPosition = new JCheckBox("Restore window position", Utils.getConfigBoolean("window.position", true)); configWindowPosition.setHorizontalAlignment(JCheckBox.RIGHT); configWindowPosition.setHorizontalTextPosition(JCheckBox.LEFT); + configURLHistoryCheckbox = new JCheckBox("Remember URL history", Utils.getConfigBoolean("remember.url_history", true)); + configURLHistoryCheckbox.setHorizontalAlignment(JCheckBox.RIGHT); + configURLHistoryCheckbox.setHorizontalTextPosition(JCheckBox.LEFT); configSaveDirLabel = new JLabel(); try { String workingDir = (Utils.shortenPath(Utils.getWorkingDirectory())); @@ -520,9 +525,11 @@ public final class MainWindow implements Runnable, RipStatusHandler { gbc.gridy = 9; gbc.gridx = 0; configurationPanel.add(configSaveDescriptions, gbc); gbc.gridx = 1; configurationPanel.add(configPreferMp4, gbc); gbc.gridy = 10; gbc.gridx = 0; configurationPanel.add(configWindowPosition, gbc); + gbc.gridx = 1; configurationPanel.add(configURLHistoryCheckbox, gbc); gbc.gridy = 11; gbc.gridx = 0; configurationPanel.add(configSaveDirLabel, gbc); gbc.gridx = 1; configurationPanel.add(configSaveDirButton, gbc); + emptyPanel = new JPanel(); emptyPanel.setPreferredSize(new Dimension(0, 0)); emptyPanel.setSize(0, 0); @@ -744,6 +751,10 @@ public final class MainWindow implements Runnable, RipStatusHandler { Utils.setConfigBoolean("urls_only.save", configSaveURLsOnly.isSelected()); Utils.configureLogger(); }); + configURLHistoryCheckbox.addActionListener(arg0 -> { + Utils.setConfigBoolean("remember.url_history", configURLHistoryCheckbox.isSelected()); + Utils.configureLogger(); + }); configSaveAlbumTitles.addActionListener(arg0 -> { Utils.setConfigBoolean("album_titles.save", configSaveAlbumTitles.isSelected()); Utils.configureLogger();