mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 03:38:01 +00:00
Improve readability of card downloading output
This commit is contained in:
@@ -175,7 +175,7 @@ public abstract class GuiDownloadService implements Runnable {
|
|||||||
return tTime / Math.max(1, numNonzero);
|
return tTime / Math.max(1, numNonzero);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void update(final int count, final File dest) {
|
private void update(final int count) {
|
||||||
FThreads.invokeInEdtLater(new Runnable() {
|
FThreads.invokeInEdtLater(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
@@ -213,7 +213,6 @@ public abstract class GuiDownloadService implements Runnable {
|
|||||||
|
|
||||||
progressBar.setValue(count);
|
progressBar.setValue(count);
|
||||||
progressBar.setDescription(sb.toString());
|
progressBar.setDescription(sb.toString());
|
||||||
System.out.println(count + "/" + files.size() + " - " + dest);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -231,53 +230,62 @@ public abstract class GuiDownloadService implements Runnable {
|
|||||||
|
|
||||||
Proxy p = getProxy();
|
Proxy p = getProxy();
|
||||||
|
|
||||||
|
boolean cardSkipped;
|
||||||
int bufferLength;
|
int bufferLength;
|
||||||
int iCard = 0;
|
int count = 0;
|
||||||
|
int totalCount = files.size();
|
||||||
byte[] buffer = new byte[1024];
|
byte[] buffer = new byte[1024];
|
||||||
|
|
||||||
for (Entry<String, String> kv : files.entrySet()) {
|
for (Entry<String, String> kv : files.entrySet()) {
|
||||||
if (cancel) { break; }
|
if (cancel) { break; }
|
||||||
|
|
||||||
|
count++;
|
||||||
|
cardSkipped = true; //assume skipped unless saved successfully
|
||||||
String url = kv.getValue();
|
String url = kv.getValue();
|
||||||
final File fileDest = new File(kv.getKey());
|
final File fileDest = new File(kv.getKey());
|
||||||
final File base = fileDest.getParentFile();
|
|
||||||
|
System.out.println(count + "/" + totalCount + " - " + fileDest);
|
||||||
|
|
||||||
FileOutputStream fos = null;
|
FileOutputStream fos = null;
|
||||||
try {
|
try {
|
||||||
// test for folder existence
|
final File base = fileDest.getParentFile();
|
||||||
if (!base.exists() && !base.mkdir()) { // create folder if not found
|
if (FileUtil.ensureDirectoryExists(base)) { //ensure destination directory exists
|
||||||
System.out.println("Can't create folder: " + base.getAbsolutePath());
|
URL imageUrl = new URL(url);
|
||||||
|
HttpURLConnection conn = (HttpURLConnection) imageUrl.openConnection(p);
|
||||||
|
// don't allow redirections here -- they indicate 'file not found' on the server
|
||||||
|
conn.setInstanceFollowRedirects(false);
|
||||||
|
conn.connect();
|
||||||
|
switch (conn.getResponseCode()) {
|
||||||
|
case HttpURLConnection.HTTP_OK:
|
||||||
|
fos = new FileOutputStream(fileDest);
|
||||||
|
InputStream inputStream = conn.getInputStream();
|
||||||
|
while ((bufferLength = inputStream.read(buffer)) > 0) {
|
||||||
|
fos.write(buffer, 0, bufferLength);
|
||||||
|
}
|
||||||
|
cardSkipped = false;
|
||||||
|
break;
|
||||||
|
case HttpURLConnection.HTTP_NOT_FOUND:
|
||||||
|
conn.disconnect();
|
||||||
|
System.out.println(" File not found: " + url);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
conn.disconnect();
|
||||||
|
System.out.println(" Connection failed for url: " + url);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
URL imageUrl = new URL(url);
|
System.out.println(" Can't create folder: " + base.getAbsolutePath());
|
||||||
HttpURLConnection conn = (HttpURLConnection) imageUrl.openConnection(p);
|
|
||||||
// don't allow redirections here -- they indicate 'file not found' on the server
|
|
||||||
conn.setInstanceFollowRedirects(false);
|
|
||||||
conn.connect();
|
|
||||||
|
|
||||||
if (conn.getResponseCode() != HttpURLConnection.HTTP_OK) {
|
|
||||||
conn.disconnect();
|
|
||||||
System.out.println(url);
|
|
||||||
System.out.println("Skipped Download for: " + fileDest.getPath());
|
|
||||||
update(++iCard, fileDest);
|
|
||||||
skipped++;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
fos = new FileOutputStream(fileDest);
|
|
||||||
InputStream inputStream = conn.getInputStream();
|
|
||||||
while ((bufferLength = inputStream.read(buffer)) > 0) {
|
|
||||||
fos.write(buffer, 0, bufferLength);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (final ConnectException ce) {
|
catch (final ConnectException ce) {
|
||||||
System.out.println("Connection refused for url: " + url);
|
System.out.println(" Connection refused for url: " + url);
|
||||||
}
|
}
|
||||||
catch (final MalformedURLException mURLe) {
|
catch (final MalformedURLException mURLe) {
|
||||||
System.out.println("Error - possibly missing URL for: " + fileDest.getName());
|
System.out.println(" Error - possibly missing URL for: " + fileDest.getName());
|
||||||
}
|
}
|
||||||
catch (final FileNotFoundException fnfe) {
|
catch (final FileNotFoundException fnfe) {
|
||||||
String formatStr = "Error - the LQ picture %s could not be found on the server. [%s] - %s";
|
String formatStr = " Error - the LQ picture %s could not be found on the server. [%s] - %s";
|
||||||
System.out.println(String.format(formatStr, fileDest.getName(), url, fnfe.getMessage()));
|
System.out.println(String.format(formatStr, fileDest.getName(), url, fnfe.getMessage()));
|
||||||
}
|
}
|
||||||
catch (final Exception ex) {
|
catch (final Exception ex) {
|
||||||
@@ -289,12 +297,15 @@ public abstract class GuiDownloadService implements Runnable {
|
|||||||
fos.close();
|
fos.close();
|
||||||
}
|
}
|
||||||
catch (IOException e) {
|
catch (IOException e) {
|
||||||
System.out.println("error closing output stream");
|
System.out.println(" Error closing output stream");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
update(++iCard, fileDest);
|
update(count);
|
||||||
|
if (cardSkipped) {
|
||||||
|
skipped++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
GuiBase.getInterface().preventSystemSleep(false);
|
GuiBase.getInterface().preventSystemSleep(false);
|
||||||
|
|||||||
Reference in New Issue
Block a user