예제 #1
0
 public PeriodicTorrent AddTorrent(TorrentWrapper torrent)
 {
     var periodicTorrent = new PeriodicTorrent(torrent);
     Task.Factory.StartNew(() =>
         {
             Client.Register(torrent);
             if (SettingsManager.StartTorrentsImmediately)
                 torrent.Start();
         });
     Application.Current.Dispatcher.BeginInvoke(new Action(() => Torrents.Add(periodicTorrent)));
     return periodicTorrent;
 }
예제 #2
0
 public PeriodicTorrent AddTorrent(TorrentWrapper torrent)
 {
     var periodicTorrent = new PeriodicTorrent(torrent);
     Torrents.Add(periodicTorrent);
     torrent.Index = Torrents.Count;
     Task.Factory.StartNew(() =>
         {
             Client.Register(torrent);
             torrent.Start();
         });
     return periodicTorrent;
 }
예제 #3
0
 public PeriodicTorrent AddTorrent(TorrentWrapper torrent, bool startImmediately)
 {
     // Apply settings
     torrent.Settings.UseDht = SettingsManager.EnableDHT;
     torrent.Settings.MaxConnections = SettingsManager.MaxConnectionsPerTorrent;
     torrent.Settings.MaxDownloadSpeed = SettingsManager.MaxDownloadSpeed;
     torrent.Settings.MaxUploadSpeed = SettingsManager.MaxUploadSpeed;
     torrent.Settings.UploadSlots = SettingsManager.UploadSlotsPerTorrent;
     var periodicTorrent = new PeriodicTorrent(torrent);
     Task.Factory.StartNew(() =>
         {
             Client.Register(torrent);
             if (startImmediately)
                 torrent.Start();
         });
     Application.Current.Dispatcher.BeginInvoke(new Action(() => Torrents.Add(periodicTorrent)));
     return periodicTorrent;
 }
예제 #4
0
        public PeriodicTorrent AddTorrent(TorrentWrapper torrent, bool startImmediately)
        {
            // Apply settings
            torrent.Settings.UseDht           = SettingsManager.EnableDHT;
            torrent.Settings.MaxConnections   = SettingsManager.MaxConnectionsPerTorrent;
            torrent.Settings.MaxDownloadSpeed = SettingsManager.MaxDownloadSpeed;
            torrent.Settings.MaxUploadSpeed   = SettingsManager.MaxUploadSpeed;
            torrent.Settings.UploadSlots      = SettingsManager.UploadSlotsPerTorrent;
            var periodicTorrent = new PeriodicTorrent(torrent);

            Task.Factory.StartNew(() =>
            {
                Client.Register(torrent);
                if (startImmediately)
                {
                    torrent.Start();
                }
            });
            Application.Current.Dispatcher.BeginInvoke(new Action(() => Torrents.Add(periodicTorrent)));
            return(periodicTorrent);
        }
예제 #5
0
 public void MoveTorrent(TorrentWrapper torrent, string path)
 {
     Task.Factory.StartNew(() =>
         {
             path = Path.Combine(path, Path.GetFileName(torrent.Path));
             if (!Directory.Exists(path))
                 Directory.CreateDirectory(path);
             var oldPath = torrent.Path;
             torrent.Stop();
             while (torrent.State != TorrentState.Stopped) ;
             torrent.MoveFiles(path, true);
             torrent.Start();
             Directory.Delete(oldPath, true);
             var cache = Path.Combine(SettingsManager.TorrentCachePath, Path.GetFileName(oldPath));
             File.WriteAllText(Path.Combine(Path.GetDirectoryName(cache),
                 Path.GetFileName(cache)) + ".info", path);
         });
 }
예제 #6
0
 public PeriodicTorrent LoadFastResume(FastResume resume, TorrentWrapper torrent)
 {
     var periodicTorrent = new PeriodicTorrent(torrent);
     Torrents.Add(periodicTorrent);
     torrent.Index = Torrents.Count;
     Task.Factory.StartNew(() =>
         {
             torrent.LoadFastResume(resume);
             Client.Register(torrent);
             torrent.Start();
         });
     return periodicTorrent;
 }