Skip to content

Commit

Permalink
Article : QChat (#1212)
Browse files Browse the repository at this point in the history
  • Loading branch information
gounux authored Oct 17, 2024
2 parents 27d503b + 742145f commit 95514e3
Showing 1 changed file with 154 additions and 0 deletions.
154 changes: 154 additions & 0 deletions content/articles/2024/2024-10-15_qchat.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
---
title: "QChat"
subtitle: "#GISChat dans QGIS"
authors:
- Guilhem ALLAMAN
- Julien MOURA
- Florian BORET
categories:
- article
comments: true
date: 2024-10-15
description: "Tchatter en direct avec ses confrères et consœurs, à l'intérieur même de QGIS avec QChat"
icon: material/chat
image:
license: beerware
robots: index, follow
tags:
- communauté
- GISchat
- GISTribe
- QChat
- QGIS
- QTribu
- websocket

---

# QChat : un tchat dans QGIS

:calendar: Date de publication initiale : {{ page.meta.date | date_localized }}

Nous sommes en 2024 (enfin, sauf si vous lisez cet article en 2025, ou en 2026, ou en 2027, ou en 2028, ou en encore 2029... enfin bon vous voyez le truc), et il faut avouer que Teams c'est un peu dépassé... En plus c'est même pas possible d'y balancer le hashtag #GISchat, c'est même pas possible d'y rencontrer d'autres sigistes, c'est même pas possible d'y gagner des stickers Geotribu :wink:... Nan mais franchement... Nan mais allô quoi...

~~C'est le moment de faire du shadow IT.~~

Pour remédier à ceci, voici donc une messagerie instantanée directement dans QGIS, un tchat pour discuter et échanger avec ses pair/e/s directement dans le logiciel SIG bureautique le plus stylay et qui représente l'avenir. `QChat` : c'est son petit nom. Alors la question c'est : pourquoi ? Et la réponse : et pourquoi pas ?

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

----

## Installation

QChat est une fonctionnalité du plugin `QTribu`, le plugin de Geotribu, [qui permet d'ailleurs d'accéder et de contribuer aux contenus du site directement depuis QGIS](./2024-09-03_nouvelle-fenetre-qtribu.md).

Ce plugin est [disponible sur le dépôt officiel](https://plugins.qgis.org/plugins/qtribu). QChat est disponible à partir de la v1 du plugin, que vous pouvez installer via le gestionnaire des extensions de QGIS :

![QGIS - Gestionnaire des extensions QGIS pour l'installation du plugin QTribu](https://cdn.geotribu.fr/img/articles-blog-rdp/articles/2024/qchat/qtribu_install.webp){: .img-center loading=lazy }

### :penguin: Dépendances additionnelles requises sur Linux

![logo WebSocket](https://cdn.geotribu.fr/img/logos-icones/divers/websocket.png){: .img-thumbnail-left }

L'échange de messages de QChat repose sur [le protocole WebSocket](https://fr.wikipedia.org/wiki/WebSocket) (rappelez-vous, [on vous en parlait dès 2013](../2013/2013-02-25_websocket.md "Du web, des socquettes et de la carto")), via des composants du cadriciel Qt sur lequel repose principalement QGIS. Ces composants optionnels sont intégrés dans les versions Windows de QGIS mais nécessitent d'être installés expressément sur Linux. Par exemple sur Ubuntu (22.04) :

```sh title="Commande apt pour installer les dépendances Qt additionnelles sur Debian/Ubuntu"
sudo apt install python3-pyqt5.qtmultimedia python3-pyqt5.qtwebengine python3-pyqt5.qtwebsockets
```

Si ces dépendances ne sont pas installées, QChat est désactivé dans le plugin et un message d'erreur vous renvoie vers [la documentation d'installation](https://qtribu.geotribu.fr/installation.html#linux).

----

## Paramétrage

Une fois le plugin installé, avant de pouvoir tchatter avec les autres, il est nécessaire de configurer 2-3 trucs, dans les paramètres du plugin, un onglet dans les paramètres généraux de QGIS (menu `Préférences` > `Options...`)

![Écran des paramètres du plugin QTribu](https://cdn.geotribu.fr/img/articles-blog-rdp/articles/2024/qchat/qtribu_settings_full.webp){: .img-center loading=lazy }

!!! tip "Trop bien ces paramètres de plugin !"
Trop bien ces paramètres de plugin ! Mais comment on fait ? Vous pouvez jeter un coup d'oeil au [templater de plugins QGIS](https://oslandia.gitlab.io/qgis/template-qgis-plugin/index.html), qui peut directement générer un squelette de plugin avec un onglet Paramètres, entre autres... :wink:

Jetons à présent un coup d':eyes: à ces différents paramètres, en commençant par la partie `Informations d'attribution` en bas:

![Écran de paramétrage QChat du plugin QTribu](https://cdn.geotribu.fr/img/articles-blog-rdp/articles/2024/qchat/qchat_settings_nickname.webp){: .img-center loading=lazy }

- le `Pseudo QChat` correspond à votre pseudo qui indiquera aux autres _QChattos_ qui a envoyé le message. Entre 3 et 32 caractères alphanumériques, c'est l'occasion de se lâcher (pour info, `xX_D4rth_L4mb3rt_Xx` et `B3rt1n_Le_ouf_du_78` sont déjà pris)

- l'`Avatar QChat` correspond à l'[icône symbolique](../2023/2023-04-23_pyqgis-resource-browser-icones-qgis-plugin.md) que vous incarnerez dans le tchat. Il est possible de choisir sa fav' parmi les icônes les plus fancy de QGIS, et à côté de chaque message que vous envoyez sera affiché cet avatar

Passons à présent aux paramètres dans la partie `QChat` :

![Écran de paramétrage QChat du plugin QTribu](https://cdn.geotribu.fr/img/articles-blog-rdp/articles/2024/qchat/qchat_settings.webp){: .img-center loading=lazy }

- l'`URL de l'instance` indique sur quelle instance de QChat vous souhaitez vous connecter (les règles de l'instance sont consultables via le bouton `Règles de l'instance`). À date il y a 2 instances disponibles :
- `gischat.geotribu.net` : instance QChat de Geotribu anglophone, pour tout le monde
- `gischat.geotribu.fr` : instance QChat de Geotribu francophone, pour tout le monde aussi

- la case `Montrer les avatars` permet d'afficher ou non les avatars des QChattos à côté des messages
- la case `Afficher les messages d'admin` activera ou non l'affichage des messages d'admin: connexions, déconnexions...
- la case `Activer les cheatcodes`... :wink: :stuck_out_tongue_winking_eye:
- la case `Jouer des sons` activera la lecture d'un son lorsque vous êtes mentionné/e/s par un autre QChattos. Si la case est cochée, vous pouvez régler le volume ainsi que le son de notification
- les 3 paramètres de couleur permettent de customiser colorimétriquement les messages du tchat

## C'est parti : tchattons

Le QChat est inclus dans un [dock widget](https://doc.qt.io/qtforpython-5/PySide2/QtWidgets/QDockWidget.html), c'est-à-dire un "panneau" QGIS que vous pouvez déplacer et accrocher à votre guise, et qui vous permettra de tchatter en parallèle de ce que vous avez l'habitude de réaliser dans QGIS. Pour l'ouvrir, deux manières possibles :

- en allant dans le menu `Internet` > `QTribu` > `QChat`
- en cliquant sur la deuxième icône, en forme de bulle, dans la barre d'outils :

![barre d'outils du plugin QTribu avec l'icône QChat](https://cdn.geotribu.fr/img/articles-blog-rdp/articles/2024/qchat/qchat_icons.png){: .img-center loading=lazy }

Et voici le QChat qui s'ouvre :tada: :

![Écran de QGIS avec le panneau QChat à droite](https://cdn.geotribu.fr/img/articles-blog-rdp/articles/2024/qchat/qchat_qgis.webp){: .img-center loading=lazy }

!!! info
P.S. : big-up au [tutoqgis.cnrs.fr](https://tutoqgis.cnrs.fr/)

Dans la partie `Instance` en haut, vous pouvez retrouver les règles de l'instance configurée dans les paramètres, de même que le nombre de QChattos dans chaque "room" via le bouton `Statut`.

Nous ne sommes pas encore connectés à une room pour tchatter. Pour cela, il faudra en choisir une dans la liste déroulante, ce qui vous y connectera automatiquement. Une fois connecté/e, c'est parti pour tchatter ! Les messages des autres QChattos apparaissent au milieu :

![Écran de QGIS avec des messages envoyés dans le QChat](https://cdn.geotribu.fr/img/articles-blog-rdp/articles/2024/qchat/qchat_messages.webp)

À noter que :

- insérer `@all` dans votre message enverra une notification dans la barre des messages QGIS de tous les QChattos connectés à la room
- double-cliquer sur un message dans le QChat vous permettra de mentionner le QChattos qui a envoyé le message

## Pour aller plus loin

Nous avons vu la partie client QChat dans QGIS. Pour aiguiller et faire transiter les messages au travers de websockets, il y a aussi un backend dont [le dépôt GitHub se trouve ici](https://github.com/geotribu/gischat).

### Monter sa propre instance

Si jamais vous souhaitez monter votre propre instance de backend QChat/GISchat, vous pouvez [suivre les instructions sur le dépôt](https://github.com/geotribu/gischat#deploy-a-self-hosted-instance). Pas de base de données, simplement des websockets _stateless_. Il s'agit d'une [simple image docker](https://hub.docker.com/r/gounux/gischat) à faire tourner avec quelques variables d'environnement.

Il existe également [un annuaire des instances QChat](https://github.com/geotribu/gischat/blob/main/instances.json), auquel il ne faut pas hésiter à contribuer dans le cas où vous avez monté votre instance, pour la rendre visible et disponible : le bouton `Découvrir les instances` dans les paramètres du plugin affiche cet annuaire via un popup QGIS.

### Développer un client compatible QChat

Si jamais vous souhaitez développer un client compatible QChat, il est possible de se référer [à la "doc" sur le dépôt GitHub](https://github.com/geotribu/gischat#developer-information).

Les messages transitent par websocket, et il y a [quelques routes](https://gischat.geotribu.net/docs) disponibles pour :

- récupérer les règles de l'instance
- récupérer les noms des rooms
- récupérer le nombre de websockets ouvertes par room
- envoyer un message dans une room via une requête POST

Et plein d'autres trucs prochainement :wink:

## Conclusion

QChat, c'est un peu comme avoir un café virtuel au coin de votre bureau, où les discussions techniques se mêlent aux blagues de géographes (vous savez, celles qui font rire uniquement les initiés). Alors, pourquoi ne pas installer QChat dès aujourd'hui et transformer votre expérience QGIS en une aventure collaborative et amusante ? Après tout, qui a dit que la cartographie devait être ennuyeuse ? Avec QChat, chaque carte devient une histoire partagée, et chaque projet, une occasion de rire ensemble. Alors, prêts à cartographier et à papoter ?

----

<!-- geotribu:authors-block -->

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

0 comments on commit 95514e3

Please sign in to comment.