Page 1 sur 1

[Resolu] Webgadget sauvegarde texte et image

Publié : lun. 02/août/2010 21:41
par fd
Bonjour,

Je souhaite me connecter à une base de livres pour compléter une base de données représenant ma bibliothèque (titre / auteur / edition / pages ... + image de la couverture). Après quelques essais avec aws, je n'arrive pas à créer la signature en sha256 avec pb. Je pense donc récupérer sur le site la texte de la page web (programme de Pille) et l'image avec COMate et le javacript : mais je n'arrive pas à forcer l'enregistrement (sauvegarde de l'image - save as du click droit). Voici mon code ... si l'un de vous a élaboré une autre méthode (ou a réussi à travailler avec aws) ... je suis prenneur de toutes les bonnes idées ... Merci.

Code : Tout sélectionner

XIncludeFile "COMate.pbi" 

Define.COMateObject WebObject 

Procedure.i ExecuteJavaScript(Gadget, command$) 
  Protected browser.COMateObject, documentDispatch.COMateObject, script.COMateObject 
  Protected result 
  browser = COMate_WrapCOMObject(GetWindowLong_(GadgetID(gadget), #GWL_USERDATA)) 
  If browser 
    documentDispatch = browser\GetObjectProperty("Document") 
    If documentDispatch 
      script = documentDispatch\GetObjectProperty("script") 
      If script 
        result = script\Invoke("eval('" + command$ + "')") 
        script\release() 
      EndIf  
      documentDispatch\Release() 
    EndIf 
    browser\Release() 
  EndIf 
  ProcedureReturn result 
EndProcedure 


If OpenWindow(0, 10,10,500,500, "WebGadget",  #PB_Window_SystemMenu) 
  WebGadget(0, 0, 0, WindowWidth(0)+50,WindowHeight(0)-100, "http://www.nicebooks.com/data/covers/large/0/0/3/5/9782253155300.jpg") 

  ButtonGadget(2,250,WindowHeight(0)-50,150,25,"Send") 
   
  Repeat 
    Event = WaitWindowEvent(); 
    Select Event 
      Case #PB_Event_Gadget 
        If EventGadget() = 2 
          ExecuteJavaScript(0,"document.execCommand('SaveAs', true, 'D:\\test.jpg)")
        EndIf 
      Case #PB_Event_CloseWindow 
        Break 
    EndSelect 
  Until GetAsyncKeyState_(#VK_ESCAPE) 
EndIf 

Re: Webgadget sauvegarde texte et image

Publié : lun. 02/août/2010 22:02
par Ar-S
tu devrais te mettre à jour avec COMate Plus. il y a la version PB 4.50
Je découvre tout juste mais ça a l'air bien puissant !

Pour ton soucis je comprends pas trop.

Si tu veux sauver l'image et que tu as l'url, pourquoi ne pas utiliser un simple ReceiveHttpFile() ?

Code : Tout sélectionner

;haut de la page
initNetwork()

;(...) ton code

If EventGadget() = 2  
          
           If ReceiveHTTPFile("http://www.nicebooks.com/data/covers/large/0/0/3/5/9782253155300.jpg", "D:\test2.jpg")
            Debug "Succes"
          Else
            Debug "Erreur"
          EndIf

Re: Webgadget sauvegarde texte et image

Publié : lun. 02/août/2010 22:23
par fd
Oui, en effet trop simple !

Je cherche depuis 2 jours entre comate et le javascript ... et je n'ai donc pas vu le beaucoup plus simple !

Merci, bonne fin de soirée

Re: Webgadget sauvegarde texte et image

Publié : mar. 03/août/2010 7:28
par Ar-S
Petite modif : D:\ pas D:/

Ajoute un petit [resolu] devant ton sujet ;)