Page 1 sur 2

Téléchargement

Publié : jeu. 05/avr./2007 11:35
par Programmes
Help!
Bonjour à tous
Je voudrais télécharger des vidéos protégés par un login et mot de passe
(que je possède).
Je voudrais élaborer un programme qui me permette de gérer et télécharger les liens.
Ma question est: Est-il possible avec Purebasic de voir tous les liens des vidéos et ainsi de pouvoir les gérer...
Tous les liens sont en php. Purebasic peut-il gérer ce type de lien?
Merci de votre aide.

Publié : jeu. 05/avr./2007 12:00
par Flype
ce n'est pas très précis tout çà.

il semble que la première chose à faire dans ton cas, c'est de télécharger
le source HTML de ta page qui contient les liens de tes videos.

ensuite, tu analyses le source HTML en cherchant les balises de liens <a>.

ce n'est pas à PureBasic de savoir gérer les liens php.
je ne comprends pas cette question en fait.

une page web, c'est ni plus ni moins que du texte.
du coup, tu la télécharge, et tu l'analyse toi-meme via une procédure de ton cru.


je t'ai mis un lien dans ton autre post (que j'ai déplacé dans la section débutant).

dans l'archive il y a la fonction DownloadUrltoFile() c'est ce qu'il te faut.

Téléchargement

Publié : jeu. 05/avr./2007 12:36
par Programmes
Pardon de ne pas être très clair...Mais j'ai du mal à comprendre comment purebasic travail pour les liens html.

Merci pour les liens j'ai pigé.

