OMDb est une API qui te permet d'accéder aux données de milliers de films ! Elle est connectée à IMDb, la plus grande base de données de films au monde ;)
On peut y trouver toutes sortes d'infos sur plein de films :
Voici le lien : http://www.omdbapi.com/
Pour utiliser cette API, tu as besoin d'un token :) Sinon, tu ne pourras pas récupérer les données des points d'accès !
Pour récupérer un token, il faut inscrire ton mail sur le site :)
Une fois que tu t'es inscrit, tu recevras ta clef par mail (screenshot ci-dessous).
En rouge, ta clef, garde la bien pour la mettre dans ton code ;)
En vert, un exemple d'utilisation de la clef. On verra ça plus tard en détail !
Et en orange, très important, le lien d'activation de ta clef !! Surtout, n'oublies pas de cliquer dessus, sinon ta clef ne fonctionnera pas :)
Pour commencer, voici le lien de la documentation de l'API : http://www.omdbapi.com/
Cette API a un seul point d'accès, sur lequel on fera toutes les requêtes. Ce point d'accès est un peu spécial, car pour faire la requête, on doit l'écrire à la suite de l'URL du site... Mais tu vas voir, c'est plutôt simple ;)
Pour faire une requête, il faut construire l'URL en fonction de ce qu'on veut chercher.
La base de la construction est montrée ci-contre .
C'est le lien de l'API, suivi d'un ?, et des paramètres qu'on doit rentrer.
Le premier est toujours apikey, qui est égal à ta clef ;)
Dans mon cas, la base de ma requête ressemblera toujours à ça :
Une fois qu'on a cette base de requête, il faut choisir les paramètres qu'on va utiliser pour chercher nos films ! L'image à droite liste tous les paramètres disponibles, avec leur nom ainsi que leur description !
Le plus simple est d'utiliser le paramètre 't', qui permet de chercher un film avec son nom ;)
Pour ajouter un paramètre, on doit mettre un & à la fin de l'URL de base, le nom du paramètre et sa valeur !
Donc, pour chercher le film Inception, par exemple, on devra écrire l'URL de base, suivie du paramètre t=Inception :)
http://www.omdbapi.com/?apikey=5592929c&t=Inception
Ces codes exemples sont les différentes évolutions d'un programme consistant à récupérer un ou plusieurs films, ainsi que certaines de ses infos :)
A partir du deuxième exemple, on récupère l'affiche du film et on ajoute la note qu'il a reçu dessus !
Ce code va tout simplement récupérer les informations d'un film choisi, et en extraire la note pour l'afficher :)
Ce code va faire à peu près la même chose que l'exemple précédent, sauf que cette fois, on va écrire la note récupérée sur l'affiche du film grâce à PIL ! :)
Avant de regarder cet exemple, une petite mise au point s'impose ;)
Dans ce code, on trie un tableau avec une fonction appelée sorted(). Du coup, voici une petite explication de l'utilisation de cette fonction !
Pour expliquer le tri de tableaux, je vais utiliser le même tableau que dans le code exemple : un tableau qui contient des noms de films dans le désordre :)
Pour commencer, on va voir le tri le plus simple : le tri par ordre croissant ! C'est l'option de base de la fonction sorted(). Je dois juste lui donner le tableau à trier, et c'est tout ;)
Une fois le tableau trié, je l'affiche :)
Maintenant, on va voir le tri décroissant ;) Pour inverser la méthode de tri, il suffit d'ajouter le paramètre reverse=True après le tableau à trier !
Comme on peut le voir, le tableau est maintenant trié par ordre alphabétique décroissant.
Mais dans le code exemple, on trie du JSON... Sauf que dans du JSON il y a des tonnes de possibilités de tri !
Donc on va voir un dernier exemple, c'est le tri en fonction d'un paramètre JSON ;)
Pour commencer, je récupère le JSON de chaque film et les stocke dans le tableau infosMovie grâce à une boucle for.
Comme on peut le voir, il y a beaucoup de paramètres selon lesquels on pourrait trier nos JSON...
On pourrait par exemple le trier en fonction :
Pour choisir quel sera le critère de tri, il faut utiliser le paramètre key, dans lequel on doit préciser quel est critère on veut utiliser ;)
Pour ça, on va également se servir de itemgetter, qui va tout simplement aller chercher dans le JSON le critère qu'on lui aura demandé !
Donc, en écrivant
infosMovies = sorted(infosMovies, key=itemgetter("Year"),
sorted() ira chercher à chaque film son année de publication, et triera le tableau infosMovies en fonction de ce critère :)
Donc, pour finir, comme dans le code on veut trier les films en fonction de leur note dans l'ordre décroissant, on devra préciser le critère ET la méthode de tri inversée pour avoir le bon résultat :)