11.9.1 Objets NNTP

Les instances de NNTP possèdent les méthodes suivantes. La reponse qui est retournée comme premier élément dans le tuple de retour pour presque toutes les méthodes est la réponse du serveur: une chaîne de caractères qui commence par un nombre à trois chiffres. Si la réponse du serveur indique une erreur, la méthode déclenche une des exceptions ci-dessus.

getwelcome()
Retourne le message de bienvenue envoyé par le serveur en réponse à la connexion initiale. (Ce message contient parfois des exemptions de responsabilité ou des informations d'aide pertinentes pour l'utilisateur.)

set_debuglevel(niveau)
Définit le niveau de débogage de l'instance. Ceci contrôle le volume d'informations de débogage affichées. La valeur par défaut, 0, ne produit aucune information de débogage. Une valeur de 1 produit un volume modéré d'informations de débogage, généralement une ligne unique par requête ou réponse. Une valeur de 2 ou plus produit le volume maximum d'informations de débogage, traçant chaque ligne envoyée ou reçue sur la connexion (y compris des textes de messages).

newgroups(date, heure)
Envoie une commande "NEWGROUPS". L'argument date doit être une chaîne de caractères de la forme 'aammjj' indiquant la date, et heure doit être une chaîne de caractères de la forme 'hhmmss' indiquant l'heure. Retourne une paire (reponse, groupes)groupes est une liste de noms de groupes qui sont arrivés depuis la date et l'heure données.

newnews(groupe, date, heure)
Envoie une commande "NEWNEWS". Ici, groupe est un nom de groupe ou '*', et date et heure ont la même signification que pour newgroups(). Retourne une paire (reponse, articles)articles est une liste d'identifiants d'articles.

list()
Envoie une commande "LIST". Retourne une paire (reponse, liste)liste est une liste de tuples. Chaque tuple a la forme (groupe, dernier, premier, indicateur), où groupe est un nom de groupe, dernier et premier sont le dernier et le premier numéro d'article (sous forme de chaîne de caractères), et indicateur est 'y' si le postage est autorisé, 'n' sinon, et 'm' si le groupe de nouvelles est modéré. (Notez l'ordre: dernier, premier.)

group(nom)
Envoie une commande "GROUP", où nom est le nom du groupe. Retourne un tuple (reponse, compteur, premier, dernier, nom)compteur est le nombre (estimaté) d'articles dans le groupe, premier est le premier numéro d'article dans le groupe, dernier est le dernier numéro d'article dans le groupe, et nom est le nom du groupe. Les nombres sont retournés sous forme de chaînes de caractères.

help()
Envoie une commande "HELP". Retourne une paire (reponse, liste)liste est une liste de chaînes d'aide.

stat(id)
Envoie une commande "STAT", où id est l'identifiant du message (inséré entre "<" et ">") ou un numéro d'article (sous forme de chaîne de caractères). Retourne une triplet (reponse, numero, id)numero est le numéro de l'article (sous forme de chaîne) et id est l'identifiant de l'article (inséré entre "<" et ">").

next()
Envoie une commande "NEXT". Même retour que stat().

last()
Envoie une commande "LAST". Même retour que stat().

head(id)
Envoie une commande "HEAD", où id a la même signification que pour stat(). Retourne un tuple (reponse, numero, id, liste) où les trois premiers arguments sont les mêmes que pour stat(), et où liste est une liste des en-têtes d'articles (une liste de lignes non interprétée, sans caractère de saut de ligne à la fin).

body(id)
Envoie une commande "BODY", où id a la même signification que pour methodstat(). Même retour que head().

article(id)
Envoie une commande "ARTICLE", où id a la même signification que pour stat(). Même retour que head().

slave()
Envoie une commande "SLAVE". Retourne la reponse du serveur.

xhdr(entete, chaine)
Envoie une commande "XHDR". Cette commande n'est pas définie dans le RFC mais est une extension courante. L'argument entete est un mot-clé d'en-tête, par exemple 'subject'. L'argument chaine doit avoir la forme 'dernier-premier'premier et dernier sont le premier et le dernier article à rechercher. Retourne une paire (reponse, liste), où liste est une liste de paires (id, texte), où id est un identifiant d'article (sous forme de chaîne) et texte est le texte de l'en-tête requis pour cet article.

post(fichier)
Poste un article en utilisant la commande "POST". L'argument fichier est un objet fichier ouvert qui est lu jusqu'à EOF en utilisant sa méthode readline(). Il doit s'agir d'un article de nouvelles bien formé, incluant les en-têtes requis. La méthode post() ignore automatiquement les lignes commençant par ".".

ihave(id, fichier)
Envoie une commande "IHAVE". Si la réponse n'est pas une erreur, traite fichier exactement comme pour la méthode post().

date()
Retourne un triplet (reponse, date, heure), contenant la date et heure courantes sous une forme adaptée aux méthodes newnews() et newgroups(). Il s'agit d'une extension optionnelle de NNTP, qui peut ne pas être prise en charge par tous les serveurs.

xgtitle(nom)
Exécute une commande "XGTITLE", en retournant une paire (reponse, liste), où liste est une liste de tuples contenant (nom, titre). Il s'agit d'une extension optionnelle de NNTP, qui peut ne pas être prise en charge par tous les serveurs.

xover(debut, fin)
Retourne une paire (resp, liste). liste est une liste de tuples, un pour chaque article dans l'intervalle délimité par les numéros d'articles debut et fin. Chaque tuple est de la forme (numro_article, sujet, expediteur, date, id, references, taille, lignes). Il s'agit d'une extension optionnelle de NNTP, qui peut ne pas être prise en charge par tous les serveurs.

xpath(id)
Retourne une paire (resp, chemin), où chemin est le chemin de répertoire vers l'article dont l'identifiant de messages vaut id. Il s'agit d'une extension optionnelle de NNTP, qui peut ne pas être prise en charge par tous les serveurs.

quit()
Envoie une commande "QUIT" et ferme la connexion. Une fois que cette méthode a été appelée, aucune autre méthode de l'objet NNTP ne doit être appelée.