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はニュースグループ名か'*'、また
date と timeはnewgroups()のときと同じ意味です。
これは、 (response,articles)のペアを返します。
articlesは記事の id のリストです。
- list ()
-
"LIST"コマンドを送ります。
(response,list)のペアを返します。
ここで、listはタプルのリストです。
それぞれのタプルは(group, last, first, flag)
の形式で、groupはグループ名、last と firstは
最後と最初の記事の番号(文字列)、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"コマンドを送信します。
idはstat()の場合と同じ意味です。
返り値は、(response, list)のペアです。
ここで、listは記事のヘッダのリストです
(解釈されない行のリストで、改行はついていません)。
- body (id)
-
"BODY"コマンドを送信します。
idはstat()の場合と同じ意味です。
返り値は、(response, list)のペアです。
ここで、listは記事の本文のリストです
(解釈されない行のリストで、改行はついていません)。
- article (id)
-
"ARTICLE"コマンドを送信します。
idはstat()の場合と同じ意味です。
返り値は、(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"を送信します。
応答がエラーでなければ、fileはpost()の場合と全く同じように扱われます。
- 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