Skip to content
Extraits de code Groupes Projets
Nom Dernière validation Dernière mise à jour
packs
screenshots
.gitignore
README.md
matrixpack.sh
stpkg

Matrix Stickers

Matrix room Prévisualiser tous les stickers

Table des matières

Utiliser le stickerpicker d'un ami

Si vous avez des amis ayant déjà leur propre stickerpicker, il est possible de le réutiliser.

  1. Demandez-lui l'autorisation (ou non)
  2. Récupérez l'adresse sur laquelle il héberge ses stickers. Cette adresse est généralement de la forme : https://nom.iiens.net/stickerpicker/web/
  3. Sur Element, utilisez la commande /devtools dans n'importe quel salon

devtools

  1. Cliquez sur Explorer les données du compte puis sur m.widgets - Si m.widgets est absent :
    1. Activer le gestionnaire d'intégration : Tous les paramètres -> Général -> Gérer les intégrations
    2. Envoyer un sticker quelconque

devtools1

  1. Cliquez sur Modifier et remplacez tout par le code qui suit - Pensez à modifier les champs url et sender (remplacer les données entre {%%})
  2. Relancez le client
{
  "stickerpicker": {
    "content": {
      "type": "m.stickerpicker",
      "url": "https://{% nom de domaine %}/stickerpicker/web/",
      "name": "Stickerpicker",
      "data": {}
    },
    "sender": "@{% id %}:{% homeserver %}",
    "state_key": "stickerpicker",
    "type": "m.widget",
    "id": "stickerpicker"
  }
}

Installation

Le stickerpicker de base fournit par Element ne permet pas d'utiliser des stickers personnalisés. Il faut donc installer notre propre stickerpicker qui pourra les utiliser.

Il y a deux installations possibles :

  • cloner ce dépôt sur un de vos ordinateurs, et héberger les fichiers sur votre perso (ou une autre machine)
  • cloner ce dépôt sur votre perso (ou une autre machine) et héberger les fichiers sur cette même machine

Ce README couvre une installation basique. Les paramètres peuvent évidemment être ajustés selon vos désirs et besoins.

Note : Dans le tutoriel, le stickerpicker est nommé 'stickerpicker'

Installation sur un de vos ordinateurs (avec hébergement sur une machine distante, par exemple perso)

Dans cette situation, le dépôt est présent sur votre ordinateur, et les stickers sur une machine distante (par exemple perso).

git clone https://git.iiens.net/Elliu/matrix-stickers.git
cd matrix-stickers
./stpkg -install -sshfs identifiantArise@perso3.iiens.net -local ~/mnt/perso

Installation et hébergement sur une machine distante (par exemple perso)

Dans cette situation, le dépôt et les stickers sont sur une machine distante (par exemple perso).

ssh identifiantArise@perso3.iiens.net
git clone https://git.iiens.net/Elliu/matrix-stickers.git
cd matrix-stickers
./stpkg -install ~/html/stickerpicker

Configuration

Vous devez dans les deux cas configurer le fichier ~/.config/stpkg.sh en renseignant le serveur d'accueil.

Vous pouvez aussi y définir le jeton d'accès Matrix, mais s'agissant d'une donnée sensible de votre compte à ne pas faire fuiter, il est préférable de ne pas le définir dans ce fichier sur une machine partagée (typiquement perso), mais plutôt le saisir uniquement lorsqu'une commande le demande.

Le jeton d'accès de son compte est récupérable en allant dans Tous les paramètres -> Aide & À propos -> Avancé -> Jeton d'accès.

Utiliser un pack de sticker

Dans le dossier packs de ce dépôt sont regroupés tous les packs de stickers créés ou compilés par des IIEns.

La sélection des packs que vous voulez utiliser nécessite d'héberger soi-même son propre stickerpicker (sinon, vous êtes limités aux choix de la personne qui l'héberge).

Plus d'informations dans le dossier en question.

Créer des packs de stickers

Un pack de stickers se résume à un fichier .json contenant des informations sur des images téléversées sur un serveur Matrix. Il existe deux méthodes pour le faire.

