v1.2.6: Fix 500px ripper to fetch higher-res, non-watermarked images.
Closes #260
This commit is contained in:
parent
61d86e5b7e
commit
d4d6e4f57b
2
pom.xml
2
pom.xml
@ -4,7 +4,7 @@
|
||||
<groupId>com.rarchives.ripme</groupId>
|
||||
<artifactId>ripme</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<version>1.2.5</version>
|
||||
<version>1.2.6</version>
|
||||
<name>ripme</name>
|
||||
<url>http://rip.rarchives.com</url>
|
||||
<properties>
|
||||
|
@ -176,7 +176,7 @@ public abstract class AbstractRipper
|
||||
* @param url
|
||||
* URL being retrieved
|
||||
*/
|
||||
public void retrievingSource(URL url) {
|
||||
public void retrievingSource(String url) {
|
||||
RipStatusMessage msg = new RipStatusMessage(STATUS.LOADING_RESOURCE, url);
|
||||
observer.update(this, msg);
|
||||
}
|
||||
|
@ -12,6 +12,8 @@ import java.util.regex.Pattern;
|
||||
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
import org.jsoup.nodes.Document;
|
||||
import org.jsoup.select.Elements;
|
||||
|
||||
import com.rarchives.ripme.ripper.AbstractJSONRipper;
|
||||
import com.rarchives.ripme.ui.RipStatusMessage.STATUS;
|
||||
@ -184,21 +186,44 @@ public class FivehundredpxRipper extends AbstractJSONRipper {
|
||||
JSONArray photos = json.getJSONArray("photos");
|
||||
for (int i = 0; i < photos.length(); i++) {
|
||||
JSONObject photo = photos.getJSONObject(i);
|
||||
String imageURL = photo.getString("image_url");
|
||||
imageURL = imageURL.replaceAll("/4\\.", "/5.");
|
||||
// See if there's larger images
|
||||
for (String imageSize : new String[] { "2048" } ) {
|
||||
String fsURL = imageURL.replaceAll("/5\\.", "/" + imageSize + ".");
|
||||
sleep(10);
|
||||
if (urlExists(fsURL)) {
|
||||
logger.info("Found larger image at " + fsURL);
|
||||
imageURL = fsURL;
|
||||
break;
|
||||
}
|
||||
String imageURL = null;
|
||||
String rawUrl = "https://500px.com" + photo.getString("url");
|
||||
Document doc;
|
||||
Elements metas = new Elements();
|
||||
try {
|
||||
logger.debug("Loading " + rawUrl);
|
||||
super.retrievingSource(rawUrl);
|
||||
doc = Http.url(rawUrl).get();
|
||||
metas = doc.select("meta[property=\"twitter:image:src\"]");
|
||||
}
|
||||
imageURLs.add(imageURL);
|
||||
if (isThisATest()) {
|
||||
break;
|
||||
catch (IOException e) {
|
||||
logger.error("Error fetching full-size image from " + rawUrl, e);
|
||||
}
|
||||
if (metas.size() > 0) {
|
||||
imageURL = metas.first().attr("content");
|
||||
}
|
||||
else {
|
||||
imageURL = photo.getString("image_url");
|
||||
imageURL = imageURL.replaceAll("/4\\.", "/5.");
|
||||
// See if there's larger images
|
||||
for (String imageSize : new String[] { "2048" } ) {
|
||||
String fsURL = imageURL.replaceAll("/5\\.", "/" + imageSize + ".");
|
||||
sleep(10);
|
||||
if (urlExists(fsURL)) {
|
||||
logger.info("Found larger image at " + fsURL);
|
||||
imageURL = fsURL;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (imageURL == null) {
|
||||
logger.error("Failed to find image for photo " + photo.toString());
|
||||
}
|
||||
else {
|
||||
imageURLs.add(imageURL);
|
||||
if (isThisATest()) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return imageURLs;
|
||||
|
@ -21,7 +21,7 @@ import com.rarchives.ripme.utils.Utils;
|
||||
public class UpdateUtils {
|
||||
|
||||
private static final Logger logger = Logger.getLogger(UpdateUtils.class);
|
||||
private static final String DEFAULT_VERSION = "1.2.5";
|
||||
private static final String DEFAULT_VERSION = "1.2.6";
|
||||
private static final String updateJsonURL = "http://rarchives.com/ripme.json";
|
||||
private static final String updateJarURL = "http://rarchives.com/ripme.jar";
|
||||
private static final String mainFileName = "ripme.jar";
|
||||
|
Loading…
Reference in New Issue
Block a user