Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Article : introducing le CLI Geotribu #947

Merged
merged 33 commits into from
Aug 26, 2023
Merged
Show file tree
Hide file tree
Changes from 18 commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
2b40d69
Add termynal plugin
Guts Jun 21, 2023
e5eeea2
Add termynal from fork
Guts Jun 21, 2023
87a9759
Amorce article de présentation du CLI
Guts Jun 21, 2023
2a5fcae
Ajoute le bloc CLI à la page d'accueil
Guts Jun 21, 2023
0f89793
Use termynal from pypi
Guts Jun 21, 2023
4a9382d
Fix termynal syntax
Guts Jun 21, 2023
c4e6fc5
Use console as code block def
Guts Jun 21, 2023
1d09d0e
renomme
Guts Jul 2, 2023
74b3215
Ajout note de bas de page
Guts Jul 6, 2023
9752851
Avoid conflicting options of termynl
Guts Jul 23, 2023
b8bd965
Merge branch 'master' into article/introducing-cli-geotribu
Guts Aug 13, 2023
708e9e9
Restore line numbers
Guts Aug 13, 2023
6fc1c1b
Change date
Guts Aug 13, 2023
d124d99
Active l'image automatique
Guts Aug 13, 2023
ab594f8
Ajout icône
Guts Aug 14, 2023
c588f5c
Merge branch 'master' into article/introducing-cli-geotribu
Guts Aug 14, 2023
d0d618d
Bump minimal version of termynal
Guts Aug 20, 2023
971eca1
Merge branch 'master' into article/introducing-cli-geotribu
Guts Aug 22, 2023
4d484c0
Update content/articles/2023/2023-08-22_geotribu-cli-en-ligne-de-comm…
Guts Aug 24, 2023
9063e3e
Ajout liens (commentaire @Michael-cd30)
Guts Aug 24, 2023
46589ac
Ajout phrase d'intro
Guts Aug 24, 2023
4897491
Corrige image OpenLayers Beguinner's guide
Guts Aug 24, 2023
43341c5
Corrige le lien vers les exemples
Guts Aug 24, 2023
0e41d5a
Intègre l'aide du CLI générée dynamiquement
Guts Aug 24, 2023
be26f35
Merge branch 'master' into article/introducing-cli-geotribu
Guts Aug 24, 2023
527277d
Bump geotribu and pre-commit minimal versions
Guts Aug 24, 2023
ac01b84
Complétion
Guts Aug 24, 2023
99f392d
Description
Guts Aug 24, 2023
a1ca2c8
Précision adaptation
Guts Aug 24, 2023
505cf07
Ajout vidéo
Guts Aug 26, 2023
0ae1302
doublon
Guts Aug 26, 2023
2c8d97f
Renomme avec la bonne date
Guts Aug 26, 2023
3d43029
Bump theme version
Guts Aug 26, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
198 changes: 198 additions & 0 deletions content/articles/2023/2023-08-22_geotribu-cli-en-ligne-de-commande.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,198 @@
---
title: Geotribu dans le terminal
subtitle: geotribuGPT
authors:
- Julien Moura
categories:
- article
- meta
date: "2023-08-22 10:20"
description: Consultez Geotribu en ligne de commande
icon: octicons/terminal-24
image:
license: beerware
robots: index, follow
tags:
- cli
- Geotribu
- Python
---

# Le CLI Geotribu : cherchez dans nos contenus et images en ligne de commande

:calendar: Date de publication initiale : 22 août 2023

## Introduction

