CodeRinseRepeat.Deluge.Torrent.UpdateFrom C# (CSharp) Method

UpdateFrom() private method

private UpdateFrom ( JsonObject torrentObject ) : Torrent
torrentObject JsonObject
return Torrent
        internal Torrent UpdateFrom(JsonObject torrentObject)
        {
            unchecked {
                Torrent t = this;
                t.Comment = (string) torrentObject[Torrent.Fields.Comment];
                t.ActiveTime = TimeSpan.FromSeconds ((long) torrentObject[Torrent.Fields.ActiveTime]);
                t.Seeding = (bool) torrentObject[Torrent.Fields.Seeding];
                t.UploadSpeed = (double) torrentObject[Torrent.Fields.UploadSpeed];
                t.Private = (bool) torrentObject[Torrent.Fields.Private];
                t.TotalPayloadUpload = (long) torrentObject[Torrent.Fields.TotalPayloadUpload];
                t.Paused = (bool) torrentObject[Torrent.Fields.Paused];
                t.SeedRank = Convert.ToInt32 (torrentObject[Torrent.Fields.SeedRank]);
                t.SeedingTime = TimeSpan.FromSeconds ((long) torrentObject[Torrent.Fields.SeedingTime]);
                t.MaxUploadSlots = Convert.ToInt32 (torrentObject[Torrent.Fields.MaxUploadSlots]);
                t.PrioritizeFirstLast = (bool) torrentObject[Torrent.Fields.PrioritizeFirstLast];
                t.DistributedCopies = Convert.ToDouble (torrentObject[Torrent.Fields.DistributedCopies]);
                t.DownloadSpeed = Convert.ToDouble (torrentObject[Torrent.Fields.DownloadSpeed]);
                t.Message = (string) torrentObject[Torrent.Fields.Message];
                t.ConnectedPeers = Convert.ToInt32 (torrentObject[Torrent.Fields.ConnectedPeers]);
                t.MaxDownloadSpeed = Convert.ToDouble (torrentObject[Torrent.Fields.MaxDownloadSpeed]);
                t.MaxConnections = Convert.ToInt32 (torrentObject[Torrent.Fields.MaxConnections]);
                t.Compact = (bool) torrentObject[Torrent.Fields.Compact];
                t.Ratio = Convert.ToDouble (torrentObject[Torrent.Fields.Ratio]);
                t.TotalPeers = Convert.ToInt32 (torrentObject[Torrent.Fields.TotalPeers]);
                t.TotalSize = (long) torrentObject[Torrent.Fields.TotalSize];
                t.TotalWanted = (long) torrentObject[Torrent.Fields.TotalWanted];
                t.State = (State) Enum.Parse (typeof (State), (string) torrentObject[Torrent.Fields.State]);
                t.Files = GetFiles (torrentObject);
                t.MaxUploadSpeed = Convert.ToDouble (torrentObject[Torrent.Fields.MaxUploadSpeed]);
                t.RemoveAtRatio = (bool) torrentObject[Torrent.Fields.RemoveAtRatio];
                t.Trackers = GetTrackers (torrentObject);
                t.Tracker = t.Trackers.Where (tracker => tracker.Url.Equals ((string) torrentObject[Torrent.Fields.Tracker])).FirstOrDefault ();
                t.TrackerStatus = (string) torrentObject[Torrent.Fields.TrackerStatus];
                t.SavePath = (string) torrentObject[Torrent.Fields.SavePath];
                t.Progress = Convert.ToDouble (torrentObject[Torrent.Fields.Progress]);
                t.TimeAdded = unixTime.AddSeconds (Convert.ToDouble (torrentObject[Torrent.Fields.TimeAdded]));
                t.TrackerHost = (string) torrentObject[Torrent.Fields.TrackerHost];
                t.TotalUploaded = (long) torrentObject[Torrent.Fields.Uploaded];
                t.TotalSeeds = Convert.ToInt32 (torrentObject[Torrent.Fields.TotalSeeds]);
                t.MoveOnCompleted = (bool) torrentObject[Torrent.Fields.MoveOnCompleted];
                t.NextAnnounce = TimeSpan.FromSeconds ((long) torrentObject[Torrent.Fields.NextAnnounce]);
                t.StopAtRatio = (bool) torrentObject[Torrent.Fields.StopAtRatio];
                t.PieceSize = (long) torrentObject[Torrent.Fields.PieceSize];
                t.AllTimeDownload = (long) torrentObject[Torrent.Fields.AllTimeDownloaded];
                t.MoveOnCompletedPath = (string) torrentObject[Torrent.Fields.MoveOnCompletedPath];
                t.ConnectedSeeds = Convert.ToInt32 (torrentObject[Torrent.Fields.ConnectedSeeds]);
                t.Peers = GetPeers (torrentObject);
                t.Name = (string) torrentObject[Torrent.Fields.Name];
                t.TotalPayloadDownload = (long) torrentObject[Torrent.Fields.TotalPayloadDownload];
                t.IsAutoManaged = (bool) torrentObject[Torrent.Fields.IsAutoManaged];
                t.Queue = Convert.ToInt32 (torrentObject[Torrent.Fields.Queue]);
                t.ETA = DateTime.Now.AddSeconds ((long) torrentObject[Torrent.Fields.ETA]);
                t.StopRatio = Convert.ToDouble (torrentObject[Torrent.Fields.StopAtRatio]);
                t.Finished = (bool) torrentObject[Torrent.Fields.IsFinished];
                return t;
            }
        }

