Пример #1
0
        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();
        }
Пример #2
0
        private void setGroupUnit_Finished(AsciiProtocolUnit unit)
        {
            NntpSetGroupUnit setGroupUnit = (NntpSetGroupUnit)unit;
            string           response     = setGroupUnit.ResponseLine;

            if (response == null || !response.StartsWith("211"))
            {
                FireFinished();
            }
            else
            {
                GetArticleById();
            }
        }
Пример #3
0
 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();
     }
 }
Пример #4
0
 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);
     }
 }
Пример #5
0
 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);
     }
 }
Пример #6
0
        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();
            }
        }