GMib | a demandé le 23-01-2010 à 12:35 Voici une UDF pour utiliser l'API BDFCI dans AutoIt : PORTION DE CODE : #include-once #include #include Const $ApiKey = 'Mettez votre Clé api ici' ; #FUNCTION# ==================================================================================================================== ; Name...........: _RechFilm ; Description ...: Recherche un film avec l'api BDFCI et retourne les infos dans un tableau ; Syntax.........: _RechFilm("String") ; Return values .: Success - Retourne un tableau contenant les films trouvés et ses infos ; Le tableau retourné est a 2 dimensions : ; $array[0][0] = Nombre de films retourné ; $array[1][0] = ID du 1er film ; $array[1][1] = Titre du 1er film ; $array[1][2] = Année du 1er film ; $array[1][3] = Synopsis du 1er film ; $array[1][4] = Affichette du 1er film ; ... ; $array[n][0] = ID du n ieme film ; $array[n][1] = Titre du n ieme film ; Etc... ; Failure - Retourne -1 si aucun film trouvé ; =============================================================================================================================== Func _RechFilm($film) $rech = StringReplace($film, " ", "+") $source = _INetGetSource('http://www.bdfci.info/apis/request.php5?key=' & $ApiKey & '&ask=' & $rech & '&results=10&sort=ANNEE&order=DSC') $nbr_film = _SBbdfci($source,'ResultatsRetournes="','"') Local $aFilm[$nbr_film+1][1] If $nbr_film = 0 Then Return -1 Else $result = _StringBetween($source,' $aa = UBound($result)+1 Local $inffilm[$aa][5] $inffilm[0][0] = UBound($result) For $i = 1 To UBound($result) $inffilm[$i][0] = _SBbdfci($result[$i-1],' $inffilm[$i][1] = _SBbdfci($result[$i-1],' $inffilm[$i][2] = _SBbdfci($result[$i-1],' $inffilm[$i][3] = _SBbdfci($result[$i-1],' $inffilm[$i][4] = _SBbdfci($result[$i-1],' Next EndIf Return $inffilm EndFunc Func _Rechinfos($id) ; retourne l'objet à donné en parametre aux fonctions suivantes $source = _INetGetSource('http://apis.bdfci.info/film.php5?key=' & $ApiKey & '&id='&$id) Return $source EndFunc Func _Cover($source) ; retourne l'url de l'affiche ou -1 si aucune affiche If StringInStr($source," Return _SBbdfci($source,' Else Return -1 EndIf EndFunc Func _Titre($source,$lang = "fr") ;retourne le titre fr ou vo, -2 si $lang n'est pas "vf" ou "vo" ou -1 si aucun titre If $lang <> "fr" And $lang <> "vo" Then Return -2 If StringInStr($source,'<'&$lang&'>'&$lang&'>') Then Return -1 Return _SBbdfci($source,'<'&$lang&'>',''&$lang&'>') EndFunc Func _Origines($source) ; retourne les origines dans un tableau de base 0 ou -1 si aucune origine If StringInStr($source,' $aaa = _StringBetween(_SBbdfci($source,' Return $aaa EndFunc Func _Genres($source); retourne les genres dans un tableau de base 0 ou -1 si aucun genre If StringInStr($source,' $aaa = _StringBetween(_SBbdfci($source,' Return $aaa EndFunc Func _Annee($source) ;retourne l'année ou -1 si aucune année If StringInStr($source,' Return _SBbdfci($source,' EndFunc Func _Sortie($source) ;retourne la date de sortie ou - 1 si aucune date If StringInStr($source,' Return _SBbdfci($source,' EndFunc Func _Reprise($source) ;retourne la date de reprise ou - 1 si aucune date If StringInStr($source,' Return _SBbdfci($source,' EndFunc Func _Pellicule($source) ; retourne la couleur de la pellicule ou -1 si non renseigné If StringInStr($source,' Return _SBbdfci($source,' EndFunc Func _Synopsis($source) ; retourne le synopsis ou -1 si non renseigné If StringInStr($source,' Return _SBbdfci($source,' EndFunc Func _Realisateurs($source); retourne les realisteurs dans un tableau de base 0 ou -1 si aucun realisateur If StringInStr($source,' $aaa = _StringBetween(_SBbdfci($source,' Return $aaa EndFunc Func _Acteurs($source); retourne les acteurs dans un tableau de base 0 à 2 dimensions ou -1 si aucun acteur If StringInStr($source,' $aaa = _StringBetween($source,' Local $act[UBound($aaa)][2] For $i = 0 To UBound($aaa)-1 $act[$i][0] = _SBbdfci($aaa[$i],'">','') $act[$i][1] = _SBbdfci($aaa[$i],'role="','">') Next Return $act EndFunc Func _SBbdfci($sString, $sStart, $sEnd,$no = 1) $a = _StringBetween($sString,$sStart,$sEnd) If $a <> 0 Then Return $a[$no-1] Else Return "" EndIf EndFunc Exemple d'utilisation : PORTION DE CODE : #include "BDFCI_API.au3" #include $Rfilm = _RechFilm("spider-man") ; recherche les films _ArrayDisplay($Rfilm,"Liste des films trouvés") $id = $Rfilm[1][0] ; enregistre l'id du 1er film $infos = _Rechinfos($id) ; selectionne le 1er film MsgBox(0, 'Url de l''affiche', _Cover($infos)) MsgBox(0, 'Titre fr', _Titre($infos,'fr')) MsgBox(0, 'titre vo', _Titre($infos,'vo')) $origines = _Origines($infos) _ArrayDisplay($origines,"Origines du film") $genres = _Genres($infos) _ArrayDisplay($genres,"Genres du film") MsgBox(0, 'Année du film', _Annee($infos)) MsgBox(0, 'Date de sortie', _Sortie($infos)) MsgBox(0, 'Date de reprise', _Reprise($infos)) MsgBox(0, 'Couleur de la pellicule', _Pellicule($infos)) MsgBox(0, 'Synopsis du film', _Synopsis($infos)) $realisateurs = _realisateurs($infos) _ArrayDisplay($realisateurs,"Liste des realisateurs") $acteurs = _Acteurs($infos) _ArrayDisplay($acteurs,"Liste des Acteurs et leur role") |
lenono | a répondu le 23-01-2010 à 20:47 C'est efficace ! Pour télécharger Autoit, rendez vous sur cette page : http://www.autoitscript.com/autoit3/ Bien qu'en anglais la doc a l'air assez complète. Merci à GMib pour ses sources, et du bon usage des APIS ! lenono |
thepiaf | a répondu le 25-01-2010 à 13:49 Bonjour, J'utilise AutoIt depuis un certain moment au boulot, et il m'a fait gagner de nombreuses heures . Je tiens à préciser qu'il existe un forum français pour ce logiciel : http://www.autoitscript.fr/forum/ et qu'une version française du logiciel est disponible ici : http://www.autoitscript.fr/forum/viewtopic.php?f=3&t=2573 En espérant que ca vous aidera. Bonne Journée. ThePiaf |