API:Holidays viewer/fr

Présentation
Ce tutoriel permet de créer une application de démonstration qui récupère les jours fériés et les observations pour une date donnée dans Wikipedia, avec une option qui permet de se connecter pour ajouter de nouveaux jours.

Télécharger le code de GitHub Afficher l'application dans Toolforge

Les outils et les technologies utilisées pour créer l'application de démonstration sont :


 * Python 3 et Flask, un environnement Python.
 * JQuery et Bootstrap.
 * Modules de l'API Action de Mediawiki :, et.

Etape 1 : installation de l'environnement de développement Python et Flask
Python est fourni préinstallé avec la plupart des distributions Linux. Pour les autres systèmes d'exploitation, voir le guide des débutants Python pour les instructions concernant l'installation.

Installez Flask en exécutant. Si vous ne disposez pas de pip, récupérez-le à partir du site Pip web officiel

Etape 2: créer une application Flask simple
Dans votre répertoire racine (home), créez un répertoire appelé  et qui contiendra tous les fichiers des applications. Dans le répertoire, créez un fichier  et insérez-y le code suivant :

Exécutez l'application en utilisant la commande  et ouvrez   dans votre navigateur. Vous devriez voir « Holidays and observances » affiché.

Etape 3 : Création de l'architecture de base
L'application aura quatre pages : la page d'accueil, une page de recherche, une page pour la connexion et une page pour les annonces. Toutes les pages auront certains éléments en commun, il nous faut donc créer un fichier de configuration de base appelé  qui contiendra ces éléments.

Notez-bien que nous utilisons les classes de Bootstrap pour appliquer un style CSS spécifique à un élément, Materialiser les icônes pour les icônes concernant l'addition, la recherche et la flèche arrière, et Jinja pour étendre l'affichage de base à d'autres pages, et pour passer des variables de Python à HTML.

Les autres pages vont étendre  en utilisant le code suivant :

Etape 4 : Lister les jours de vacance
L'URL de base de l'application va activer la fonction, qui liste les vacances à une date donnée.

In the function and throughout the app,  refers to the date of the holidays to be listed,   refers to the title of the page, and   refers to the html which contains the holidays to be listed. Nous utiliserons également la fonction  pour générer un fichier html spécifique à partir du répertoire des modèles. Les autres arguments ajoutés à la fonction sont les variables qui seront passées au fichier HTML.

Dans, mettre à jour   avec le code ci-dessous :

Obtenir la date du jour
Si aucune date n'est précisée, les vacances seront affichées pour la date du jour. Pour utiliser le module Python datetime afin d'obtenir la date du jour, importez le module avec  puis créez la fonction suivante :

Appeler la fonction dans  :

Récupérer la liste des vacances
Une fois la date obtenue, nous obtenons les vacances pour cette date. Wikipedia possède une page par date et les vacances figurent dans une section intitulée Holidays and observances. Pour obtenir les vacances, il nous faut connaître leur numéro de section ainsi que le contenu de ces sections.

Créez une fonction pour obtenir le numéro de section en utilisant :

Créez une fonction  pour obtenir les vacances dans cette section en utilisant également, puis appelez la fonction dans   :

Mettre à jour les liens de vacance
Le code HTML des vacances qui a été renvoyé contient des liens internes qui pointent vers ces vacances, par exemple  . We need to prepend " " to these links using jQuery in order to make them external links in our app, and make them open in a new tab. Pour faire cela, ajoutez le code suivant à  :

Ensuite ajoutez jQuery à  en utilisant :

Etape 5 : recherche des vacances à d'autres dates
Pour obtenir les vacances à d'autres dates, créez une route de recherche en affichant un formulaire de saisie du mois et du jour concerné :

Une fois que le formulaire de recherche a été envoyé, mettez à jour  pour qu'il corresponde à la date qui a été saisie. Pour faire cela, ajoutez le code suivant à  :

Etape 6 : Lister un jour de vacance
The page to which we'll be adding a new holiday is protected from edits by anonymous users, so we need to log in using API:Login#clientlogin first.

Pour ajouter une vacance, envoyez une requête à avec la date et la descritption de la vacance. La modification ajoute de nouvelles vacances à la page suivante de la Wikipedia de test : Sandbox/Holidays_and_observances. Ceci est fait pour empêcher d'ajouter des vacances de test sur la Wikipedia anglophone.

After the holiday is added, redirect to the homepage where the holidays added will also be shown, and formatted in bold to differentiate them from the real holidays. Pour récupérer les vacances de test en même temps que les vacances réelles, mettez à jour  :

Etape 7 : Habiller l'application
Pour ajouter davantage de style à votre application, créez une feuille de style appelée  et créez un lien dessus à partir de   en ajoutant.

Affichage des applications
A cet instant, la structure de votre application devrait être :

$HOME/holidays-viewer ├── templates/ │  └── add.html └── index.html └── layout.html └── login.html └── search.html ├── static/ │  └── style.css └── update-links.js ├── app.py

Avec  et   étant :



Etapes suivantes

 * Contribuez en enregistrant l'application de démonstration que vous avez réalisée utilisant l'API MediaWiki, dans ce dépôt d'exemples de code.

Voir aussi

 * — Guide de démarrage rapide pour l'API Action de MediaWiki.
 * — Analyse le contenu d'une page pour générer les sorties.
 * — Modifie une page.
 * — Permet de se connecter à un wiki.