From 596be7b839a95ee6001a67fce31f3274138edef4 Mon Sep 17 00:00:00 2001 From: cyian-1756 Date: Thu, 26 Jul 2018 11:09:04 -0400 Subject: [PATCH] Added an Abstraction for rippers that only ever download a single file and want to use the bytes progress bar --- .../ripper/AbstractSingleFileRipper.java | 43 +++++++++++++++++++ .../ripme/ripper/rippers/GfycatRipper.java | 31 +------------ .../ripper/rippers/GfycatporntubeRipper.java | 32 +------------- .../ripme/ripper/rippers/XvideosRipper.java | 32 ++------------ 4 files changed, 50 insertions(+), 88 deletions(-) create mode 100644 src/main/java/com/rarchives/ripme/ripper/AbstractSingleFileRipper.java diff --git a/src/main/java/com/rarchives/ripme/ripper/AbstractSingleFileRipper.java b/src/main/java/com/rarchives/ripme/ripper/AbstractSingleFileRipper.java new file mode 100644 index 00000000..f1f8be41 --- /dev/null +++ b/src/main/java/com/rarchives/ripme/ripper/AbstractSingleFileRipper.java @@ -0,0 +1,43 @@ +package com.rarchives.ripme.ripper; + +import com.rarchives.ripme.utils.Utils; + +import java.io.IOException; +import java.net.URL; + + +/** + * This is just an extension of AbstractHTMLRipper that auto overrides a few things + * to help cut down on copy pasted code + */ +public abstract class AbstractSingleFileRipper extends AbstractHTMLRipper { + private int bytesTotal = 1; + private int bytesCompleted = 1; + + protected AbstractSingleFileRipper(URL url) throws IOException { + super(url); + } + + @Override + public String getStatusText() { + return Utils.getByteStatusText(getCompletionPercentage(), bytesCompleted, bytesTotal); + } + + @Override + public int getCompletionPercentage() { + return (int) (100 * (bytesCompleted / (float) bytesTotal)); + } + + @Override + public void setBytesTotal(int bytes) { + this.bytesTotal = bytes; + } + + @Override + public void setBytesCompleted(int bytes) { + this.bytesCompleted = bytes; + } + + @Override + public boolean useByteProgessBar() {return true;} +} diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/GfycatRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/GfycatRipper.java index a09d68ab..44ff857d 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/GfycatRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/GfycatRipper.java @@ -9,18 +9,14 @@ import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; -import com.rarchives.ripme.ripper.AbstractHTMLRipper; -import com.rarchives.ripme.utils.Utils; +import com.rarchives.ripme.ripper.AbstractSingleFileRipper; import org.jsoup.nodes.Document; import org.jsoup.select.Elements; import com.rarchives.ripme.utils.Http; -public class GfycatRipper extends AbstractHTMLRipper { - - private int bytesTotal = 1; - private int bytesCompleted = 1; +public class GfycatRipper extends AbstractSingleFileRipper { private static final String HOST = "gfycat.com"; @@ -109,27 +105,4 @@ public class GfycatRipper extends AbstractHTMLRipper { } return vidUrl; } - - @Override - public String getStatusText() { - return Utils.getByteStatusText(getCompletionPercentage(), bytesCompleted, bytesTotal); - } - - @Override - public int getCompletionPercentage() { - return (int) (100 * (bytesCompleted / (float) bytesTotal)); - } - - @Override - public void setBytesTotal(int bytes) { - this.bytesTotal = bytes; - } - - @Override - public void setBytesCompleted(int bytes) { - this.bytesCompleted = bytes; - } - - @Override - public boolean useByteProgessBar() {return true;} } \ No newline at end of file diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/GfycatporntubeRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/GfycatporntubeRipper.java index 55150d9e..fd8c292a 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/GfycatporntubeRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/GfycatporntubeRipper.java @@ -8,17 +8,12 @@ import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; -import com.rarchives.ripme.utils.Utils; +import com.rarchives.ripme.ripper.AbstractSingleFileRipper; import org.jsoup.nodes.Document; -import org.jsoup.nodes.Element; -import com.rarchives.ripme.ripper.AbstractHTMLRipper; import com.rarchives.ripme.utils.Http; -public class GfycatporntubeRipper extends AbstractHTMLRipper { - - private int bytesTotal = 1; - private int bytesCompleted = 1; +public class GfycatporntubeRipper extends AbstractSingleFileRipper { public GfycatporntubeRipper(URL url) throws IOException { super(url); @@ -62,27 +57,4 @@ public class GfycatporntubeRipper extends AbstractHTMLRipper { public void downloadURL(URL url, int index) { addURLToDownload(url, getPrefix(index)); } - - @Override - public String getStatusText() { - return Utils.getByteStatusText(getCompletionPercentage(), bytesCompleted, bytesTotal); - } - - @Override - public int getCompletionPercentage() { - return (int) (100 * (bytesCompleted / (float) bytesTotal)); - } - - @Override - public void setBytesTotal(int bytes) { - this.bytesTotal = bytes; - } - - @Override - public void setBytesCompleted(int bytes) { - this.bytesCompleted = bytes; - } - - @Override - public boolean useByteProgessBar() {return true;} } diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/XvideosRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/XvideosRipper.java index a94e7a21..ff38b347 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/XvideosRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/XvideosRipper.java @@ -8,21 +8,18 @@ import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; -import com.rarchives.ripme.ripper.AbstractHTMLRipper; -import com.rarchives.ripme.utils.Utils; + +import com.rarchives.ripme.ripper.AbstractSingleFileRipper; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; import com.rarchives.ripme.utils.Http; -public class XvideosRipper extends AbstractHTMLRipper { +public class XvideosRipper extends AbstractSingleFileRipper { private static final String HOST = "xvideos"; - private int bytesTotal = 1; - private int bytesCompleted = 1; - public XvideosRipper(URL url) throws IOException { super(url); } @@ -86,27 +83,4 @@ public class XvideosRipper extends AbstractHTMLRipper { public void downloadURL(URL url, int index) { addURLToDownload(url, getPrefix(index)); } - - @Override - public String getStatusText() { - return Utils.getByteStatusText(getCompletionPercentage(), bytesCompleted, bytesTotal); - } - - @Override - public int getCompletionPercentage() { - return (int) (100 * (bytesCompleted / (float) bytesTotal)); - } - - @Override - public void setBytesTotal(int bytes) { - this.bytesTotal = bytes; - } - - @Override - public void setBytesCompleted(int bytes) { - this.bytesCompleted = bytes; - } - - @Override - public boolean useByteProgessBar() {return true;} } \ No newline at end of file