{"id":499,"date":"2024-02-20T11:09:45","date_gmt":"2024-02-20T10:09:45","guid":{"rendered":"https:\/\/artheodoc.fr\/?page_id=499"},"modified":"2024-02-24T18:46:22","modified_gmt":"2024-02-24T17:46:22","slug":"piwigo-et-umap","status":"publish","type":"page","link":"https:\/\/artheodoc.fr\/index.php\/piwigo-et-umap\/","title":{"rendered":"Piwigo et uMap"},"content":{"rendered":"\n<p>On m&rsquo;a transmis un script en python (<em>g\u00e9n\u00e9r\u00e9 avec ChatGPT<\/em>) pour r\u00e9cup\u00e9rer les donn\u00e9es GPS de photos h\u00e9berg\u00e9es sur un serveur Piwigo pour les positionner sur une carte cr\u00e9\u00e9e avec uMap. J&rsquo;ai adapt\u00e9 ce script au Debian 11 de mon serveur Piwigo.<\/p>\n\n\n\n<p class=\"has-large-font-size\">Nouvelle version<\/p>\n\n\n\n<p class=\"has-vivid-red-color has-text-color has-link-color has-medium-font-size wp-elements-d0d5594211c4cbc85f25a5f74fab5fa0\">La version pr\u00e9c\u00e9dente du script g\u00e9n\u00e9re un fichier qui ne met pas en place <strong>les ent\u00eates<\/strong> et contient les <strong>messages d&rsquo;erreur<\/strong>. Voici donc une nouvelle version umap2.py qui corrige cela. le fichier cr\u00e9\u00e9 est <strong>umap.csv<\/strong>, s&rsquo;il existe d\u00e9j\u00e0 il est <strong>automatiquement remplac\u00e9<\/strong>.<\/p>\n\n\n\n<p class=\"has-pale-ocean-gradient-background has-background\">J\u2019utilse le <strong>SSH<\/strong> avec <a href=\"https:\/\/artheodoc.fr\/index.php\/utilisation-de-putty-depuis-le-reseau-local-ou-a-distance\" data-type=\"link\" data-id=\"https:\/\/artheodoc.fr\/index.php\/utilisation-de-putty-depuis-le-reseau-local-ou-a-distance\" target=\"_blank\" rel=\"noreferrer noopener\">PuTTY<\/a> sous Windows pour prendre la main en lignes de commande sur le serveur Piwigo qui h\u00e9berge les photos (dans mon cas je peux aussi utiliser la console de mon hyperviseur Promox). Pour transf\u00e9rer le script Python dans mon dossier utilisateur sur le serveur Piwigo j\u2019ai utilis\u00e9 <a href=\"https:\/\/artheodoc.fr\/index.php\/utilisation-de-filezilla-depuis-le-reseau-local-ou-a-distance\/\" data-type=\"page\" data-id=\"58\" target=\"_blank\" rel=\"noreferrer noopener\">FileZilla<\/a>.<\/p>\n\n\n\n<p class=\"has-large-font-size\">Pr\u00e9requis<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Le script doit \u00eatre install\u00e9 et ex\u00e9cut\u00e9 sur le serveur Piwigo.<\/strong><\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Le serveur SSH a \u00e9t\u00e9 install\u00e9 sur la machine qui h\u00e9berge Piwigo lors de l&rsquo;installation de Debian.<\/strong><\/p>\n\n\n\n<p>Tout d&rsquo;abord sur mon serveur Piwigo j&rsquo;ai regard\u00e9 quelle est la version de Python 3 install\u00e9e :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><strong>python3 --version<\/strong>\nPython 3.9.2\n<\/pre>\n\n\n\n<p>Installation des paquets n\u00e9cessaires \u00e0 la mise en place des biblioth\u00e8ques pour Python 3, en administrateur (root pour Debian ou sudo pour Ubuntu, Mint). Pip est un gestionnaire de paquets :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><strong>apt install python3-pip<\/strong><\/pre>\n\n\n\n<p>Installation de la biblioth\u00e8que pillow pour Python 3 avec pip (\u00e9quivalent \u00e0 PIL):<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><strong>pip3 install pillow<\/strong><\/pre>\n\n\n\n<p class=\"has-large-font-size\">Le script en Python<\/p>\n\n\n\n<p>Mon script <strong>umap2.py<\/strong> modifi\u00e9 :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#!\/usr\/bin\/env python3.9\n\n#-*- coding: utf-8 -*-\n\nfrom PIL import Image\nfrom PIL.ExifTags import TAGS\nimport os\n\ndef convert_gps_to_decimal(gps_data):\n    lat_deg, lat_min, lat_sec = gps_data&#91;2]\n    lon_deg, lon_min, lon_sec = gps_data&#91;4]\n    \n    lat = lat_deg + lat_min \/ 60.0 + lat_sec \/ 3600.0\n    lon = lon_deg + lon_min \/ 60.0 + lon_sec \/ 3600.0\n    \n    # Ajuster en fonction de la direction (N, S, E, W)\n    lat = lat if gps_data&#91;1] == 'N' else -lat\n    lon = lon if gps_data&#91;3] == 'E' else -lon\n    \n    return lat, lon\n\ndef create_image_url(chemin_base, fichier):\n    # Ajouter le suffixe \"-xx\" juste avant l'extension .jpg\n    nom_fichier, extension = os.path.splitext(fichier)\n    fichier_avec_suffixe = f\"{nom_fichier}-xx{extension}\"\n    \n    # Construire l'URL compl\u00e8te avec le nom du fichier\n    image_url = f\"{{{{http:\/\/{chemin_base}\/{fichier_avec_suffixe}}}}}\"\n    return image_url\n\ndef extract_and_convert_gps_info(chemin_photos, chemin_base):\n    if os.path.exists(\".\/umap.csv\"):\n        os.remove(\".\/umap.csv\")\n        print(\"fichier umap.cvs d\u00e9j\u00e0 existant supprim\u00e9\")\n    # a, pour une ouverture en mode ajout \u00e0 la fin du fichier (APPEND). Si le fichier n'existe pas python le cr\u00e9e.\n    global fichier_csv\n    fichier_csv = open(\"umap.csv\", \"a\")\n    fichier_csv.write(\"URL,Lat,Lon\")\n    for fichier in os.listdir(chemin_photos):\n        chemin_complet = os.path.join(chemin_photos, fichier)\n\n        try:\n            with Image.open(chemin_complet) as img:\n                exif_data = img._getexif()\n\n                if exif_data is not None:\n                    # Extraire les donn\u00e9es GPS\n                    gps_info = {TAGS&#91;key]: exif_data&#91;key] for key in exif_data.keys() if key in TAGS and TAGS&#91;key] == 'GPSInfo'}\n\n                    if gps_info:\n                        # Convertir les coordonn\u00e9es GPS en d\u00e9cimal\n                        coordinates_decimal = convert_gps_to_decimal(gps_info&#91;'GPSInfo'])\n                        if coordinates_decimal:\n                            # Cr\u00e9er l'URL avec le nom du fichier\n                            image_url = create_image_url(chemin_base, fichier)\n                            # Imprimer le r\u00e9sultat sous forme de cha\u00eene\n                            result_str = f\"{image_url},{coordinates_decimal&#91;0]},{coordinates_decimal&#91;1]}\"\n                            print(result_str)\n                            # saut de ligne \\n\n                            fichier_csv.write(\"\\n\" + result_str)\n\n        except Exception as e:\n            print(f\"Erreur lors de l'extraction des donn\u00e9es Exif pour {chemin_complet}: {str(e)}\")\n\n# Chemin du r\u00e9pertoire contenant les photos\nchemin_photos = r'\/var\/www\/html\/piwigomv\/upload\/2023\/05\/06'\n\n# Chemin de base pour la cr\u00e9ation de l'URL\nchemin_base = 'piwigo.memoirevive79.mooo.com\/i.php?\/upload\/2023\/05\/06'\n\n# Appeler la fonction pour extraire et convertir les informations GPS\nextract_and_convert_gps_info(chemin_photos, chemin_base)\nfichier_csv.close()\nprint(\"fichier umap.csv cr\u00e9\u00e9\")<\/code><\/pre>\n\n\n\n<p class=\"has-medium-font-size\">Pour t\u00e9l\u00e9charger l&rsquo;archive zip contenant le fichier : <a href=\"https:\/\/artheodoc.fr\/wp-content\/uploads\/2024\/02\/umap2.zip\">umap2.zip<\/a><\/p>\n\n\n\n<p>Pour Debian j&rsquo;ai ajout\u00e9 les lignes suivantes au d\u00e9but du script :<\/p>\n\n\n\n<p><strong>#!\/usr\/bin\/env python3.9<\/strong><\/p>\n\n\n\n<p><strong>#-*- coding: utf-8 -*-<\/strong><\/p>\n\n\n\n<p>J&rsquo;ai v\u00e9rifi\u00e9 la version de python au d\u00e9but.<\/p>\n\n\n\n<p class=\"has-pale-ocean-gradient-background has-background\">On doit adapter le <strong>chemin_photos<\/strong> et le <strong>chemin_base<\/strong> mes photos se trouvent dans un sous dossier d&rsquo;upload. J&rsquo;ai conserv\u00e9 <strong>i.php?<\/strong>.<\/p>\n\n\n\n<p>Pour que mon fichier Python .py soit ex\u00e9cutable, depuis le terminal&nbsp;:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><strong>chmod +x umap2.py<\/strong><\/pre>\n\n\n\n<p>Pour ex\u00e9cuter mon fichier Python depuis le dossier o\u00f9 il se trouve dans un terminal :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><strong>.\/umap2.py<\/strong><\/pre>\n\n\n\n<p><strong>On peut r\u00e9cup\u00e9rer le fichier umap.csv avec <a href=\"https:\/\/artheodoc.fr\/index.php\/utilisation-de-filezilla-depuis-le-reseau-local-ou-a-distance\/\" data-type=\"page\" data-id=\"58\" target=\"_blank\" rel=\"noreferrer noopener\">FileZilla<\/a>.<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<p class=\"has-large-font-size\">Le fichier umap.csv<\/p>\n\n\n\n<p>Voil\u00e0 les donn\u00e9es obtenues dans LibreOffice Calc. On voit les ent\u00eates URL, Lat, Lon.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"925\" height=\"153\" src=\"https:\/\/artheodoc.fr\/wp-content\/uploads\/2024\/02\/umap-cvs.png\" alt=\"\" class=\"wp-image-508\" srcset=\"https:\/\/artheodoc.fr\/wp-content\/uploads\/2024\/02\/umap-cvs.png 925w, https:\/\/artheodoc.fr\/wp-content\/uploads\/2024\/02\/umap-cvs-300x50.png 300w, https:\/\/artheodoc.fr\/wp-content\/uploads\/2024\/02\/umap-cvs-768x127.png 768w\" sizes=\"auto, (max-width: 925px) 100vw, 925px\" \/><\/figure>\n\n\n\n<p class=\"has-large-font-size\">Sur le site uMap<\/p>\n\n\n\n<p>Sur le site <a href=\"https:\/\/umap.openstreetmap.fr\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/umap.openstreetmap.fr\/<\/a><\/p>\n\n\n\n<p class=\"has-large-font-size\">Pour importer mon fichier csv<\/p>\n\n\n\n<p>I<strong>mporter des donn\u00e9es (CTRL + I)<\/strong> ==&gt; <strong>[Parcourir&#8230;]<\/strong> ==&gt; S\u00e9lectionnez votre fichier ==&gt; <strong>[Importer]<\/strong><\/p>\n\n\n\n<p class=\"has-large-font-size\">Pour voir les photos<\/p>\n\n\n\n<p>Dans <strong>\u00ab\u00a0\u00c9diter les propri\u00e9t\u00e9s de la carte\u00a0\u00bb<\/strong> (la roue dent\u00e9e) ==&gt; <strong>Options d&rsquo;int\u00e9raction par d\u00e9faut<\/strong>  ==&gt; <strong>Gabarit manuel de popup<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"359\" height=\"165\" src=\"https:\/\/artheodoc.fr\/wp-content\/uploads\/2024\/02\/Gabarit_manuel_de_popup.png\" alt=\"\" class=\"wp-image-512\" srcset=\"https:\/\/artheodoc.fr\/wp-content\/uploads\/2024\/02\/Gabarit_manuel_de_popup.png 359w, https:\/\/artheodoc.fr\/wp-content\/uploads\/2024\/02\/Gabarit_manuel_de_popup-300x138.png 300w\" sizes=\"auto, (max-width: 359px) 100vw, 359px\" \/><\/figure>\n\n\n\n<p>J&rsquo;ai saisi les param\u00e8tres corresponant \u00e0 mes ent\u00eates en respectant la casse.<\/p>\n\n\n\n<p>En fait dans mon cas il semble que seul {URL} soit utile.<\/p>\n\n\n\n<p class=\"has-large-font-size\">Pour le diaporama<\/p>\n\n\n\n<p>Dans <strong>\u00ab&nbsp;\u00c9diter les propri\u00e9t\u00e9s de la carte&nbsp;\u00bb<\/strong> (la roue dent\u00e9e) ==&gt; <strong>Diaporama<\/strong> ==&gt; <strong>Activer le mode diaporama<\/strong><strong> sur <\/strong><strong>ON<\/strong><\/p>\n\n\n\n<p class=\"has-large-font-size\">Pour changer la forme de l\u2019ic\u00f4ne pour l\u2019\u00e9pingle<\/p>\n\n\n\n<p>Dans <strong>\u00ab&nbsp;\u00c9diter les propri\u00e9t\u00e9s de la carte&nbsp;\u00bb <\/strong>(la roue dent\u00e9e) ==&gt; <strong>Propri\u00e9t\u00e9s de forme par d\u00e9faut<\/strong> ==&gt; <strong>Forme de l\u2019ic\u00f4ne sur \u00c9pingle<\/strong><\/p>\n\n\n\n<p class=\"has-large-font-size\">Pour agrandir les photos<\/p>\n\n\n\n<p>Dans <strong>\u00ab&nbsp;\u00c9diter les propri\u00e9t\u00e9s de la carte&nbsp;\u00bb<\/strong> (la roue dent\u00e9e) ==&gt; <strong>Options d\u2019interaction par d\u00e9faut<\/strong> ==&gt; <strong>Forme de popup sur Popup (grande)<\/strong><\/p>\n\n\n\n<p class=\"has-large-font-size\">Pour d\u00e9finir les limites g\u00e9ographiques \u00e0 la vue courante<\/p>\n\n\n\n<p>Dans <strong>\u00ab&nbsp;\u00c9diter les propri\u00e9t\u00e9s de la carte&nbsp;\u00bb<\/strong> (la roue dent\u00e9e) ==&gt; <strong>Limites g\u00e9ographiques<\/strong> ==&gt; <strong>[Utiliser la vue courante]<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<p class=\"has-large-font-size\">Le r\u00e9sultat obtenu<\/p>\n\n\n<p><iframe loading=\"lazy\" width=\"100%\" height=\"300px\" frameborder=\"0\" allowfullscreen allow=\"geolocation\" src=\"\/\/umap.openstreetmap.fr\/fr\/map\/vouille-gascougnolles_1028350?scaleControl=false&#038;miniMap=false&#038;scrollWheelZoom=false&#038;zoomControl=true&#038;editMode=disabled&#038;moreControl=true&#038;searchControl=null&#038;tilelayersControl=null&#038;embedControl=null&#038;datalayersControl=true&#038;onLoadPanel=undefined&#038;captionBar=false&#038;captionMenus=true\"><\/iframe><\/p>\n<p><a href=\"\/\/umap.openstreetmap.fr\/fr\/map\/vouille-gascougnolles_1028350?scaleControl=false&#038;miniMap=false&#038;scrollWheelZoom=true&#038;zoomControl=true&#038;editMode=disabled&#038;moreControl=true&#038;searchControl=null&#038;tilelayersControl=null&#038;embedControl=null&#038;datalayersControl=true&#038;onLoadPanel=undefined&#038;captionBar=false&#038;captionMenus=true\">Voir en plein \u00e9cran<\/a><\/p>\n\n\n<p>Vous pouvez cliquer sur <strong>\u00ab\u00a0Voir en plein \u00e9cran\u00a0\u00bb<\/strong> puis cliquer sur le bouton <strong>\u00ab\u00a0Commencer\u00a0\u00bb<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<p class=\"has-large-font-size\">Pour ins\u00e9rer la carte dans une page ou un article d\u2019un site WordPress<\/p>\n\n\n\n<p class=\"has-pale-ocean-gradient-background has-background\">Dans Umap cliquez sur l\u2019icone <strong>Partager et t\u00e9l\u00e9charge<\/strong>r \u00e0 gauche, copier le code qui se trouve sous <strong>Int\u00e9grer la carte dans iframe<\/strong>.<\/p>\n\n\n\n<p class=\"has-pale-ocean-gradient-background has-background\">Dans votre page ou article WordPress cliquez sur les <strong>trois points<\/strong> en haut \u00e0 droite, dans la section \u00c9diteur cochez <strong>\u00c9diteur de code<\/strong>, vous pouvez ensuite coller votre code. Vous pouvez ensuite revenir \u00e0 l\u2019<strong>\u00c9diteur visuel<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<p class=\"has-large-font-size\">Sublime Text<\/p>\n\n\n\n<p>Sous Debian ou Linux Mint, pour \u00e9diter mon script Python je peux utiliser Sublime Text :<\/p>\n\n\n\n<p><a href=\"https:\/\/www.sublimetext.com\/docs\/linux_repositories.html\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.sublimetext.com\/docs\/linux_repositories.html<\/a><\/p>\n\n\n\n<p>Voir l\u2019installation pour apt (<em>avec Debian en administrateur root pas de commande sudo<\/em>).<\/p>\n\n\n\n<p>Configuration de Sublime Text pour Python :<\/p>\n\n\n\n<p>Depuis le menu<strong> View<\/strong> ==&gt; <strong>Syntax<\/strong>, s\u00e9lectionnez <strong>Python<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<p class=\"has-large-font-size\">Acc\u00e8s SSH sous Linux<\/p>\n\n\n\n<p>Pour acc\u00e9der au serveur distant Piwigo depuis un terminal de mon poste de travail sous Linux&nbsp;:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ssh <strong><em>utilisateur<\/em><\/strong>@<strong><em>IP_publique<\/em><\/strong> -p <em><strong>port<\/strong><\/em><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><em>utilisateur&nbsp;<\/em><\/strong>: le nom de mon utilisateur sur le serveur Piwigo.<\/li>\n\n\n\n<li><strong><em>IP_publique&nbsp;<\/em><\/strong>: Adresse IP publique du site distant o\u00f9 se trouve le serveur Piwigo. Adresse IP du serveur si l\u2019on est sur le m\u00eame r\u00e9seau local.<\/li>\n\n\n\n<li><strong><em>port&nbsp;<\/em><\/strong>: Le port SSH \u00e0 utiliser, si on ne pr\u00e9cise pas ce param\u00e8tre on utilisera le port part d\u00e9faut qui est le 22.<\/li>\n<\/ul>\n\n\n\n<p>Pour quitter :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><strong>exit<\/strong><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<p class=\"has-large-font-size\">Plus d&rsquo;informations<\/p>\n\n\n\n<p><a href=\"https:\/\/artheodoc.fr\/index.php\/programmer-en-python-sous-debian\/\" data-type=\"page\" data-id=\"468\" target=\"_blank\" rel=\"noreferrer noopener\">Programmer en Python sous&nbsp;Debian<\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<p class=\"has-large-font-size\">T\u00e9l\u00e9chargement au format PDF<\/p>\n\n\n\n<div data-wp-interactive=\"core\/file\" class=\"wp-block-file\"><object data-wp-bind--hidden=\"!state.hasPdfPreview\" hidden class=\"wp-block-file__embed\" data=\"https:\/\/artheodoc.fr\/wp-content\/uploads\/2024\/02\/Piwigo_et_uMap.pdf\" type=\"application\/pdf\" style=\"width:100%;height:600px\" aria-label=\"Contenu embarqu\u00e9 Piwigo_et_uMap.\"><\/object><a id=\"wp-block-file--media-8a23ffde-988f-4a3d-96ed-243b163e41c2\" href=\"https:\/\/artheodoc.fr\/wp-content\/uploads\/2024\/02\/Piwigo_et_uMap.pdf\">Piwigo_et_uMap<\/a><a href=\"https:\/\/artheodoc.fr\/wp-content\/uploads\/2024\/02\/Piwigo_et_uMap.pdf\" class=\"wp-block-file__button wp-element-button\" download aria-describedby=\"wp-block-file--media-8a23ffde-988f-4a3d-96ed-243b163e41c2\">T\u00e9l\u00e9charger<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>On m&rsquo;a transmis un script en python (g\u00e9n\u00e9r\u00e9 avec ChatGPT) pour r\u00e9cup\u00e9rer les donn\u00e9es GPS de photos h\u00e9berg\u00e9es sur un serveur Piwigo pour les positionner sur une carte cr\u00e9\u00e9e avec uMap. J&rsquo;ai adapt\u00e9 ce script au Debian 11 de mon serveur Piwigo. Nouvelle version La version pr\u00e9c\u00e9dente du script g\u00e9n\u00e9re un fichier qui ne met [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-499","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/artheodoc.fr\/index.php\/wp-json\/wp\/v2\/pages\/499","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/artheodoc.fr\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/artheodoc.fr\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/artheodoc.fr\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/artheodoc.fr\/index.php\/wp-json\/wp\/v2\/comments?post=499"}],"version-history":[{"count":37,"href":"https:\/\/artheodoc.fr\/index.php\/wp-json\/wp\/v2\/pages\/499\/revisions"}],"predecessor-version":[{"id":587,"href":"https:\/\/artheodoc.fr\/index.php\/wp-json\/wp\/v2\/pages\/499\/revisions\/587"}],"wp:attachment":[{"href":"https:\/\/artheodoc.fr\/index.php\/wp-json\/wp\/v2\/media?parent=499"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}