Added an Abstraction for rippers that only ever download a single file and want to use the bytes progress bar
This commit is contained in:
parent
24b1c7175e
commit
596be7b839
@ -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;}
|
||||||
|
}
|
@ -9,18 +9,14 @@ import java.util.List;
|
|||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
import com.rarchives.ripme.ripper.AbstractHTMLRipper;
|
import com.rarchives.ripme.ripper.AbstractSingleFileRipper;
|
||||||
import com.rarchives.ripme.utils.Utils;
|
|
||||||
import org.jsoup.nodes.Document;
|
import org.jsoup.nodes.Document;
|
||||||
import org.jsoup.select.Elements;
|
import org.jsoup.select.Elements;
|
||||||
|
|
||||||
import com.rarchives.ripme.utils.Http;
|
import com.rarchives.ripme.utils.Http;
|
||||||
|
|
||||||
|
|
||||||
public class GfycatRipper extends AbstractHTMLRipper {
|
public class GfycatRipper extends AbstractSingleFileRipper {
|
||||||
|
|
||||||
private int bytesTotal = 1;
|
|
||||||
private int bytesCompleted = 1;
|
|
||||||
|
|
||||||
private static final String HOST = "gfycat.com";
|
private static final String HOST = "gfycat.com";
|
||||||
|
|
||||||
@ -109,27 +105,4 @@ public class GfycatRipper extends AbstractHTMLRipper {
|
|||||||
}
|
}
|
||||||
return vidUrl;
|
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;}
|
|
||||||
}
|
}
|
@ -8,17 +8,12 @@ import java.util.List;
|
|||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
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.Document;
|
||||||
import org.jsoup.nodes.Element;
|
|
||||||
|
|
||||||
import com.rarchives.ripme.ripper.AbstractHTMLRipper;
|
|
||||||
import com.rarchives.ripme.utils.Http;
|
import com.rarchives.ripme.utils.Http;
|
||||||
|
|
||||||
public class GfycatporntubeRipper extends AbstractHTMLRipper {
|
public class GfycatporntubeRipper extends AbstractSingleFileRipper {
|
||||||
|
|
||||||
private int bytesTotal = 1;
|
|
||||||
private int bytesCompleted = 1;
|
|
||||||
|
|
||||||
public GfycatporntubeRipper(URL url) throws IOException {
|
public GfycatporntubeRipper(URL url) throws IOException {
|
||||||
super(url);
|
super(url);
|
||||||
@ -62,27 +57,4 @@ public class GfycatporntubeRipper extends AbstractHTMLRipper {
|
|||||||
public void downloadURL(URL url, int index) {
|
public void downloadURL(URL url, int index) {
|
||||||
addURLToDownload(url, getPrefix(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;}
|
|
||||||
}
|
}
|
||||||
|
@ -8,21 +8,18 @@ import java.util.List;
|
|||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
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.Document;
|
||||||
import org.jsoup.nodes.Element;
|
import org.jsoup.nodes.Element;
|
||||||
import org.jsoup.select.Elements;
|
import org.jsoup.select.Elements;
|
||||||
|
|
||||||
import com.rarchives.ripme.utils.Http;
|
import com.rarchives.ripme.utils.Http;
|
||||||
|
|
||||||
public class XvideosRipper extends AbstractHTMLRipper {
|
public class XvideosRipper extends AbstractSingleFileRipper {
|
||||||
|
|
||||||
private static final String HOST = "xvideos";
|
private static final String HOST = "xvideos";
|
||||||
|
|
||||||
private int bytesTotal = 1;
|
|
||||||
private int bytesCompleted = 1;
|
|
||||||
|
|
||||||
public XvideosRipper(URL url) throws IOException {
|
public XvideosRipper(URL url) throws IOException {
|
||||||
super(url);
|
super(url);
|
||||||
}
|
}
|
||||||
@ -86,27 +83,4 @@ public class XvideosRipper extends AbstractHTMLRipper {
|
|||||||
public void downloadURL(URL url, int index) {
|
public void downloadURL(URL url, int index) {
|
||||||
addURLToDownload(url, getPrefix(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;}
|
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user