Added ability to skip retries on 404 errors.

This commit is contained in:
Kevin Lacquement 2014-06-03 08:52:36 -07:00
parent 13d13b28b7
commit f05aac84c7
3 changed files with 15 additions and 1 deletions

View File

@ -57,6 +57,9 @@ public class App {
if (cl.hasOption('t')) { if (cl.hasOption('t')) {
Utils.setConfigInteger("threads.size", Integer.parseInt(cl.getOptionValue('t'))); Utils.setConfigInteger("threads.size", Integer.parseInt(cl.getOptionValue('t')));
} }
if (cl.hasOption('4')) {
Utils.setConfigBoolean("errors.skip404", true);
}
if (cl.hasOption('r')) { if (cl.hasOption('r')) {
// Re-rip all via command-line // Re-rip all via command-line
List<String> history = Utils.getConfigList("download.history"); List<String> history = Utils.getConfigList("download.history");
@ -111,6 +114,7 @@ public class App {
opts.addOption("t", "threads", true, "Number of download threads per rip"); opts.addOption("t", "threads", true, "Number of download threads per rip");
opts.addOption("w", "overwrite", false, "Overwrite existing files"); opts.addOption("w", "overwrite", false, "Overwrite existing files");
opts.addOption("r", "rerip", false, "Re-rip all ripped albums"); opts.addOption("r", "rerip", false, "Re-rip all ripped albums");
opts.addOption("4", "skip404", false, "Don't retry after a 404 (not found) error");
return opts; return opts;
} }

View File

@ -10,6 +10,7 @@ import java.util.Map;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.jsoup.Connection.Response; import org.jsoup.Connection.Response;
import org.jsoup.Jsoup; import org.jsoup.Jsoup;
import org.jsoup.HttpStatusException;
import com.rarchives.ripme.ui.RipStatusMessage.STATUS; import com.rarchives.ripme.ui.RipStatusMessage.STATUS;
import com.rarchives.ripme.utils.Utils; import com.rarchives.ripme.utils.Utils;
@ -105,6 +106,12 @@ public class DownloadFileThread extends Thread {
out.write(response.bodyAsBytes()); out.write(response.bodyAsBytes());
out.close(); out.close();
break; // Download successful: break out of infinite loop break; // Download successful: break out of infinite loop
} catch (HttpStatusException hse) {
logger.error("[!] HTTP status " + hse.getStatusCode() + " while downloading from " + url);
observer.downloadErrored(url, "HTTP status code " + hse.getStatusCode() + " while downloading " + url.toExternalForm());
if (hse.getStatusCode() == 404 && Utils.getConfigBoolean("errors.skip404", false)) {
return;
}
} catch (IOException e) { } catch (IOException e) {
logger.error("[!] Exception while downloading file: " + url + " - " + e.getMessage(), e); logger.error("[!] Exception while downloading file: " + url + " - " + e.getMessage(), e);
} }
@ -118,4 +125,4 @@ public class DownloadFileThread extends Thread {
logger.info("[+] Saved " + url + " as " + this.prettySaveAs); logger.info("[+] Saved " + url + " as " + this.prettySaveAs);
} }
} }

View File

@ -14,6 +14,9 @@ download.timeout = 60000
# Maximum size of downloaded files in bytes (required) # Maximum size of downloaded files in bytes (required)
download.max_size = 104857600 download.max_size = 104857600
# Don't retry on 404 errors
error.skip404 = true
# API creds # API creds
twitter.auth = VW9Ybjdjb1pkd2J0U3kwTUh2VXVnOm9GTzVQVzNqM29LQU1xVGhnS3pFZzhKbGVqbXU0c2lHQ3JrUFNNZm8= twitter.auth = VW9Ybjdjb1pkd2J0U3kwTUh2VXVnOm9GTzVQVzNqM29LQU1xVGhnS3pFZzhKbGVqbXU0c2lHQ3JrUFNNZm8=
tumblr.auth = v5kUqGQXUtmF7K0itri1DGtgTs0VQpbSEbh1jxYgj9d2Sq18F8 tumblr.auth = v5kUqGQXUtmF7K0itri1DGtgTs0VQpbSEbh1jxYgj9d2Sq18F8