Tumblr ripper now tells the user if it hits the rate limit

This commit is contained in:
cyian-1756 2017-12-17 00:51:42 -05:00
parent 8b96bc01e8
commit 44ab7fd29a

View File

@ -95,6 +95,7 @@ public class TumblrRipper extends AlbumRipper {
@Override
public void rip() throws IOException {
String[] mediaTypes;
boolean exceededRateLimit = false;
if (albumType == ALBUM_TYPE.POST) {
mediaTypes = new String[] { "post" };
} else {
@ -105,12 +106,21 @@ public class TumblrRipper extends AlbumRipper {
if (isStopped()) {
break;
}
if (exceededRateLimit) {
break;
}
offset = 0;
while (true) {
if (isStopped()) {
break;
}
if (exceededRateLimit) {
break;
}
String apiURL = getTumblrApiURL(mediaType, offset);
logger.info("Retrieving " + apiURL);
sendUpdate(STATUS.LOADING_RESOURCE, apiURL);
@ -126,6 +136,11 @@ public class TumblrRipper extends AlbumRipper {
HttpStatusException status = (HttpStatusException)cause;
if (status.getStatusCode() == HttpURLConnection.HTTP_UNAUTHORIZED && !useDefaultApiKey) {
retry = true;
} else if (status.getStatusCode() == 429) {
logger.error("Tumblr rate limit has been exceeded");
sendUpdate(STATUS.DOWNLOAD_ERRORED,"Tumblr rate limit has been exceeded");
exceededRateLimit = true;
break;
}
}
}