private IEnumerable <DownloadClientItem> GetQueue() { SabnzbdQueue sabQueue; try { sabQueue = _proxy.GetQueue(0, 0, Settings); } catch (DownloadClientException ex) { _logger.Warn("Couldn't get download queue. {0}", ex.Message); return(Enumerable.Empty <DownloadClientItem>()); } var queueItems = new List <DownloadClientItem>(); foreach (var sabQueueItem in sabQueue.Items) { if (sabQueueItem.Status == SabnzbdDownloadStatus.Deleted) { continue; } var queueItem = new DownloadClientItem(); queueItem.DownloadClient = Definition.Name; queueItem.DownloadId = sabQueueItem.Id; queueItem.Category = sabQueueItem.Category; queueItem.Title = sabQueueItem.Title; queueItem.TotalSize = (long)(sabQueueItem.Size * 1024 * 1024); queueItem.RemainingSize = (long)(sabQueueItem.Sizeleft * 1024 * 1024); queueItem.RemainingTime = sabQueueItem.Timeleft; if (sabQueue.Paused || sabQueueItem.Status == SabnzbdDownloadStatus.Paused) { queueItem.Status = DownloadItemStatus.Paused; queueItem.RemainingTime = null; } else if (sabQueueItem.Status == SabnzbdDownloadStatus.Queued || sabQueueItem.Status == SabnzbdDownloadStatus.Grabbing || sabQueueItem.Status == SabnzbdDownloadStatus.Propagating) { queueItem.Status = DownloadItemStatus.Queued; } else { queueItem.Status = DownloadItemStatus.Downloading; } if (queueItem.Title.StartsWith("ENCRYPTED /")) { queueItem.Title = queueItem.Title.Substring(11); queueItem.IsEncrypted = true; } queueItems.Add(queueItem); } return(queueItems); }
private IEnumerable <DownloadClientItem> GetQueue() { var sabQueue = _proxy.GetQueue(0, 0, Settings); var queueItems = new List <DownloadClientItem>(); foreach (var sabQueueItem in sabQueue.Items) { if (sabQueueItem.Status == SabnzbdDownloadStatus.Deleted) { continue; } var queueItem = new DownloadClientItem(); queueItem.DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this); queueItem.DownloadId = sabQueueItem.Id; queueItem.Category = sabQueueItem.Category; queueItem.Title = sabQueueItem.Title; queueItem.TotalSize = (long)(sabQueueItem.Size * 1024 * 1024); queueItem.RemainingSize = (long)(sabQueueItem.Sizeleft * 1024 * 1024); queueItem.RemainingTime = sabQueueItem.Timeleft; queueItem.CanBeRemoved = true; queueItem.CanMoveFiles = true; if ((sabQueue.Paused && sabQueueItem.Priority != SabnzbdPriority.Force) || sabQueueItem.Status == SabnzbdDownloadStatus.Paused) { queueItem.Status = DownloadItemStatus.Paused; queueItem.RemainingTime = null; } else if (sabQueueItem.Status == SabnzbdDownloadStatus.Queued || sabQueueItem.Status == SabnzbdDownloadStatus.Grabbing || sabQueueItem.Status == SabnzbdDownloadStatus.Propagating) { queueItem.Status = DownloadItemStatus.Queued; } else { queueItem.Status = DownloadItemStatus.Downloading; } if (queueItem.Title.StartsWith("ENCRYPTED /")) { queueItem.Title = queueItem.Title.Substring(11); queueItem.IsEncrypted = true; } queueItems.Add(queueItem); } return(queueItems); }
protected IEnumerable <SabnzbdCategory> GetCategories(SabnzbdConfig config) { var completeDir = new OsPath(config.Misc.complete_dir); if (!completeDir.IsRooted) { if (HasVersion(2, 0)) { var status = _proxy.GetFullStatus(Settings); completeDir = new OsPath(status.CompleteDir); } else { var queue = _proxy.GetQueue(0, 1, Settings); var defaultRootFolder = new OsPath(queue.DefaultRootFolder); completeDir = defaultRootFolder + completeDir; } } foreach (var category in config.Categories) { var relativeDir = new OsPath(category.Dir.TrimEnd('*')); category.FullPath = completeDir + relativeDir; yield return(category); } }
public override IEnumerable <QueueItem> GetQueue() { return(_queueCache.Get("queue", () => { SabnzbdQueue sabQueue; try { sabQueue = _proxy.GetQueue(0, 0, Settings); } catch (DownloadClientException ex) { _logger.ErrorException(ex.Message, ex); return Enumerable.Empty <QueueItem>(); } var queueItems = new List <QueueItem>(); foreach (var sabQueueItem in sabQueue.Items) { var queueItem = new QueueItem(); queueItem.Id = sabQueueItem.Id; queueItem.Title = sabQueueItem.Title; queueItem.Size = sabQueueItem.Size; queueItem.Sizeleft = sabQueueItem.Sizeleft; queueItem.Timeleft = sabQueueItem.Timeleft; queueItem.Status = sabQueueItem.Status; var parsedEpisodeInfo = Parser.Parser.ParseTitle(queueItem.Title.Replace("ENCRYPTED / ", "")); if (parsedEpisodeInfo == null) { continue; } var remoteEpisode = _parsingService.Map(parsedEpisodeInfo, 0); if (remoteEpisode.Series == null) { continue; } queueItem.RemoteEpisode = remoteEpisode; queueItems.Add(queueItem); } return queueItems; }, TimeSpan.FromSeconds(10))); }