Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,15 @@
import java.net.URISyntaxException;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.jsoup.Connection.Response;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;

Expand All @@ -28,12 +31,15 @@ public class XhamsterRipper extends AbstractHTMLRipper {
private static final Logger logger = LogManager.getLogger(XhamsterRipper.class);

private int index = 1;
private Document albumDoc = null;
private Map<String, String> cookies = new HashMap<>();

public XhamsterRipper(URL url) throws IOException {
super(url);
}

@Override public boolean hasASAPRipping() {
@Override
public boolean hasASAPRipping() {
return true;
}

Expand Down Expand Up @@ -111,6 +117,16 @@ public boolean pageContainsAlbums(URL url) {
return m.matches();
}

@Override
public Document getFirstPage() throws IOException {
if (albumDoc == null) {
Response resp = Http.url(url).response();
cookies.putAll(resp.cookies());
albumDoc = resp.parse();
}
return albumDoc;
}

@Override
public boolean canRip(URL url) {
Pattern p = Pattern.compile("^https?://([\\w\\w]*\\.)?xhamster([^<]*)\\.(com|desi)/photos/gallery/.*?(\\d+)$");
Expand Down Expand Up @@ -207,12 +223,12 @@ public List<String> getURLsFromPage(Document doc) {

@Override
public void downloadURL(URL url, int index) {
addURLToDownload(url, getPrefix(index));
addURLToDownload(url, getPrefix(index), "", this.url.toExternalForm(), cookies);
}

private void downloadFile(String url) {
try {
addURLToDownload(new URI(url).toURL(), getPrefix(index));
addURLToDownload(new URI(url).toURL(), getPrefix(index), "", this.url.toExternalForm(), cookies);
index = index + 1;
} catch (MalformedURLException | URISyntaxException e) {
logger.error("The url \"" + url + "\" is malformed");
Expand Down