Avant de commencer, deux points pour les utilisateurs Arise :

  • Il est conseillé de créer un compte secondaire sur matrix.org pour créer les packs de stickers. Arise peut libérer de la place aléatoirement quand c'est nécessaire, et les stickers risquent d'être perdus. L'endroit d'hébergement n'influe pas sur l'utilisation des stickers, et ceux-ci peuvent donc être hébergés sur n'importe quel homeserver.
  • Il est déconseillé de générer les packs sur perso.iiens.net, car le paquet "ImageMagick" n'est pas à jour (impossible de le mettre à jour), et casse la transparence de vos images. Préférez le faire sur votre machine, ou bien recompilez le paquet à la main.

Méthode automatique via stpkg (À privilégier)

Requis : ImageMagick (en tant que root : apt install imagemagick / pacman -S imagemagick)

Ce script suppose que vous avez déjà créé le/les dossiers regroupant les images que vous souhaitez utiliser.

  1. Ajouter stpkg à son PATH (export PATH=$PATH:~/matrix-stickers)
  2. Se connecter à Element, et récupérer le jeton d'accès de son compte en allant dans Tous les paramètres -> Aide & À propos -> Avancé -> Jeton d'accès
  3. Utiliser la commande stpkg pack [nomdupack] folder
# En stockant l'access token dans une variable de votre shell
read ACCESS_TOKEN # coller l'acces token puis faire "entrer"
stpkg pack -t $ACCESS_TOKEN [name] <directory> # si [name] n'est pas fourni, le nom du pack sera le nom du dossier par défaut

# Sans stocker l'access token dans une variable de votre shell (car déja fourni dans votre config)
stpkg pack [name] <directory>
  1. Activer le pack créé avec la commande stpkg add <nom du pack>

Le script stpkg va créer un sous-dossier "nomdupack" dans le dossier packs du dépôt contenant trois fichiers :

  • <nomdupack>.json : le .json des stickers téléversés, rognés, de taille 128x128, sans palette indexée (qui casse la transparence)
  • .<nomdupack>.checksums : permet à stpkg de faire la différence si on souhaite ajouter / supprimer des stickers

Méthode intermédiaire (Dépréciée)

En utilisant le matrixpack.sh <token> <homeserver> <directory>.

Méthode manuelle (À éviter)

  1. Téléverser une image dans un salon non chiffré
  2. Commencer votre fichier .json de cette façon :
{
  "title": "{% titre du pack %}",
  "id": "{% ce que vous voulez, uuidgen est votre ami %}",
  "stickers": [
    ...
  ]
}
  1. Cliquer sur les du message puis Voir source, pour copier la section content de cette source
  2. Le bloc de JSON doit ressembler à ceci, avec le id et le msgtype modifié par vos soins
{
  "body": "image.png", // vous pouvez changer cette valeur
  "info": {
    "mimetype": "image/png", // dépend du type d'image envoyée
    "w": 498, // vous pouvez changer cette valeur
    "h": 498, // vous pouvez changer cette valeur
    "thumbnail_url": <un path mxc://> // auto-généré
  },
  "msgtype": "m.image", // à remplacer en "m.sticker"
  "url": <un path mxc://>, // auto-généré
  "id": "une valeur à définir par vous même" // à définir par vous-même
}
  1. Coller ce bloc JSON dans la liste stickers du .json de l'étape 2
  2. Répéter jusqu'à avoir tous les stickers voulu dans le pack
  3. Ajouter le .json à index.json

Contribuer

Vous pouvez maintenant faire un commit avec ces nouveaux fichiers, et une merge request pour contribuer au dépôt !

Pensez à demander l'accès à un fork déjà existant, plutôt que de créer le votre, pour économiser de la place (les disques, c'est pas gratuit).

Utilisation de stpkg

La commande stpkg a besoin des executables egrep (ou grep si indisponible), sponge et jq. Il faut donc les installer ou les recompiler sur votre machine (apt install moreutils jq grep).

Utilisation basique

Après avoir utilisé stpkg -install, vous pouvez placer le script stpkg dans votre path ou créer un alias pour l'exécuter facilement.

Les commandes de stpkg :

  • stpkg -install [-sshfs user@server -local mnt_local] [folder]
  • stpkg update
  • stpkg list [-e -p -np] [regex bash]
  • stpkg add <pack>
  • stpkg del <pack>
  • stpkg pack [-t token] [name] <folder>

Au moment de l'installation stpkg a créé un fichier ~/.config/stpkg.sh qui sera sourcé à chaque lancement de stpkg. Il contient les variables utilisées, vous pouvez les modifier selon vos envies.