11.7.1 NNTP オブジェクト

NNTPインスタンスは以下のメソッドを持っています。 ほとんどのメソッドの返すタプルの最初のアイテム、responseは サーバの応答です:これは3桁の数字で始まる文字列です。 サーバの応答がエラーを示す場合、前述の例外のどれかが発生します。

getwelcome ()
接続開始時にサーバから送られる歓迎のメッセージを返します。 (このメッセージは免責事項や、ユーザへのヘルプであることがあります。)

set_debuglevel (level)
インスタンスのデバッグレベルを設定します。 これはデバッグ出力の量をコントロールします。 デフォルトの0ではデバッグ出力はありません。 1のとき、普通は要求と応答ごとに1行の、 適当な量のデバッグ出力がされます。 2以上では最もたくさんのデバッグ出力があります。 これはメッセージ本文を含んで送受信ごとに出力されます。

newgroups (date, time)
"NEWGROUPS"コマンドを送ります。 date"yymmdd"という書式の日付と、 "hhmmss"という書式の時刻です。 これは(response, groups)のペアを返します。 groupsは、与えられた日付と時刻以降に追加された ニュースグループ名のリストです。

newnews (group, date, time)
"NEWNEWS"コマンドを送ります。 ここで、groupはニュースグループ名か'*'、また datetimenewgroups()のときと同じ意味です。 これは、 (response,articles)のペアを返します。 articlesは記事の id のリストです。

list ()
"LIST"コマンドを送ります。 (response,list)のペアを返します。 ここで、listはタプルのリストです。 それぞれのタプルは(group, last, first, flag) の形式で、groupはグループ名、lastfirstは 最後と最初の記事の番号(文字列)、flag'y'なら投稿可能、 'n'なら不可能で'm'はモデレートです。 (last, firstの順序に注意)

group (name)
"GROUP"コマンドを送ります。 ここでnameはニュースグループ名です。 これは (response, count, first, last, name) を返します。 countは(予想される)ニュースグループの中の記事の数、 firstはニュースグループ中の最初の記事番号、 lastは最後の記事番号で、nameはニュースグループ名です。 記事番号は文字列で返されます。

help ()
"HELP"コマンドを送ります。 (response,list)のペア、 ヘルプ文字列のリストが返されます。

stat (id)
"STAT"コマンドを送ります。 idは("<"と">"で囲まれた)メッセージidか、 (文字列の)記事番号です。 (response, number, id)を返します。 numberは文字列の記事番号、 idは("<"と">"で囲まれた)メッセージidです。

next ()
"NEXT"コマンドを送信します。返り値はstat()と同じです。

last ()
"LAST"コマンドを送信します。返り値はstat()と同じです。

head (id)
"HEAD"コマンドを送信します。 idstat()の場合と同じ意味です。 返り値は、(response, list)のペアです。 ここで、listは記事のヘッダのリストです (解釈されない行のリストで、改行はついていません)。

body (id)
"BODY"コマンドを送信します。 idstat()の場合と同じ意味です。 返り値は、(response, list)のペアです。 ここで、listは記事の本文のリストです (解釈されない行のリストで、改行はついていません)。

article (id)
"ARTICLE"コマンドを送信します。 idstat()の場合と同じ意味です。 返り値は、(response, list)のペアです。 ここで、listは記事のヘッダと本文のリストです (解釈されない行のリストで、改行はついていません)。

slave ()
"SLAVE"コマンドを送り、サーバのresponseを返します。

xhdr (header, string)
"XHDR"コマンドを送ります。 このコマンドはRFCでは定義されていませんが、一般的な拡張です。 header'subject'のようなヘッダのキーワードです。 string"first-last"の形式で、 検索したい最初と最後の記事番号です。 返り値は(response, list)のペアで、 list(id, text)のリストです。 id は記事の id(文字列)、textは検索された記事のヘッダ文字列です。

post (file)
"POST"コマンドを使って記事を投稿します。 fileはオープンされたファイルオブジェクトで、 readline()を使ってEOFまで読み込まれます。 これは適切なヘッダを含んだきちんとしたニュース記事でなければなりません。 post()メソッドは"."で始まる行は自動的に削除します。

ihave (id, file)
"IHAVE"を送信します。 応答がエラーでなければ、filepost()の場合と全く同じように扱われます。

date ()
(response, date, time)のタプルを返します。 これはnewnews()newgroups()メソッドで使うのに適した形式で、 現在の日付と時刻を返します。 これは NNTPの標準ではない拡張で、 すべてのサーバでサポートされているわけではありません。

xgtitle (name)
"XGTITLE"コマンドを処理し、 (response,list)のペアを返します。 ここでlist(name, title)を含むタプルのリストです。 これは NNTPの標準ではない拡張で、 すべてのサーバでサポートされているわけではありません。

xover (start, end)
(resp, list)のペアを返します。 listは記事がそれぞれstartからendの記事番号の記事の タプルのリストです。 それぞれのタプルは(article number, subject, poster, date, id, references, size, lines) という形式です。 これは NNTPの標準ではない拡張で、 すべてのサーバでサポートされているわけではありません。

xpath (id)
(resp, path)のペアを返します。 pathはメッセージIDがidである記事のディレクトリパスです。 これは NNTPの標準ではない拡張で、 すべてのサーバでサポートされているわけではありません。

quit ()
"QUIT"コマンドを送り、接続を閉じます。 このメソッドが一度呼ばれると、 NNTPオブジェクトのほかのメソッドを使うことはできません。

guido@python.org