Usage Example

Ejemplo n.º 1
0
        /*
         * Interesting methods: { "core.upload_plugin", "core.glob",
         * "core.remove_torrent", "core.resume_all_torrents", "core.queue_top", "core.set_torrent_options",
         * "core.set_torrent_prioritize_first_last", "core.get_session_state", "core.set_torrent_move_completed",
         * "core.set_torrent_file_priorities", "core.get_config", "core.disable_plugin",
         * "core.test_listen_port", "core.connect_peer", "core.enable_plugin", "core.get_filter_tree",
         * "core.set_torrent_remove_at_ratio", "core.get_config_values", "core.pause_torrent",
         * "core.move_storage", "core.force_reannounce", "core.add_torrent_file", "core.get_listen_port",
         * "core.set_torrent_move_completed_path", "core.set_torrent_stop_at_ratio", "core.rename_folder",
         * "core.add_torrent_url", "core.get_enabled_plugins", "core.get_libtorrent_version", "core.get_path_size",
         * "core.set_torrent_max_connections", "core.get_config_value", "core.get_session_status", "core.create_torrent",
         * "core.add_torrent_magnet", "core.set_torrent_stop_ratio", "core.set_torrent_auto_managed",
         * "core.pause_all_torrents", "core.rename_files", "core.get_free_space",
         * "core.queue_bottom", "core.set_torrent_max_upload_speed", "core.resume_torrent",
         * "core.set_torrent_max_upload_slots", "core.set_config", "core.get_cache_status", "core.queue_down",
         * "core.get_num_connections", "core.set_torrent_max_download_speed", "core.queue_up", "core.set_torrent_trackers"
         * }
         *
         * Implemented methods: {
         *  auth.login, system.listMethods, core.get_torrents_status, core.get_available_plugins,
         *  core.rescan_plugins, core.get_torrent_status
         * }
         */

        public Torrent GetTorrentStatus(Torrent t, string[] fields)
        {
            var result        = DoServiceCall("core.get_torrent_status", t.Hash, fields);
            var torrentObject = (JsonObject)result["result"];

            if (!t.Hash.Equals((string)torrentObject["hash"]))
            {
                throw new ApplicationException(String.Format("Hashes don't match, expected {0}, got {1}!", t.Hash, torrentObject["hash"]));
            }

            return(t.UpdateFrom(torrentObject));
        }
All Usage Examples Of CodeRinseRepeat.Deluge.Torrent::UpdateFrom