From ffe31e90b7c0b93fa6e10970ece7293382cd5ba7 Mon Sep 17 00:00:00 2001 From: Dominik Sitar Date: Tue, 13 Nov 2018 12:49:08 +0100 Subject: [PATCH 1/2] Fixed issue #968 --- .../com/rarchives/ripme/ripper/AbstractRipper.java | 4 ++++ src/main/java/com/rarchives/ripme/ui/MainWindow.java | 11 +++++++++++ .../java/com/rarchives/ripme/ui/RipStatusMessage.java | 3 ++- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/rarchives/ripme/ripper/AbstractRipper.java b/src/main/java/com/rarchives/ripme/ripper/AbstractRipper.java index 95643b4c..348f241a 100644 --- a/src/main/java/com/rarchives/ripme/ripper/AbstractRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/AbstractRipper.java @@ -563,6 +563,10 @@ public abstract class AbstractRipper LOGGER.error("Got exception while running ripper:", e); waitForThreads(); sendUpdate(STATUS.RIP_ERRORED, "HTTP status code " + e.getStatusCode() + " for URL " + e.getUrl()); + }catch(NullPointerException e){ + LOGGER.error("Got null pointer exception while running ripper:", e); + waitForThreads(); + sendUpdate(STATUS.NO_ALBUM_OR_USER, "Album or user doesn't exist!"); } catch (Exception e) { LOGGER.error("Got exception while running ripper:", e); waitForThreads(); diff --git a/src/main/java/com/rarchives/ripme/ui/MainWindow.java b/src/main/java/com/rarchives/ripme/ui/MainWindow.java index 7d56f764..af279b9d 100644 --- a/src/main/java/com/rarchives/ripme/ui/MainWindow.java +++ b/src/main/java/com/rarchives/ripme/ui/MainWindow.java @@ -1404,6 +1404,17 @@ public final class MainWindow implements Runnable, RipStatusHandler { case TOTAL_BYTES: // Update total bytes break; + case NO_ALBUM_OR_USER: + if (LOGGER.isEnabledFor(Level.ERROR)) { + appendLog((String) msg.getObject(), Color.RED); + } + stopButton.setEnabled(false); + statusProgress.setValue(0); + statusProgress.setVisible(false); + openButton.setVisible(false); + pack(); + statusWithColor("Error: " + msg.getObject(), Color.RED); + break; } } diff --git a/src/main/java/com/rarchives/ripme/ui/RipStatusMessage.java b/src/main/java/com/rarchives/ripme/ui/RipStatusMessage.java index 462e00ac..207968d9 100644 --- a/src/main/java/com/rarchives/ripme/ui/RipStatusMessage.java +++ b/src/main/java/com/rarchives/ripme/ui/RipStatusMessage.java @@ -15,7 +15,8 @@ public class RipStatusMessage { DOWNLOAD_WARN("Download problem"), TOTAL_BYTES("Total bytes"), COMPLETED_BYTES("Completed bytes"), - RIP_ERRORED("Rip Errored"); + RIP_ERRORED("Rip Errored"), + NO_ALBUM_OR_USER("No album or user"); String value; STATUS(String value) { From 27efe06a3299bde4346392edef184343aa76f8c6 Mon Sep 17 00:00:00 2001 From: Dominik Sitar Date: Tue, 27 Nov 2018 12:41:44 +0100 Subject: [PATCH 2/2] Added better solution to issue #968 --- src/main/java/com/rarchives/ripme/ripper/AbstractRipper.java | 4 ---- .../java/com/rarchives/ripme/ripper/rippers/TumblrRipper.java | 4 ++++ 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/rarchives/ripme/ripper/AbstractRipper.java b/src/main/java/com/rarchives/ripme/ripper/AbstractRipper.java index 348f241a..95643b4c 100644 --- a/src/main/java/com/rarchives/ripme/ripper/AbstractRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/AbstractRipper.java @@ -563,10 +563,6 @@ public abstract class AbstractRipper LOGGER.error("Got exception while running ripper:", e); waitForThreads(); sendUpdate(STATUS.RIP_ERRORED, "HTTP status code " + e.getStatusCode() + " for URL " + e.getUrl()); - }catch(NullPointerException e){ - LOGGER.error("Got null pointer exception while running ripper:", e); - waitForThreads(); - sendUpdate(STATUS.NO_ALBUM_OR_USER, "Album or user doesn't exist!"); } catch (Exception e) { LOGGER.error("Got exception while running ripper:", e); waitForThreads(); diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/TumblrRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/TumblrRipper.java index 93e7b318..4b73ba55 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/TumblrRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/TumblrRipper.java @@ -171,6 +171,10 @@ public class TumblrRipper extends AlbumRipper { HttpStatusException status = (HttpStatusException)cause; if (status.getStatusCode() == HttpURLConnection.HTTP_UNAUTHORIZED && !useDefaultApiKey) { retry = true; + } else if (status.getStatusCode() == 404) { + LOGGER.error("No user or album found!"); + sendUpdate(STATUS.NO_ALBUM_OR_USER, "Album or user doesn't exist!"); + break; } else if (status.getStatusCode() == 429) { LOGGER.error("Tumblr rate limit has been exceeded"); sendUpdate(STATUS.DOWNLOAD_ERRORED,"Tumblr rate limit has been exceeded");