Cos’è Labeler
Labeler è un servizio che applica etichette (label) ai contenuti su AT Protocol (Bluesky). Si può usare per moderazione, classificazione dei contenuti, filtri personalizzati e altro. È necessario comprendere in anticipo il concetto di Labeler. Anche gli starter kit per altri linguaggi sono un utile riferimento. Implementazione di esempio:Preparazione
Per far funzionare Labeler ti serve quanto segue.- Un nuovo account Bluesky dedicato al Labeler (non usare l’account personale che usi abitualmente)
- Un nuovo progetto Laravel dedicato al Labeler (è consigliato tenere i progetti separati)
- Un (sotto)dominio
- Un server Linux di produzione, come VPS o AWS EC2 (Laravel Cloud, Laravel Vapor e Vercel non sono utilizzabili)
Se puoi usare solo hosting condiviso, gestire un Labeler è difficile.
Installazione di pacchetti aggiuntivi
Configurazione
Per prima cosa genera la chiave privata..env.
Creazione della classe Labeler
Crea una classe Labeler personalizzata che estendeAbstractLabeler. Il file puoi collocarlo dove preferisci.
Implementazione di esempio: ArtisanLabeler.php
labels()
Restituisce le definizioni delle label. Le costanti definite nello starter kit skyware sono un buon riferimento.subscribeLabels()
Viene chiamato subito dopo la connessione WebSocket. RestituisciSubscribeLabelResponse come iterator.
emitEvent()
Viene chiamato quando arriva una richiesta di aggiunta o rimozione di una label. RestituisciUnsignedLabel come iterator.
saveLabel()
Salva la label firmata nel database. Restituisce unSavedLabel.
createReport()
Viene chiamato quando arriva un ricorso o simile da un utente.queryLabels()
Query delle label via API HTTP al posto del WebSocket. Non è usato da Bluesky ufficiale ma da terze parti. Se non ti serve, restituisci un array vuoto.Registrazione in AppServiceProvider
Registra la classe Labeler creata inAppServiceProvider::boot().
Setup dell’account
Inizializza l’account come Labeler.Dichiarazione delle definizioni di label
Registra le definizioni di label sull’account Labeler.Altri comandi
Eliminazione delle definizioni di label:Esecuzione su Laravel Forge
Dopo aver abilitato SSL, avvia il server Labeler con la seguente configurazione.Configurazione nginx
Aggiungi 3 blocchilocation alla configurazione nginx di Forge.
Script di deploy
Al deploy ferma il server Labeler. Dopo lo stop, Supervisor lo riavvierà automaticamente.Configurazione del processo in background (daemon)
Nella schermata di configurazione dei background process di Forge, seleziona la scheda Custom invece di Queue Worker. Comando:bluesky:ws o bluesky:firehose.
Aggiunta di label
Come applichi le label dipende dall’implementazione della tua applicazione. Nell’esempio, usando il sistema di eventi di Laravel, viene applicata una label “quando ricevi un follow”.Source: docs/labeler.md
Sample: invokable/laralabeler