J'ai créé un web gadget avec ma page à télécharger:
(http://login:pass@adressedelapage)
A partir du moment que je suis "logger" à l'ouverture de mom programme comment je peut télécharger les vidéos?
Quel serveur utilisé (apparament www.adressedelapage)?
Dans l'adresse du fichier à télécharger dois-je remettre http://login@pass?

J'ai essayé avec ceci:

Code : Tout sélectionner

If InitNetwork() = 0 
  MessageRequester("Error", "Can't initialize the network !", 0) 
  End 
EndIf 

#bufferlengte=10240 
Global buffer 
buffer = AllocateMemory(#bufferlengte) 
Global buf$ 
Global EOL$ 
EOL$ = Chr(13)+Chr(10) 
Global filename$ 
filename$="video.avi" 
server$="www.adressesite.com"
url$="http://login:pass:www.adressesite.com/"

Port = 80 
Global size 
Global oldsize 
Global rate 
Global ratetel 
Global buf$ 
Global header 
Global startReceive 
Global hwnd 
Global ConnectionID 
Global filesize 
Global timeout 
Global aniwin 
Global h 
Global einde 
h=LoadLibrary_("Shell32.dll") 
; 
Procedure incoming(result) 
  b.b=0 
  b$="" 
  rest=0 
  Select header 
  Case 0 
    SendMessage_(AniWin,#ACM_OPEN,h,160) 
    i=0 
    Repeat 
      If PeekB(buffer+i)=13 And PeekB(buffer+i+1)=10 And PeekB(buffer+i+2)=13 And PeekB(buffer+i+3)=10 
        b$=Space(i+4) 
        CopyMemory(buffer,@b$,i+4) 
        rest=i 
        i=result-1 
      EndIf 
      i+1 
    Until i=result 
    ; 
    Repeat 
    ; 
      If Left(b$,2)=EOL$ 
        If startreceive=1 
          b$=Mid(b$,3,Len(b$)-3) 
          If CreateFile(1,filename$) 
            WriteData(buffer+rest+4, result-rest-4) 
            header=1 
            size=result-rest-4 
            SetGadgetText(4,"Received "+Str(size)+" of "+Str(filesize)+" bytes") 
          Else 
            header=2 
          EndIf      
        EndIf 
      Else 
        search=FindString(b$, EOL$ , 1) 
        If search>0 
          l$=Left(b$,search-1) 
          b$=Mid(b$,search+2,Len(b$)) 
          pos=FindString(l$,"200 " , 1) 
          If pos 
            startreceive=1  ; ok 
          Else 
            pos=FindString(l$,"404 " , 1) 
            If pos 
              ;error 404 not founf 
            Else 
              pos=FindString(l$,"Content-Length:" , 1) 
              If pos 
                pos=FindString(l$," " , 1) 
                filesize=Val(Mid(l$,pos+1,Len(l$))) 
              EndIf 
            EndIf 
          EndIf 
        Debug l$ 
      Else 
        l$="" 
      EndIf 
    EndIf ; 
  Until search=0 
  Case 1 
    timeout=0 
    WriteData(buffer, result) 
    size+result 
    SetGadgetText(4,"Received "+Str(size)+" of "+Str(filesize)+" bytes") 
    stap=100*size/filesize 
    SetGadgetState(2, stap) 
    If filesize=size 
      Debug "File Received" 
      header=2 
      Debug Str(size)+" of "+Str(filesize)+" bytes" 
      KillTimer_(hWnd,1) ; 20 milisecond timer 
      KillTimer_(hWnd,2) ; 1 sec timer 
      KillTimer_(hWnd,3) ; 500 msec timer    
      CloseFile(1) 
      CloseNetworkConnection(ConnectionID) 
      Debug "Connection Closed" 
      DestroyWindow_(AniWin) 
      einde=1 
    EndIf 
  EndSelect 
EndProcedure 
; 
Procedure MyWindowCallback(WindowID, Message, wParam, lParam) 
  Result = #PB_ProcessPureBasicEvents 
  Select WindowID 
  Case hwnd 
    Select message 
    Case #WM_TIMER 
      result=1 
      Select wparam 
      Case 1 ; timer 
        If NetworkClientEvent(ConnectionID) 
          result=ReceiveNetworkData(ConnectionID, buffer, #bufferlengte) 
          incoming(result) 
        EndIf 
      Case 2  ; timeout 
        timeout+1 
        If timeout>10 
          If IsFile(1)
            CloseFile(1) 
          EndIf
          header=2 
          Debug "Timeout"      
        EndIf 
      Case 3 
        ratetel+500 
        If ratetel>0 
          rate=size/ratetel 
        EndIf 
        SetGadgetText(3,"Download speed..."+Str(rate)+" KB/s.  Time "+Str(ratetel/1000)+" s.") 
      EndSelect 
    EndSelect 
  EndSelect 
  ProcedureReturn Result 
EndProcedure 
; 
hwnd=OpenWindow(0,100,450,335,160,#PB_Window_SystemMenu,"Downloading "+filename$+" from "+server$) 
; 
If hwnd 
  If CreateGadgetList(WindowID()) 
    ButtonGadget(1, 250, 128,  72, 20, "Cancel") 
    ProgressBarGadget(2, 10, 100, 313, 20, 0, 100) 
    TextGadget(3, 20, 80,  280, 15, "") 
    TextGadget(4, 20, 65,  280, 15, "") 
    ; 
    AniWin=CreateWindowEx_(0,"SysAnimate32","",#ACS_AUTOPLAY|#ACS_CENTER|#ACS_TRANSPARENT|#WS_CHILD|#WS_VISIBLE|#WS_CLIPCHILDREN|#WS_CLIPSIBLINGS,25,10,280,50, hwnd,0,GetModuleHandle_(0),0) 
    ; 
    ConnectionID = OpenNetworkConnection(server$, Port) 
    ; 
    If ConnectionID 
      SendNetworkString(ConnectionID, "GET "+URL$+filename$+" HTTP/1.0"+eol$) 
      SendNetworkString(ConnectionID, eol$) 
    ; 
    SetWindowCallback(@MyWindowCallback()) 
    ; -------------- timers ---------------- 
    SetTimer_(hWnd,1,1,0) ; 1 milisecond timer 
    SetTimer_(hWnd,2,1000,0) ; 1 sec timer 
    SetTimer_(hWnd,3,500,0) ; 500 msec timer    
    ; 
    Repeat 
      EventID=WaitWindowEvent() 
      If EventID = #PB_EventGadget 
        Select EventGadgetID() 
        Case 1 
          header=2 
              
        EndSelect 
      EndIf 
    Until einde=1 
    EndIf 
  EndIf 
EndIf 
FreeLibrary_(h) 
Delay(4000) 
; 
End
Aucun résultat la fenetre windows ne souvre même pas.

Publié : jeu. 05/avr./2007 13:04
par Flype
PS met ton code source entre les balises CODE prévue à cet effet sinon c'est galère à lire et copier. J'ai modifier ton post.


tu utilises toujours PB3.94 ?

Téléchargement

Publié : jeu. 05/avr./2007 13:07
par Programmes
Pardons pour cette erreur! je ne savais comment faire.

J'utilse 3.94 mais j'ai la version 4.0 que je commence à découvrir.
Il est vrai que j'aimerais mieux le faire avec purebasic 4.0

Publié : jeu. 05/avr./2007 13:10
par Flype
la syntaxe d'une URL sécurisée ne serait elle pas plutot :

protocol://<user>:<password>@<host>:<port>/<url-path>

c'est à dire avec un @ au lieu de :

?


tu ne veux pas préparer une page web avec login
et avec quelques videos et nous donner le lien ici.
sinon si c'est pour tester dans le vent on arrivera à rien.

Téléchargement

Publié : jeu. 05/avr./2007 13:13
par Programmes
Merci à toi je vais déjà essayer avec ca

Publié : jeu. 05/avr./2007 13:16
par Programmes
Pardons cette une erreur de frappe: j'avais bien mis @ ddonc l'erreur n'est pas là...

Publié : jeu. 05/avr./2007 13:23
par Programmes
l

Publié : jeu. 05/avr./2007 13:27
par Flype
du X, heu non, en MP alors :lol:

( cf le petit bouton PM sur ma signature )

Publié : jeu. 05/avr./2007 13:27
par brossden
OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! OUI ! Oui! :twisted:

Publié : jeu. 05/avr./2007 13:28
par Flype
brossden, je te la donnerai si t'es sage :lol:

Publié : jeu. 05/avr./2007 13:28
par brossden
Trop tard !

Publié : jeu. 05/avr./2007 13:29
par brossden
Sympa Flype !!!!

Téléchargement

Publié : jeu. 05/avr./2007 17:54
par Programmes
Comme promis l'échantillon de la page web pour mon programme
(j'ai enlevé les gadgets pour plus de clareté)
Je l'ai envoyé sur ta bal...
Merci à toi.