11.11 nntplib -- NNTP プロトコルクライアント

このモジュールでは、 クラス NNTP を定義しています。このクラス は NNTP プロトコルのクライアント側を実装しています。このモジュールを 使えば、ニュースリーダや記事投稿プログラム、または自動的にニュース記事を 処理するプログラムを実装することができます。NNTP (Network News Transfer Protocol、ネットニュース転送プロトコル) の詳細については、 インターネット RFC 977 を参照してください。

以下にこのモジュールの使い方の小さな例を二つ示します。 ニュースグループに関する統計情報を列挙し、最新 10 件の記事を出力 するには以下のようにします:

>>> s = NNTP('news.cwi.nl')
>>> resp, count, first, last, name = s.group('comp.lang.python')
>>> print 'Group', name, 'has', count, 'articles, range', first, 'to', last
Group comp.lang.python has 59 articles, range 3742 to 3803
>>> resp, subs = s.xhdr('subject', first + '-' + last)
>>> for id, sub in subs[-10:]: print id, sub
... 
3792 Re: Removing elements from a list while iterating...
3793 Re: Who likes Info files?
3794 Emacs and doc strings
3795 a few questions about the Mac implementation
3796 Re: executable python scripts
3797 Re: executable python scripts
3798 Re: a few questions about the Mac implementation 
3799 Re: PROPOSAL: A Generic Python Object Interface for Python C Modules
3802 Re: executable python scripts 
3803 Re: \POSIX{} wait and SIGCHLD
>>> s.quit()
'205 news.cwi.nl closing connection.  Goodbye.'

ファイルから記事を投稿するには、以下のようにします (この例では記事番号は有効な番号を指定していると仮定しています):

>>> s = NNTP('news.cwi.nl')
>>> f = open('/tmp/article')
>>> s.post(f)
'240 Article posted successfully.'
>>> s.quit()
'205 news.cwi.nl closing connection.  Goodbye.'

このモジュール自体では以下の内容を定義しています:

class NNTP( host[, port [, user[, password [, readermode]]]])
ホスト host 上で動作し、ポート番号 port で要求待ちを している NNTP サーバとの接続を表現する新たな NNTP クラスの インスタンスを返します。標準のport は 119 です。オプションの user および password が与えられているか、 または /.netrcに適切な認証情報が指定されている場合、 "AUTHINFO USER" および "AUTHINFO PASS" 命令を使って サーバに対して身元証明および認証を行います。オプションのフラグ readermode が真の場合、認証の実行に先立って "mode reader" 命令が送信されます。reader モードは、ローカルマシン上の NNTP サーバ に接続していて、"group" のような reader 特有の命令を呼び出し たい場合に便利なことがあります。予期せず NNTPPermanentError に遭遇したなら、readermode を設定する必要があるかもしれません。 readermode 標準で None です。

class NNTPError( )
標準の例外 Exception から導出されており、nntplib モジュールが送出する全ての例外の基底クラスです。

class NNTPReplyError( )
期待はずれの応答がサーバから返された場合に送出される例外です。 以前のバージョンとの互換性のために、error_reply はこのクラスと等価になっています。

class NNTPTemporaryError( )
エラーコードの範囲が 400-499 のエラーを受信した場合に送出される例外です。 以前のバージョンとの互換性のために、error_temp はこのクラスと等価になっています。

class NNTPPermanentError( )
エラーコードの範囲が 500-599 のエラーを受信した場合に送出される例外です。 以前のバージョンとの互換性のために、error_perm はこのクラスと等価になっています。

class NNTPProtocolError( )
サーバから返される応答が 1-5 の範囲の数字で始まっていない場合に 送出される例外です。 以前のバージョンとの互換性のために、error_proto はこのクラスと等価になっています。

class NNTPDataError( )
応答データ中に何らかのエラーが存在する場合に送出される例外です。 以前のバージョンとの互換性のために、error_data はこのクラスと等価になっています。



ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。