Cleaning up before release.

This commit is contained in:
Travis Burtrum 2012-02-10 19:28:08 -05:00 committed by moparisthebest
parent c1a46b6400
commit 331e0dd844
5 changed files with 55 additions and 26 deletions

View File

@ -33,12 +33,13 @@ public abstract class CompleteRunnable implements Runnable {
protected int uid = -1;
protected String url = null;
protected String savePath = null;
protected boolean extract, uniqueFolder;
protected boolean extract, uniqueFolder, success;
protected ChecksumInfo ci = null;
protected Exception ex = null;
public void set(ResourceGrabber rg, int uid, String url, String savePath, boolean extract, ChecksumInfo ci, boolean uniqueFolder) {
public void set(ResourceGrabber rg, boolean success, int uid, String url, String savePath, boolean extract, ChecksumInfo ci, boolean uniqueFolder) {
this.rg = rg;
this.success = success;
this.uid = uid;
this.url = url;
this.savePath = savePath;

View File

@ -38,7 +38,9 @@ public class MakeTorrent {
private File torrentFile = null;
private File sharedFile = null;
private String[][] announceList = new String[][]{new String[]{"udp://tracker.moparisthebest.com:2710/announce"}, new String[]{"http://tracker.moparisthebest.com/announce"}, new String[]{"udp://exodus.desync.com:6969", "http://exodus.desync.com:6969/announce"}};
//private String[][] announceList = new String[][]{new String[]{"udp://tracker.moparisthebest.com:2710/announce"}, new String[]{"http://tracker.moparisthebest.com/announce"}, new String[]{"udp://exodus.desync.com:6969", "http://exodus.desync.com:6969/announce"}};
//private String[][] announceList = new String[][]{new String[]{"udp://tracker.moparisthebest.com:2710/announce"}};
private String[][] announceList = new String[][]{new String[]{"http://tracker.moparisthebest.com:2710/announce"}, new String[]{"http://tracker.moparisthebest.com/announce"}, new String[]{"udp://exodus.desync.com:6969", "http://exodus.desync.com:6969/announce"}};
private String[] urlList = null;
private String sha1InfoHash = null;
@ -152,8 +154,8 @@ public class MakeTorrent {
//System.out.println("info hash of torrent: " + new Base32().toSha1(base32InfoHash));
System.out.println("CRC of torrent: " + crc);
String magTrackers = "";
if (announceList != null)
for (String[] trackerList : announceList)
if (this.announceList != null)
for (String[] trackerList : this.announceList)
for (String tracker : trackerList)
magTrackers += "&tr=" + urlEncode(tracker);
String[][] magnetTypes = new String[][]{new String[]{"btih", base32InfoHash}, new String[]{"sha1", sha1InfoHash}};
@ -296,6 +298,8 @@ public class MakeTorrent {
}
public static void main(String[] args) throws Exception {
//new MakeTorrent("/home/mopar/IdeaProjects/MoparScape4/cachedump/minimal317.9.zip", "http://cache.hybridscape.com/minimal317.9.zip", "http://bob.com/tom");
//System.exit(0);
Debug.debug = true;
if (args.length < 1) {
System.out.println("Usage: MakeTorrent file [webseed...]");

View File

@ -396,31 +396,40 @@ public class ResourceGrabber {
}
public void download(final String url, final String savePath, final boolean extract, final ChecksumInfo ci, final boolean uniqueFolder, final Runnable run) {
public int download(final String url, final String savePath, final boolean extract, final ChecksumInfo ci, final boolean uniqueFolder, final Runnable run) {
final ResourceGrabber rg = this;
final CompleteRunnable crun;
if (run instanceof CompleteRunnable)
crun = (CompleteRunnable) run;
else
crun = null;
int tryUid = -1;
try {
tryUid = rg.download(url, savePath, extract, ci, uniqueFolder);
} catch (Exception e) {
if (crun != null)
crun.setEx(e);
}
final int uid = tryUid;
new Thread() {
public void run() {
int uid = -1;
boolean success = false;
try {
uid = rg.download(url, savePath, extract, ci, uniqueFolder);
rg.wait(uid, false);
success = rg.wait(uid, false);
} catch (Exception e) {
if (crun != null)
crun.setEx(e);
}
if (crun != null)
crun.set(rg, uid, url, savePath, extract, ci, uniqueFolder);
crun.set(rg, success, uid, url, savePath, extract, ci, uniqueFolder);
run.run();
rg.freeResources(uid);
}
}.start();
return uid;
}
public boolean downloadWait(String url, String savePath) throws Exception {
@ -508,12 +517,10 @@ public class ResourceGrabber {
private Downloader getSupportedDownloader(String url) throws MalformedURLException {
for (Downloader dl : this.downloaders)
if (dl.supportsURL(url))
if (dl.supportsURL(url)) {
//System.out.println("url: " + url + " returning: " + dl);
return dl;
// if it's a file, put a "file://" in front of it
// or allow files
if (new File(url).exists())
return this.getSupportedDownloader("file://"+url);
}
throw new MalformedURLException("Unsupported URL: " + url);
}
@ -611,7 +618,7 @@ public class ResourceGrabber {
synchronized (files) {
for (String file : files)
for (String suffix : suffixes)
if (((ignoreCase && suffix != null && file.toLowerCase().endsWith(suffix.toLowerCase())) || file.endsWith(suffix)) && !file.endsWith(fileListFile))
if (((ignoreCase && suffix != null && file.toLowerCase().endsWith(suffix.toLowerCase())) || file.endsWith(suffix)) && !file.endsWith(fileListFile))
return file;
// if the last value in suffixes is null, that is a special meaning to return the first file if no
// others can be found that matches the previous ones
@ -627,12 +634,12 @@ public class ResourceGrabber {
public void actionPerformed(ActionEvent e) {
synchronized (downloadItems) {
for (final DlListener dll : downloadItems) {
/*
/**/
System.out.println("-------------------------------------------------------------");
System.out.println("uid: " + dll.uid);
System.out.println("dll: " + dll);
System.out.println("-------------------------------------------------------------");
*/
DownloadListener.Status status = dll.pollStatus();
if (status == null)
status = dll.getStatus();
@ -768,6 +775,8 @@ public class ResourceGrabber {
@Override
public synchronized void finished(String savePath, String... filesDownloaded) {
if (savePath != null && !savePath.endsWith("/"))
savePath += "/";
/*
if (extract)
for (String file : filesDownloaded)
@ -776,11 +785,13 @@ public class ResourceGrabber {
if (files != null)
files.clear();
// if we are supposed to extract it, do so, add the names to files if they extract
for (String file : filesDownloaded)
for (String file : filesDownloaded) {
file = savePath + file;
if (!(extract && Downloader.supportsExtraction(file) &&
Downloader.extractFile(file, savePath, this, files)) &&
files != null)
files.add(file);
}
// write files to a file in the savePath, to be used on later runs to see what to CRC
if (files != null) {
@ -837,7 +848,7 @@ public class ResourceGrabber {
}
public boolean download(String url, String savePath, boolean extract, ChecksumInfo ci) throws Exception {
return rg.wait(rg.download(url, savePath, extract, ci));
return rg.wait(rg.download(url, savePath, extract, ci), true);
}
/**
@ -929,8 +940,8 @@ public class ResourceGrabber {
public String toString() {
return "DownloadItemPanel{" +
"infoLabel=" + infoLabel.getText() +
", titleLabel=" + titleLabel.getText() +
", origInfo='" + origInfo + '\'' +
", titleLabel=" + titleLabel.getText() +
", origInfo='" + origInfo + '\'' +
", progressBar=" + progressBar.getPercentComplete() +
'}';
}

View File

@ -20,6 +20,7 @@
package org.moparscape.res.impl;
import org.moparscape.Debug;
import org.moparscape.res.ChecksumInfo;
import org.moparscape.res.DownloadListener;
@ -168,6 +169,7 @@ public abstract class Downloader {
public static boolean extractFile(String fileName, String savePath, DownloadListener callback, Checksum cs, java.util.List<String> files) {
if(savePath != null && !savePath.endsWith("/"))
savePath += "/";
Debug.debug("extractFile: fileName: '%s', savePath: '%s'", fileName, savePath);
File file = new File(fileName);
try {
long length = file.length();

View File

@ -53,7 +53,16 @@ public class URLDownloader extends Downloader {
public void run() {
try {
String saveTo = saveTo(url, savePath);
URLConnection uc = new URL(url).openConnection();
URL toDownload = null;
try{
toDownload = new URL(url);
}catch(MalformedURLException e){
if(new File(url).exists())
toDownload = new URL("file://"+url);
else
throw e;
}
URLConnection uc = toDownload.openConnection();
if (uc instanceof HttpURLConnection) {
String userAgent = System.getProperty("http.agent");
if (userAgent == null)
@ -71,7 +80,7 @@ public class URLDownloader extends Downloader {
writeStream(in, new FileOutputStream(saveTo));
if (callback != null) {
callback.finished(savePath, saveTo);
callback.finished(savePath, new File(saveTo).getName());
callback.stopped();
}
} catch (IOException e) {
@ -103,7 +112,9 @@ public class URLDownloader extends Downloader {
new URL(url);
return true;
} catch (MalformedURLException e) {
return false;
// if it's a file, put a "file://" in front of it
// or allow files
return new File(url).exists();
}
}
@ -117,7 +128,7 @@ public class URLDownloader extends Downloader {
url = url.toLowerCase().replaceFirst(".*://", "").replaceAll("/+", ".").replaceAll("(^\\.|\\.$)", "");
return url+"/";
return url + "/";
}
@Override