NNTP_lib

Vous avez développé un logiciel en PureBasic et vous souhaitez le faire connaitre ?
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

NNTP_lib

Message par Backup »

salut ..
je me suis fait une petite librairie pour lire et extraire les images uuencodé
et le texte des News group ..
la lib est dispo sur mon site..


voici en gros les fonctions
NNTP_Lib by Dobro

cette librairie se compose de quelques fonctions pour lire

du texte ou des images UUencodé

(les images sont majoritairement UUencodé dans les News group)




; ***********************************************************

nntp_init(IP$,login$,pass$) ; se connecter aux news

IP$ = "news.wanadoo.fr" ; votre prestataire (news.free.fr)

login$="********" ; votre login chez ce prestataire

pass$="******" ; votre pass

; ***********************************************************

nntp_list()

; cree un fichier "list.txt" qui contient la liste des Newgroups ex : " alt.binaries.pictures.lingerie "



; ***********************************************************

resultat.l=nntp_get_info(nom_group$,type)

renvois des information concernant le news group observé

nom_group$=" alt.binaries.pictures.lingerie "



si type =1 ; le code_erreur est retourné dans resultat.l

si type =2 ; le nombre d'article dans le groupe est retourné dans resultat.l

si type =3 ;le numero du premier article du group est retourné dans resultat.l

si type =4 ;le numero du dernier article du group est retourné dans resultat.l



; ***********************************************************

resultat.s=nntp_get_photo(nom_group$,numero de l'article a lire$)

cette fonction fait 2 choses

1- elle lit l'article, et génère 2 fichiers , le fichier "uucode.jpg" si une images uuencodé est trouvé dans le message

et le fichier "uucode.txt", qui est la Version texte de l'image



2- elle recupere dans "Resultat.s" , le text extrait de l'article

ps: ces 2 fichiers sont effacés a chaque appel de cette fonction

; ***********************************************************

; nntp_end()

; met fin a la connection aux news group

; ***********************************************************

; resultat.s=UUDecode_text(text$)

; décode un text UUencodé et met le resultat dans resultat.s

; ***********************************************************

; resultat=UUDecode_2()

; decode un Buffer nommé "buf$" UUencodé

; le resultat sera dans la meme variable

; "resultat" contiendra la longeur en octets du buffer decodé

; utile pour sauvegarder une image a partir d'un text UUencodé :

; Routine de LNA



; OpenFile(1,"uucode.txt")

; OpenFile(2,"uucode.jpg")

; While Eof(1)=0

; buf$=ReadString(1)

; buf$=(Right( buf$,Len( buf$)-1)) ; on retire le premier caractere de chaque lignes

; long_binaire=UUDecode_2() ; on decode le uuencode

; WriteData(2,@buf$,long_binaire) ; on ecrit le fichier decodé

; Wend

; CloseFile(2)


le code suivant est l'exemple qui est donné avec ma lib
un petit lecteur de news group :)

il s'agit d'un prg qui affiche les images trouvée sur le news group, et a sa droite affiche le texte trouvé
bouton de souris droite/gauche pour avancer ou reculer dans les articles
pour quitter il suffit de fermer la fenetre :)



Code : Tout sélectionner

  ; A LIRE
  
  ; cette exemple charge les images et affiche le texte dans un éditor gadget
  ; le bouton gauche de la souris lis les articles précédente
  ; le bouton droit lit les articles suivant
  ; pour quitter il faut fermer la fenetre avec la croix
  
  ; pour l'instant aucun control n'est effectué pour savoir si la connection marche ou pas...
  ; ce qui fait que de temps en temps, le prg peut se bloquer, seul un ALT+CTRL+DEL
  ; permet de le virer de la RAM ...
  
  ; ça fait un moment que je programme cette librairie, mais en y allant petit a petit
  ; donc c'est pas parfait, mais ça marche !!!
  
  ; certaine fois les premiers articles ne son plus disponibles, donc le prg se plante
  ;(puisque je n'ai pas mis de control pour le moment )
  ; n'hésitez pas dans ce cas a ajouter une valeur pour le premier article
  ; l'idéal (Gag) étant d'utiliser un lecteur de news, pour relever le premier article lisible...
  
  
  
  
  #editor=1
  UseJPEGImageDecoder() 
  
    ; ============CHANGER ICI=================== 
  IP$   = "news.wanadoo.fr"  ; votre prestataire (news.free.fr)
  login$="********"  ; votre login chez ce prestataire
  pass$="********"  ; votre pass 
  nom_group$=" alt.binaries.pictures.lingerie " ; le nom du groupe qu'on va lire
  ;n_art=546347 ; ici le numero de l'article qu'on va lire  !!! 
  ; ============CHANGE HERE ===================
  
  nntp_init(IP$,login$,pass$) ; connection aux NewsGroup
  
  n_art=nntp_get_info(nom_group$,3)+28 ; premier article
  dern_art=nntp_get_info(nom_group$,4) ; dernier  article
  n_article=n_art
  
  
  debut: 
   n_article$=Str(n_article)
  text$=nntp_get_photo(nom_group$, n_article$) 
  
 
  ;  ***********************************************************
  ; exemple d'utilisation
  ; *****************************************************************************
  ;          AFFICHAGE DE l'image en clair dans une fenetre
  ; ***************************************************************************** 
  If OpenWindow(0, 0, 0, 1024, 768, "ImageGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))
    EditorGadget(#editor, 600, 10, 450, 768,#PB_Editor_ReadOnly) 
  SetGadgetText(#editor, text$)
  
    If LoadImage(0, "uucode.jpg")    ; changez le 2ème paramètre en indiquant le chemin/fichier contenant votre image
      ImageGadget(0,  0, 0, 1024,768, ImageID(0))                      ; imagegadget standard 
    EndIf
    Repeat 
      event=WaitWindowEvent()
      If  event=#WM_RBUTTONDOWN ; bouton droit image suivante
        n_article=n_article+1
        ClearGadgetItemList(#editor)
         text$=""
        CloseWindow(0) 
        Goto debut  
      EndIf 
      If  event=#WM_LBUTTONDOWN ; bouton gauche image precedente
        n_article=n_article-1
        ClearGadgetItemList(#editor)
         text$=""
        CloseWindow(0) 
        Goto debut  
      EndIf  
    Until  event= #PB_Event_CloseWindow  ; fermer la fenetre pour une autre image
    nntp_end() 
  EndIf     
  End   
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

petit update effectué (correction d'un bug d'affichage :) )
Répondre