Que ce soit pour [Isogeo](https://help.isogeo.com/scan/isogeo-scan-offline), en tant qu'indépendant (notamment pour Tactis) et ces derniers mois pour la Géoplateforme de l'IGN ou [QDT](https://github.com/Guts/qgis-deployment-cli/) en tant qu'Oslandien, j'ai eu l'occasion de développer pas mal d'outils en ligne de commande.
Guts marked this conversation as resolved.
Show resolved Hide resolved
Guts marked this conversation as resolved.
Show resolved Hide resolved

Alors pourquoi pas pour Geotribu ? Comme ça je peux expérimenter sans contrainte, proposer un nouveau moyen de consulter les contenus et surtout automatiser certaines tâches plus ou moins récurrentes.
Guts marked this conversation as resolved.
Show resolved Hide resolved

<!-- markdownlint-disable MD040 -->
<!-- termynal -->

```
$ pip install geotribu
---> 100%
Accès au GeoTipi ajouté à votre terminal.
```

<!-- markdownlint-enable MD040 -->

[Commenter cet article :fontawesome-solid-comments:](#__comments){: .md-button }
{: align=middle }

----

## Prérequis et installation

Le plus simple reste avec un terminal où l'interpréteur Python est installé avec le gestionnaire de packages `pip` :
Guts marked this conversation as resolved.
Show resolved Hide resolved

<!-- markdownlint-disable MD046 -->
=== ":fontawesome-brands-linux: Linux et assimilés"

Exemple sur Ubuntu LTS (22.04 à date) :

```sh
python3 -m pip install --user --upgrade geotribu
Guts marked this conversation as resolved.
Show resolved Hide resolved
```

=== ":window: Windows"

Dans une fenêtre PowerShell :

```powershell
py -3 -m pip install --user --upgrade geotribu
Guts marked this conversation as resolved.
Show resolved Hide resolved
```

Si un message d'avertissement comme celui-ci s'affiche :

> WARNING: The scripts qdeploy-toolbelt.exe, qdt.exe and qgis-deployment-toolbelt.exe are installed in 'C:\Users\risor\AppData\Roaming\Python\Python310\Scripts' which is not on PATH.
> Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.

Il s'agit ajouter le chemin vers le dossier des scripts Python à la variable `PATH` qui liste les dossiers contenant des exécutables. Cela se fait toujours avec PowerShell (adapter avec le chemin de votre installation Python) :
Guts marked this conversation as resolved.
Show resolved Hide resolved

```powershell
$Env:PATH += ";$Env:APPDATA\Python\Python310\Scripts"
```
<!-- markdownlint-enable MD046 -->

[Documentation d'installation détaillée :material-book-plus:](https://cli.geotribu.fr/usage/installation.html){: .md-button }
{: align=middle }

### Tester l'installation

![logo console terminal](https://cdn.geotribu.fr/img/logos-icones/divers/ligne_commande.png "logo console terminal"){: .img-rdp-news-thumb }

Comme pour tout autre outil, pour vérifier que l'installation s'est déroulée correctement, il est de bon ton d'exécuter les commandes de base : `--version` et `--help` (sorties non contractuelles :wink:) :

```sh
> geotribu --version
0.15.0
Guts marked this conversation as resolved.
Show resolved Hide resolved
> geotribu --help
USAGE: geotribu [-v] [-h] [--version] {read-latest,récents,latest,rl,rss,search-content,contenus,sc,search-image,images,img,si,upgrade,auto-update,maj,update} ...

Geotribu Toolbelt 0.15.0 - Des outils pour faciliter les tâches récurrentes des contributeur/ices de Geotribu.

OPTIONS:
-v, --verbose Niveau de verbosité : None = WARNING, -v = INFO, -vv = DEBUG. Réglable avec la variable d'environnement GEOTRIBU_LOGS_LEVEL.
-h, --help Affiche l'aide et s'arrête là.
--version Affiche la version du CLI et s'arrête là.

SOUS-COMMANDES:
{read-latest,récents,latest,rl,rss,search-content,contenus,sc,search-image,images,img,si,upgrade,auto-update,maj,update}
read-latest (récents, latest, rl, rss)
Consulter les derniers contenus du site
search-content (contenus, sc)
Rechercher dans les contenus du site
search-image (images, img, si)
Rechercher dans les images de Geotribu
upgrade (auto-update, maj, update)
Mettre à jour Geotribu CLI.

Des outils pour les administrateur/ices, contributeur/ices ou les lecteur/ices de Geotribu.

Développé par Julien Moura (Geotribu)
Documentation : https://cli.geotribu.fr/
```

La plupart des options sont configurables en variable d'environnement :

[Consulter les options de configuration :material-book-cog:](https://cli.geotribu.fr/usage/configuration.html){: .md-button }
{: align=middle }

----

## Utilisation

Cette trousse à outils est destinée à évoluer au gré des besoins et surtout de mon temps disponible ou de celui que des contributeur/ices voudront bien y investir. Le champ fonctionnel n'est donc pas figé et c'est pour cela que la documentation est configurée pour être générée à la volée à partir du code et des commandes/sous-commandes disponibles.
Guts marked this conversation as resolved.
Show resolved Hide resolved
Inutile donc de dupliquer ici avec une obsolescence programmée ce qui est automatiquement à jour ailleurs.

[Voir les exemples :material-book-cog:](https://cli.geotribu.fr/usage/exemples.html){: .md-button }
Guts marked this conversation as resolved.
Show resolved Hide resolved
{: align=middle }

- [x] lister les derniers contenus publiés (à partir du flux RSS) :

```sh
geotribu rss
# en spécifiant le nombre et le type de contenus (article ou rdp)
geotribu rss -f rdp -n 10
```

- [x] chercher dans les articles et revues de presse

```sh
geotribu sc orfeo
# en spécifiant la présence d’un mot dans le titre et lister les 5 premiers résultats
geotribu sc -n 5 "+title:openstreetmap postgis"
Guts marked this conversation as resolved.
Show resolved Hide resolved
```

- [x] ouvrir un contenu (soit dans le terminal, soit dans l'application par défaut)

Après chaque commande de recherche, il est proposé d'ouvrir un contenu parmi les résultats.

```sh
geotribu sc orfeo
# en spécifiant la présence d’un mot dans le titre et lister les 5 premiers résultats
geotribu sc -n 5 "+title:openstreetmap postgis"
```
Guts marked this conversation as resolved.
Show resolved Hide resolved

- [x] chercher une image parmi celles hébergées sur Geotribu

```sh
geotribu si postgis
# uniquement les icônes ou logos
geotribu si postgis -f logo
```

- [x] optimiser une ou plusieurs images pour la publication (dimensions, format, nom...)*

```sh
# depuis un chemin local ou une URL distante
geotribu img optimize {URL_OU_CHEMIN_IMAGE}
# tout un dossier
geotribu images optimize {CHEMIN_VERS_DOSSIER_LOCAL_AVEC_IMAGES_A_OPTIMISER}
```

- [x] lister les derniers commentaires

```sh
geotribu comments latest
```

- [x] poster le dernier commentaire publié sur Mastodon (instance Mapstodon)[^1]

```sh
geotribu comments broadcast -t mastodon
```

----

## Auteur {: data-search-exclude }

--8<-- "content/team/jmou.md"

{% include "licenses/beerware.md" %}

<!-- Notes de bas de page -->
[^1]: commandes nécessitant un jeton d'authentification à l'API
16 changes: 16 additions & 0 deletions content/theme/home.html
Original file line number Diff line number Diff line change
Expand Up @@ -260,6 +260,22 @@ <h5>Newsletter</h5>
</a>


<a class="card-wrapper" href="https://cli.geotribu.fr/" target="_blank">
<div class="card">
<div class="logo">
<span class="twemoji">
{% include ".icons/fontawesome/solid/terminal.svg" %}
</span>
</div>
<div class="card-content">
<h5>CLI</h5>
<p>
Rechercher et consulter les contenus directement depuis votre terminal !
</p>
</div>
</div>
</a>

<a class="card-wrapper" href="https://twitter.com/geotribu/" target="_blank">
<div class="card">
<div class="logo">
Expand Down
1 change: 1 addition & 0 deletions mkdocs-free.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ plugins:
- tags:
enabled: !ENV [MKDOCS_ENABLE_PLUGIN_TAGS, true]
tags_file: tags.md
- termynal

# Theme
theme:
Expand Down
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ plugins:
tags_file: tags.md
tags_compare: !!python/name:material.plugins.tags.casefold
tags_pages_compare: !!python/name:material.plugins.tags.page_url
- termynal
- privacy:
enabled: !ENV [MKDOCS_ENABLE_PLUGIN_PRIVACY, true]
assets_fetch_dir:
Expand Down
1 change: 1 addition & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ mkdocs-macros-plugin>=0.5,<1.1
mkdocs-minify-plugin<0.8
mkdocs-redirects<1.3
mkdocs-rss-plugin>=1.4,<1.9
termynal>=0.10,<1

# social plugin requirements
CairoSVG>=2.5,<3
Expand Down
Loading