GMib | a demandé le 23-01-2010 à 00:47 Bonjour, j'ai crée ce script pour envoyer sur bdfci les photos d'acteurs qui sont stocké sur mon ordi.
les photos sont dans C:\Apps\!vidz\actors\ et sont toutes nommé avec le nom de l'acteur (nom de l'acteur.jpg)
ce script ouvre une fenêtre internet explorer, s'identifie sur bdfci et va ensuite pour chaque fichier dans C:\Apps\!vidz\actors\ rechercher avec l'api bdfci si l'acteur existe, si la recherche ne retourne qu'un resultat et si il na pas dejas de photo. si c'est le cas alors il soumet la photo a bdfci.
PORTION DE CODE :
#include
#include
$oIE = _IECreate ("http://www.bdfci.info/connexion/") ;Ouvre une fenetre ie sur la page de login
$oForm = _IEFormGetCollection ($oIE, 1) ; cherche le 2eme formulaire de la page
$oText = _IEFormElementGetObjByName ($oForm, "pseudo") ; cherche l'élément "pseudo" du formulaire
$opass = _IEFormElementGetObjByName ($oForm, "pass") ; cherche l'élément "pass" du formulaire
_IEFormElementSetValue ($oText, "Login") ; insere le login dans l'input
_IEFormElementSetValue ($opass, "MotdePasse") ; insere le pass dans l'input
_IEFormSubmit ($oForm) ; Valide le formulaire
$search = FileFindFirstFile("C:\Apps\!vidz\actors\*.jpg") ;lance la recherche de fichier
While 1
$file = FileFindNextFile($search)
If @error Then ExitLoop
$acteur = StringReplace($file, " ", "+") ;remplace les espaces par +
$acteur = StringTrimRight($file,4) ;supprime l'extension
$source = _INetGetSource('http://www.bdfci.info/apis/request.php5?key=(Votre API KEY)&ask=' & $acteur & '&results=10&sort=NOM&order=ASC&searchtype=p&exact=yes') ; recupere la source de l'api recherche d'acteur
If StringInStr($source, 'ResultatTotal="1"') Then ; si 1 seul resultat retourné par l'api
If StringInStr($source, '') Then ;si l'acteur na pas de photo
$id = sb($source,'','') ; recuperation de l'id de l'acteur
_IENavigate ($oIE, "http://www.bdfci.info/V4/maj.php?t=1&a="&$id) ; ouvre la page de mise a jour de l'acteur
$oForm = _IEFormGetCollection ($oIE, 0) ; Recherche le premier formulaire
$oT = _IEFormElementGetObjByName ($oForm, "fichier") ; Recherche de l'element "fichier"
MouseMove (_IEPropertyGet ($oT, "screenx") + _IEPropertyGet ($oT, "width") - 10, _IEPropertyGet ($oT, "screeny") + _IEPropertyGet ($oT, "height") / 2,0) ; deplace la souris sur l'input file
MouseClick ("left")
WinWait ("Choisir un fichier") ; attent la fenetre de séléction de fichier
$hChoose = WinGetHandle ("Choisir un fichier")
ControlSetText ($hChoose, "", "Edit1", "C:\Apps\!vidz\actors\"&$file) ;met le chemin vers le fichier img de l'acteur dans l'edit de la fenetre de séléction de fichier
Sleep(500) ; Attente de 0.5s
ControlClick ($hChoose, "", "Button2")
Sleep(500)
_IEFormSubmit ($oForm) ; Envoi le formulaire
EndIf
EndIf
WEnd
; Close the search handle
FileClose($search)
Func SB($sString, $sStart, $sEnd,$no = 1) ; recherche le $no eme texte entre $sStart et $sEnd (ex: sb("hello","","") retourne "hello")
Local $sHold = '', $sSnSStart = '', $sSnSEnd = ''
While StringLen($sString) > 0
$sSnSStart = StringInStr($sString, $sStart)
If Not $sSnSStart Then ExitLoop
$sString = StringTrimLeft($sString, ($sSnSStart + StringLen($sStart)) - 1)
$sSnSEnd = StringInStr($sString, $sEnd)
If Not $sSnSEnd Then ExitLoop
$sHold &= StringLeft($sString, $sSnSEnd - 1) & Chr(1)
$sString = StringTrimLeft($sString, $sSnSEnd)
WEnd
If Not $sHold Then Return SetError(1, 0, 0)
$sHold = StringSplit(StringTrimRight($sHold, 1), Chr(1))
Return $sHold[$no]
EndFunc
A modifier suivant vos besoins. |