Téléchargement

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Programmes
Messages : 80
Inscription : mer. 24/mai/2006 12:12

Téléchargement

Message 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.
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message 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.
Programmes
Messages : 80
Inscription : mer. 24/mai/2006 12:12

Téléchargement

Message 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.
Dernière modification par Programmes le sam. 07/avr./2007 13:25, modifié 1 fois.
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message 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 ?
Dernière modification par Flype le jeu. 05/avr./2007 13:10, modifié 2 fois.
Programmes
Messages : 80
Inscription : mer. 24/mai/2006 12:12

Téléchargement

Message 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
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message 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.
Programmes
Messages : 80
Inscription : mer. 24/mai/2006 12:12

Téléchargement

Message par Programmes »

Merci à toi je vais déjà essayer avec ca
Programmes
Messages : 80
Inscription : mer. 24/mai/2006 12:12

Message par Programmes »

Pardons cette une erreur de frappe: j'avais bien mis @ ddonc l'erreur n'est pas là...
Programmes
Messages : 80
Inscription : mer. 24/mai/2006 12:12

Message par Programmes »

l
Dernière modification par Programmes le mer. 16/mars/2011 23:15, modifié 1 fois.
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

du X, heu non, en MP alors :lol:

( cf le petit bouton PM sur ma signature )
brossden
Messages : 833
Inscription : lun. 26/janv./2004 14:37

Message 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:
Denis

Bonne Jounée à tous
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

brossden, je te la donnerai si t'es sage :lol:
brossden
Messages : 833
Inscription : lun. 26/janv./2004 14:37

Message par brossden »

Trop tard !
Denis

Bonne Jounée à tous
brossden
Messages : 833
Inscription : lun. 26/janv./2004 14:37

Message par brossden »

Sympa Flype !!!!
Denis

Bonne Jounée à tous
Programmes
Messages : 80
Inscription : mer. 24/mai/2006 12:12

Téléchargement

Message 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.
Dernière modification par Programmes le sam. 07/avr./2007 13:31, modifié 2 fois.
Répondre