package com.frostwire.jlibtorrent.demo; import com.frostwire.jlibtorrent.AlertListener; import com.frostwire.jlibtorrent.DHT; import com.frostwire.jlibtorrent.Session; import com.frostwire.jlibtorrent.alerts.Alert; import com.frostwire.jlibtorrent.swig.add_torrent_params; import com.frostwire.jlibtorrent.swig.error_code; import com.frostwire.jlibtorrent.swig.libtorrent; import com.frostwire.jlibtorrent.swig.torrent_handle; import java.io.File; /** * @author gubatron * @author aldenml */ public final class GetMagnet2 { public static void main(String[] args) throws Throwable { String uri = "magnet:?xt=urn:btih:86d0502ead28e495c9e67665340f72aa72fe304e&dn=Frostwire.5.3.6.+%5BWindows%5D&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&tr=udp%3A%2F%2Ftracker.istole.it%3A6969&tr=udp%3A%2F%2Fopen.demonii.com%3A1337"; File saveDir = new File("/Users/aldenml/Downloads/frostwire_installer.torrent"); Session s = new Session(); s.addListener(new AlertListener() { @Override public int[] types() { return null; } @Override public void alert(Alert<?> alert) { System.out.println(alert); } }); DHT dht = new DHT(s); System.out.println("Waiting for nodes in DHT"); dht.waitNodes(1); System.out.println("Nodes in DHT: " + dht.nodes()); add_torrent_params p = add_torrent_params.create_instance_no_storage(); error_code ec = new error_code(); libtorrent.parse_magnet_uri(uri, p, ec); p.setName("fetchMagnet - " + uri); long flags = p.getFlags(); flags &= ~add_torrent_params.flags_t.flag_auto_managed.swigValue(); p.setFlags(flags); torrent_handle th = s.getSwig().add_torrent(p); th.resume(); System.in.read(); } }