Qu’est-ce que Labeler ?
Labeler est un service qui applique des labels à du contenu sur AT Protocol (Bluesky). Il peut servir à la modération, à la classification de contenu, au filtrage personnalisé, etc. Il est indispensable de comprendre au préalable le concept de Labeler. Les starter kits pour d’autres langages sont également des références utiles. Implémentations d’exemple :Préparation
Pour faire fonctionner Labeler, il vous faut :- Un nouveau compte Bluesky dédié à Labeler (n’utilisez pas votre compte habituel)
- Un nouveau projet Laravel dédié à Labeler (il est recommandé de séparer les projets)
- Un (sous-)domaine
- Un serveur Linux de production tel qu’un VPS ou une instance AWS EC2 (Laravel Cloud, Laravel Vapor et Vercel ne conviennent pas)
Si vous n’avez accès qu’à un hébergement mutualisé, l’exploitation de Labeler est difficile.
Installation de packages supplémentaires
Configuration
Commencez par générer une clé privée..env la clé privée générée et les valeurs de configuration associées.
Création de la classe Labeler
Créez votre classe Labeler en étendantAbstractLabeler. Vous pouvez placer le fichier où vous le souhaitez.
Implémentation d’exemple : ArtisanLabeler.php
labels()
Renvoie la définition des labels. Les constantes du starter kit skyware sont une bonne référence.subscribeLabels()
Appelée immédiatement après la connexion WebSocket. RenvoieSubscribeLabelResponse sous forme d’itérateur.
emitEvent()
Appelée lorsqu’une requête d’ajout ou de retrait de label est reçue. RenvoieUnsignedLabel sous forme d’itérateur.
saveLabel()
Enregistre le label signé en base de données. Renvoie unSavedLabel.
createReport()
Appelée lorsqu’un utilisateur envoie un appel (appeal) ou similaire.queryLabels()
Interroge les labels via l’API HTTP plutôt que via WebSocket. Non utilisée officiellement par Bluesky ; elle sert à des tiers. Renvoyez un tableau vide si vous n’en avez pas besoin.Enregistrement dans AppServiceProvider
Enregistrez la classe Labeler créée dansAppServiceProvider::boot().
Configuration du compte
Initialisez le compte en tant que Labeler.Déclaration des définitions de labels
Enregistrez les définitions de labels sur le compte Labeler.Autres commandes
Suppression des définitions de labels :Exécution sur Laravel Forge
Après avoir activé SSL, démarrez le serveur Labeler avec la configuration suivante.Configuration nginx
Ajoutez 3 blocslocation à la configuration nginx de Forge.
Script de déploiement
Arrêtez le serveur Labeler lors du déploiement. Supervisor le redémarrera automatiquement.Configuration du processus d’arrière-plan (daemon)
Sur l’écran de configuration des processus d’arrière-plan de Forge, choisissez l’onglet Custom et non Queue Worker. Commande :bluesky:ws ou bluesky:firehose.
Ajout de labels
La manière d’appliquer un label dépend de l’implémentation de votre application. L’exemple utilise le système d’événements Laravel pour appliquer un label « lorsqu’un follow est reçu ».Source : docs/labeler.md
Exemple : invokable/laralabeler