use of com.biglybt.core.torrent.TOTorrentAnnounceURLGroup in project BiglyBT by BiglySoftware.
the class TorrentAnnounceURLListImpl method setAlreadyExists.
protected boolean setAlreadyExists(URL[] urls) {
TOTorrentAnnounceURLGroup group = torrent.getTorrent().getAnnounceURLGroup();
TOTorrentAnnounceURLSet[] sets = group.getAnnounceURLSets();
for (int i = 0; i < sets.length; i++) {
URL[] u = sets[i].getAnnounceURLs();
if (u.length != urls.length) {
continue;
}
boolean all_found = true;
for (int j = 0; j < urls.length; j++) {
URL u1 = urls[j];
boolean this_found = false;
for (int k = 0; k < u.length; k++) {
URL u2 = u[k];
if (u1.toString().equals(u2.toString())) {
this_found = true;
break;
}
}
if (!this_found) {
all_found = false;
break;
}
}
if (all_found) {
return (true);
}
}
return (false);
}
use of com.biglybt.core.torrent.TOTorrentAnnounceURLGroup in project BiglyBT by BiglySoftware.
the class TorrentAnnounceURLListImpl method getSets.
@Override
public TorrentAnnounceURLListSet[] getSets() {
TOTorrentAnnounceURLGroup group = torrent.getTorrent().getAnnounceURLGroup();
TOTorrentAnnounceURLSet[] sets = group.getAnnounceURLSets();
TorrentAnnounceURLListSet[] res = new TorrentAnnounceURLListSet[sets.length];
for (int i = 0; i < res.length; i++) {
res[i] = new TorrentAnnounceURLListSetImpl(this, sets[i]);
}
return (res);
}
use of com.biglybt.core.torrent.TOTorrentAnnounceURLGroup in project BiglyBT by BiglySoftware.
the class Create method execute.
@Override
public void execute(String commandName, final ConsoleInput ci, List<String> args) {
if (args.size() < 3) {
printHelp(ci.out, args);
return;
}
File input_file = new File(args.get(0));
if (!input_file.exists()) {
ci.out.println("Input file '" + input_file.getAbsolutePath() + "' doesn't exist");
return;
}
File output_file = new File(args.get(1));
if (output_file.exists()) {
ci.out.println("Output file '" + input_file.getAbsolutePath() + "' already exists");
return;
}
List<URL> urls = new ArrayList<>();
for (int i = 2; i < args.size(); i++) {
try {
urls.add(new URL(args.get(i)));
} catch (Throwable e) {
ci.out.println("Invalid URL: " + args.get(i));
return;
}
}
try {
TOTorrentCreator creator = TOTorrentFactory.createFromFileOrDirWithComputedPieceLength(input_file, urls.get(0));
creator.addListener(new TOTorrentProgressListener() {
@Override
public void reportProgress(int percent_complete) {
ci.out.println("\t\t" + percent_complete + "%");
}
@Override
public void reportCurrentTask(String task_description) {
ci.out.println("\t" + task_description);
}
});
TOTorrent torrent = creator.create();
if (urls.size() > 1) {
TOTorrentAnnounceURLGroup group = torrent.getAnnounceURLGroup();
TOTorrentAnnounceURLSet[] sets = new TOTorrentAnnounceURLSet[urls.size()];
for (int i = 0; i < urls.size(); i++) {
sets[i] = group.createAnnounceURLSet(new URL[] { urls.get(i) });
ci.out.println("\tAdded URL '" + urls.get(i) + "'");
}
group.setAnnounceURLSets(sets);
}
torrent.serialiseToBEncodedFile(output_file);
ci.out.println("\tTorrent written to '" + output_file + "'");
} catch (Throwable e) {
ci.out.println("Failed to create torrent: " + Debug.getNestedExceptionMessage(e));
}
}
Aggregations