Accueil > > > CLASSE NTTP
CLASSE NTTP
Information sur la source
Description
Classe gérant la récupération de messages sur les newsgroup
Cette classe servira dans un projet plus important de client NNTP ou un grabeur de news binaire en Python
Source
- # -*- coding: utf-8 -*-
-
- #-#####################################################
- #- Classe permetant de gerer les connexions au serveurs nntp #
- #-
- #- Ce code n'est que la partie d'un projet plus vaste dans le but est de réaliser un client usenet
- #- en python ou en C++
- #- Ce code doit etre amélioré notament en geran au mieu les exceptions et en ajputant d'autres fonctionnalite
- #- temps passe a coder et valider = 2H
- #- Coded by azalsup@free.fr
- #- Code ouvert sans conditions
- #-
- #-#####################################################
-
- __revision__ = 0.1
-
- # Les includes se font par ici
- import nntplib, sys
-
-
- #Et si on declarait quelques variables globales
- serverName = "news.free.fr"
- groupName = 'proxade.free.adsl.degroupage'
- groupName = 'sci.crypt'
-
- #Les fonctions elementaires necessaires au bon fonctionnement du programme
- def END() :
- """Areter le programme"""
- sys.exit()
-
- def ERROR(msg):
- """Affiche un message d'erreur"""
-
- print '#'*len(msg)
- print msg
- print '#'*len(msg)
- END()
-
- def WARNING(msg):
- """Affiche un message de prevention"""
-
- print '*'*len(msg)
- print msg
- print '*'*len(msg)
-
- def INFO(msg):
- """Affiche un message d'information"""
-
- print '@'*len(msg)
- print msg
- print '@'*len(msg)
-
-
- class MyNNTP :
- """Cette classe permet de gerer la connexion aux serveurs nntp """
-
- def __init__(self, server = serverName, group = groupName):
- """Constructeur par defaut de la classe NNTP"""
-
- self.serverName = server
- self.groupName = group
- self.news = None
- self.group = None
- self.info = None
-
-
- # connexion au serveur
- def connect(self, server = None) :
- """ Se connecter au serveur indique"""
- if server != None :
- self.serverName = server
-
- try :
- self.news = nntplib.NNTP(self.serverName)
- except :
- ERROR("connexion impossible")
-
- INFO('connexion réussie : ' + self.news.getwelcome())
-
- # connexion au groupe
- def connect_2_group(self, group = None) :
- """ Se connecter au groupe indique"""
- if group != None :
- self.groupName = group
-
- INFO('%s - connexion au groupe' % self.groupName)
-
- try :
- self.group = self.news.group(self.groupName)
- except :
- ERROR('impossible de se connecter au groupe')
-
- INFO('connexion au groupe réussie : ' + self.group[0])
-
- # affichage des informations sur le groupe
- def show(self):
- """ affiche les informations sur le groupe"""
-
- self.info = {}
- self.info["debut"] = self.group[2]
- self.info['fin'] = self.group[3]
- self.info['nombre'] = self.group[1]
-
- #Afficher les informations
- _msg = "Nombre d'articles : " + self.info['nombre'] +'\n'
- _msg += "Identifiant du premier article : " + self.info['debut'] +'\n'
- _msg += "Identifiant du dernier article : " + self.info['fin'] +'\n'
- INFO(_msg)
-
- return int(self.info['debut']), int(self.info['fin'])
-
-
- def list(self, debut, fin):
- """Affiche les messages"""
-
- for _i in range(debut, fin):
- print _i
-
- try :
- _article = self.news.article(str(_i))
- _body = self.news.body(str(_i))
- except :
- WARNING('Article absent de ce groupe')
- continue
-
- print _body
-
- print "="*80
- print "Numéro: " + _body[1]
- print "Message-ID: " + _body[2]
-
- for _j in _article[3]:
- if ("References:" in _j):
- print _j
-
- print "-"*80
-
- for _j in _body[3]:
- print "*-"*4
- print _j
- print "*-"*4
- print "-"*80
-
- if __name__ == '__main__' :
-
- _nntp_free = MyNNTP(serverName, groupName)
-
- _nntp_free.connect()
- _nntp_free.connect_2_group()
- _msgIndexS, _msgIndexE = _nntp_free.show()
- _nntp_free.list(_msgIndexE - 20 , _msgIndexE)
# -*- coding: utf-8 -*-
#-#####################################################
#- Classe permetant de gerer les connexions au serveurs nntp #
#-
#- Ce code n'est que la partie d'un projet plus vaste dans le but est de réaliser un client usenet
#- en python ou en C++
#- Ce code doit etre amélioré notament en geran au mieu les exceptions et en ajputant d'autres fonctionnalite
#- temps passe a coder et valider = 2H
#- Coded by azalsup@free.fr
#- Code ouvert sans conditions
#-
#-#####################################################
__revision__ = 0.1
# Les includes se font par ici
import nntplib, sys
#Et si on declarait quelques variables globales
serverName = "news.free.fr"
groupName = 'proxade.free.adsl.degroupage'
groupName = 'sci.crypt'
#Les fonctions elementaires necessaires au bon fonctionnement du programme
def END() :
"""Areter le programme"""
sys.exit()
def ERROR(msg):
"""Affiche un message d'erreur"""
print '#'*len(msg)
print msg
print '#'*len(msg)
END()
def WARNING(msg):
"""Affiche un message de prevention"""
print '*'*len(msg)
print msg
print '*'*len(msg)
def INFO(msg):
"""Affiche un message d'information"""
print '@'*len(msg)
print msg
print '@'*len(msg)
class MyNNTP :
"""Cette classe permet de gerer la connexion aux serveurs nntp """
def __init__(self, server = serverName, group = groupName):
"""Constructeur par defaut de la classe NNTP"""
self.serverName = server
self.groupName = group
self.news = None
self.group = None
self.info = None
# connexion au serveur
def connect(self, server = None) :
""" Se connecter au serveur indique"""
if server != None :
self.serverName = server
try :
self.news = nntplib.NNTP(self.serverName)
except :
ERROR("connexion impossible")
INFO('connexion réussie : ' + self.news.getwelcome())
# connexion au groupe
def connect_2_group(self, group = None) :
""" Se connecter au groupe indique"""
if group != None :
self.groupName = group
INFO('%s - connexion au groupe' % self.groupName)
try :
self.group = self.news.group(self.groupName)
except :
ERROR('impossible de se connecter au groupe')
INFO('connexion au groupe réussie : ' + self.group[0])
# affichage des informations sur le groupe
def show(self):
""" affiche les informations sur le groupe"""
self.info = {}
self.info["debut"] = self.group[2]
self.info['fin'] = self.group[3]
self.info['nombre'] = self.group[1]
#Afficher les informations
_msg = "Nombre d'articles : " + self.info['nombre'] +'\n'
_msg += "Identifiant du premier article : " + self.info['debut'] +'\n'
_msg += "Identifiant du dernier article : " + self.info['fin'] +'\n'
INFO(_msg)
return int(self.info['debut']), int(self.info['fin'])
def list(self, debut, fin):
"""Affiche les messages"""
for _i in range(debut, fin):
print _i
try :
_article = self.news.article(str(_i))
_body = self.news.body(str(_i))
except :
WARNING('Article absent de ce groupe')
continue
print _body
print "="*80
print "Numéro: " + _body[1]
print "Message-ID: " + _body[2]
for _j in _article[3]:
if ("References:" in _j):
print _j
print "-"*80
for _j in _body[3]:
print "*-"*4
print _j
print "*-"*4
print "-"*80
if __name__ == '__main__' :
_nntp_free = MyNNTP(serverName, groupName)
_nntp_free.connect()
_nntp_free.connect_2_group()
_msgIndexS, _msgIndexE = _nntp_free.show()
_nntp_free.list(_msgIndexE - 20 , _msgIndexE)
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
[MIX 2010] - TELECHARGEZ INTERNET EXPLORER 9 EN PREVIEW ![MIX 2010] - TELECHARGEZ INTERNET EXPLORER 9 EN PREVIEW ! par redo
La Preview de Windows Explorer 9 est maintenant disponible à l'adresse suivante : http://ie.microsoft.com/testdrive/ Cette version ne nécessite pas un redémarrage de votre machine pour être exploitée . Cette version est fonctionnelle mais reste cependant ...
Cliquez pour lire la suite de l'article par redo [MIX 2010] - KEYNOTE DAY 2 ONLINE : WINDOWS INTERNET EXPLORER 9, JQUERY, ODATA ET DALLAS CTP2 ![MIX 2010] - KEYNOTE DAY 2 ONLINE : WINDOWS INTERNET EXPLORER 9, JQUERY, ODATA ET DALLAS CTP2 ! par redo
Dans la lignée du premier keynote, retrouvez la vidéo du second keynote en ligne : Visionnez la vidéo à l'url suivante : http://www.microsoft.com/presspass/events/mix/VideoGallery.aspx Vous y retrouverez ainsi les speakers Scott Guthrie, Dean Hachamovitch...
Cliquez pour lire la suite de l'article par redo [MIX 2010] - RETOUR D'EXPéRIENCE DéVELOPPEMENT SEESMIC SUR WINDOWS PHONE 7[MIX 2010] - RETOUR D'EXPéRIENCE DéVELOPPEMENT SEESMIC SUR WINDOWS PHONE 7 par redo
En avant première, Loic le retour d'expérience de Loïc Le Meur du portage de l'application http://seesmic.com/ sur plateforme Windows Phone 7 . c'était d'ailleurs une des rares opportunités de tester, voir toucher le nouveau device . voyez par vous-même :...
Cliquez pour lire la suite de l'article par redo [MIX 2010] - LE KEYNOTE DAY 1 DISPONIBLE ONLINE ![MIX 2010] - LE KEYNOTE DAY 1 DISPONIBLE ONLINE ! par redo
Si tout comme moi, vous avez manqué de peu le premier keynote du Microsoft Mix 2010, je vous invite à prendre deux heure et le consulter ci-dessous . Visionnez le Keynote à l'url suivante : http://www.microsoft.com/Presspass/events/mix/videoGallery.aspx?c...
Cliquez pour lire la suite de l'article par redo VISUAL STUDIO TALK SHOW: EF4VISUAL STUDIO TALK SHOW: EF4 par Matthieu MEZIL
La semaine dernière, j'étais à Montréal pour y animer des conférences sur Entity Framework. J'en ai profité pour enregister un podcast Visual Studio Talk Show que vous pouvez retrouver ici ....(read more) ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL
Logiciels
Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods Konvertor (4.00)KONVERTOR (4.00)Le logiciel est un gestionnaire multimedia affichant, jouant et convertissant plus de 2000 format... Cliquez pour télécharger Konvertor
Comparez les prix

HTC Magic
Entre 429€ et 429€
|