private void downloadHeadersSetGroupUnit_Finished(AsciiProtocolUnit unit) { NntpSetGroupUnit setGroupUnit = (NntpSetGroupUnit)unit; string response = setGroupUnit.ResponseLine; if (response != null) { while (response.StartsWith("211")) { string[] parts = response.Split(' '); _firstArticleCopy = _firstArticle = Int32.Parse(parts[2]); _lastArticle = Int32.Parse(parts[3]); SetArticleNumbersRange(ref _firstArticle, ref _lastArticle); if (_lastArticle == 0 || _lastArticle < _firstArticle) { break; } _getHeadersUnit = new AsciiSendLineAndApplyMethodUnit( "xover " + _firstArticle + '-' + _lastArticle, ".\r\n", new LineDelegate(ProcessHeadersLine)); _getHeadersUnit.Finished += new AsciiProtocolUnitDelegate(getHeadersUnit_Finished); StartUnit(_getHeadersUnit, _connection); return; } } FireFinished(); }
private void setGroupUnit_Finished(AsciiProtocolUnit unit) { NntpSetGroupUnit setGroupUnit = (NntpSetGroupUnit)unit; string response = setGroupUnit.ResponseLine; if (response == null || !response.StartsWith("211")) { FireFinished(); } else { GetArticleById(); } }
protected override void Start(AsciiTcpConnection connection) { _connection = connection; if (_setGroup) { NntpSetGroupUnit setGroupUnit = new NntpSetGroupUnit(new NewsgroupResource(_group)); setGroupUnit.Finished += new AsciiProtocolUnitDelegate(setGroupUnit_Finished); StartUnit(setGroupUnit, connection); } else { GetArticleById(); } }
protected override void Start(AsciiTcpConnection connection) { Core.UIManager.GetStatusWriter(typeof(NntpDownloadHeadersUnitBase), StatusPane.Network).ShowStatus("Downloading headers from " + _group.DisplayName + "..."); _connection = connection; if (!_group.IsSubscribed) { FireFinished(); } else { NntpSetGroupUnit downloadHeadersSetGroupUnit = new NntpSetGroupUnit(_group); downloadHeadersSetGroupUnit.Finished += new AsciiProtocolUnitDelegate(downloadHeadersSetGroupUnit_Finished); StartUnit(downloadHeadersSetGroupUnit, connection); } }
private void StartGroup(IResource group) { _group = new NewsgroupResource(group); if (!_group.IsSubscribed) { StartNextGroup(); } else { Core.UIManager.GetStatusWriter(typeof(NntpDeliverEmptyArticlesFromGroupsUnit), StatusPane.Network).ShowStatus("Downloading articles from " + _group.DisplayName + "..."); NntpSetGroupUnit setGroupUnit = new NntpSetGroupUnit(_group); setGroupUnit.Finished += new AsciiProtocolUnitDelegate(setGroupUnit_Finished); StartUnit(setGroupUnit, _connection); } }
private void setGroupUnit_Finished(AsciiProtocolUnit unit) { NntpSetGroupUnit setGroupUnit = (NntpSetGroupUnit)unit; string response = setGroupUnit.ResponseLine; if (response == null || !response.StartsWith("211")) { StartNextGroup(); } else { _emptyArticles = _group.Resource.GetLinksTo(null, NntpPlugin._propTo); _emptyArticles = _emptyArticles.Intersect( Core.ResourceStore.FindResourcesWithProp(null, NntpPlugin._propHasNoBody), true); _emptyArticles.Sort("Date", false); _articleIndex = 0; StartNextArticle(); } }