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

TorrentFromJsonObject() static private method

static private TorrentFromJsonObject ( JsonObject torrentObject ) : Torrent
torrentObject JsonObject
return Torrent
        internal static Torrent TorrentFromJsonObject(JsonObject torrentObject)
        {
            unchecked {
                Torrent t = new Torrent ();
                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
        public IEnumerable <Torrent> GetTorrents()
        {
            var result       = DoServiceCall("core.get_torrents_status", emptyFilterDict, emptyStringArray);
            var torrentsDict = (Dictionary <string, object>)result["result"];

            var torrents = new List <Torrent> (torrentsDict.Count);

            foreach (var hash in torrentsDict.Keys)
            {
                JsonObject data = (JsonObject)torrentsDict[hash];
                torrents.Add(Torrent.TorrentFromJsonObject(data));
            }

            return(torrents);
        }