Search in sources :

Example 16 with TOTorrentAnnounceURLSet

use of com.biglybt.core.torrent.TOTorrentAnnounceURLSet 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));
    }
}
Also used : TOTorrentProgressListener(com.biglybt.core.torrent.TOTorrentProgressListener) URL(java.net.URL) TOTorrentAnnounceURLGroup(com.biglybt.core.torrent.TOTorrentAnnounceURLGroup) TOTorrent(com.biglybt.core.torrent.TOTorrent) TOTorrentCreator(com.biglybt.core.torrent.TOTorrentCreator) File(java.io.File) TOTorrentAnnounceURLSet(com.biglybt.core.torrent.TOTorrentAnnounceURLSet)

Aggregations

TOTorrentAnnounceURLSet (com.biglybt.core.torrent.TOTorrentAnnounceURLSet)16 URL (java.net.URL)14 TOTorrent (com.biglybt.core.torrent.TOTorrent)7 TOTorrentAnnounceURLGroup (com.biglybt.core.torrent.TOTorrentAnnounceURLGroup)7 File (java.io.File)3 TOTorrentException (com.biglybt.core.torrent.TOTorrentException)2 TRTrackerBTAnnouncerImpl (com.biglybt.core.tracker.client.impl.bt.TRTrackerBTAnnouncerImpl)2 DiskManagerFileInfo (com.biglybt.core.disk.DiskManagerFileInfo)1 DiskManagerFileInfoSet (com.biglybt.core.disk.DiskManagerFileInfoSet)1 LocaleUtilDecoder (com.biglybt.core.internat.LocaleUtilDecoder)1 LogAlert (com.biglybt.core.logging.LogAlert)1 LogEvent (com.biglybt.core.logging.LogEvent)1 TOTorrentCreator (com.biglybt.core.torrent.TOTorrentCreator)1 TOTorrentFile (com.biglybt.core.torrent.TOTorrentFile)1 TOTorrentProgressListener (com.biglybt.core.torrent.TOTorrentProgressListener)1 TRTrackerAnnouncer (com.biglybt.core.tracker.client.TRTrackerAnnouncer)1 TRTrackerScraperResponse (com.biglybt.core.tracker.client.TRTrackerScraperResponse)1 TRTrackerDHTAnnouncerImpl (com.biglybt.core.tracker.client.impl.dht.TRTrackerDHTAnnouncerImpl)1 DownloadTypeComplete (com.biglybt.pif.download.DownloadTypeComplete)1 DownloadTypeIncomplete (com.biglybt.pif.download.DownloadTypeIncomplete)1