Beispiel #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();
        }
Beispiel #2
0
 private void GetArticleByNumber(string articleNumber)
 {
     _articleAvailable = false;
     _getArticleUnit   = new AsciiSendLineAndApplyMethodUnit(
         "article " + articleNumber, ".\r\n", new LineDelegate(getArticleByNumberUnitProcessLine));
     _getArticleUnit.Finished += new AsciiProtocolUnitDelegate(getArticleUnit_Finished);
     StartUnit(_getArticleUnit, _connection);
 }
Beispiel #3
0
 private void GetArticleById()
 {
     _articleAvailable = false;
     _articleId        = ParseTools.UnescapeCaseSensitiveString(_article.GetPropText(NntpPlugin._propArticleId));
     _getArticleUnit   = new AsciiSendLineAndApplyMethodUnit(
         "article " + _articleId, ".\r\n", new LineDelegate(getArticleByIdUnitProcessLine));
     _getArticleUnit.Finished += new AsciiProtocolUnitDelegate(getArticleUnit_Finished);
     StartUnit(_getArticleUnit, _connection);
 }
Beispiel #4
0
 protected override void Start(AsciiTcpConnection connection)
 {
     _connection     = connection;
     _enumGroupsUnit = new AsciiSendLineAndApplyMethodUnit(
         _nntpCmd, ".\r\n", new LineDelegate(ProcessGroupLine));
     _enumGroupsUnit.Finished += new AsciiProtocolUnitDelegate(enumGroupsUnit_Finished);
     _startUpdateDate          = DateTime.Now;
     StartUnit(_enumGroupsUnit, connection);
 }