Openbook 26.36 — Grumpy Waffle
Come ormai da tradizione, il venerdì sta diventando il giorno dei rilasci. Oggi si conclude anche la lunga strada di fix e implementazioni di questa nuova stable per il progetto Openbook, la 26.36 — Grumpy Waffle.
https://about.openb.app/getting-started.php
Ecco le nuove funzionalità aggiunte:
- Notifiche Web Push per browser desktop e mobile, attivabili per ogni
dispositivo da Impostazioni account. Una coppia VAPID per istanza e le
subscription cifrate alimentano un'outbox dedicata; il poller la sopprime
quando l'utente e' attivo, altrimentiopenbook:cronconsegna dopo 75
secondi con testo localizzato e icona dell'istanza. Consegna best effort
senza retry, pulizia automatica degli endpoint scaduti e click sulla
notifica verso/notifichetramite service worker. - Menu condividi del post: voce Condividi a utente
(GET /posts/{post}/condividi-a-utente). Apre i messaggi privati con il
post gia' citato: scegli il destinatario e invia (commento opzionale).
La citazione riusaposts.quoted_post_idcome le quote pubbliche, senza
incrementare il contatore di condivisione ne' notificare l'autore originale. - Condividi a utente anche sui profili (icona accanto al messaggio
privato):GET /@{user}/condividi-a-utenteeGET /attori/{actor}/condividi-a-utente. Il messaggio cita il profilo
(posts.quoted_actor_id) con link alla pagina Openbook locale
(/@usernameo/attori/{id}), non all'URI ActivityPub originale, cosi'
il destinatario puo' seguire da questa istanza. - Pannello di controllo, impostazioni istanza: upload della favicon
del sito. Da un'unica immagine (consigliato quadrato 512×512) vengono
generate la favicon 32×32, l'Apple Touch Icon 180×180 (iOS) e le icone
Android 192/512 (anche maskable) per «Aggiungi alla schermata Home»,
piu' un web app manifest inGET /manifest.webmanifest. - Profili remoti (
GET /attori/{actor}): follower e seguiti usano i
conteggitotalItemsdelle collection ActivityPub del server di origine,
con cache di 24 ore (OPENBOOK_COLLECTIONS_CACHE_TTL_HOURS). La data di
iscrizione arriva dal campopublisheddel documento Person (o equivalenti
JSON-LD /createdAt). Visitando il profilo si rilegge l'Actor se la data
non e' ancora in cache. Si conserva anche un campione della prima pagina
della lista (non l'intero grafo, e non nel grafo localefollows). - Pannello di controllo, sezione Aspetto (
GET /admin/aspetto): CSS
personalizzato che sovrascrive il template sul sito pubblico (non sul
pannello). Anteprima live in iframe su una pagina di esempio
(GET /admin/aspetto/anteprima); il sito reale cambia solo al salvataggio. - Impostazioni istanza: finestra in giorni per gli hashtag in tendenza
(sidebar eGET /tendenze, default 7). I conteggi oltre 999 si mostrano
in forma compatta (19,6kin italiano,19.6kin inglese). - Cliccando il numero di Mi piace o Condivisioni di un post si apre
un dropdown con chi ha reagito (GET /posts/{post}/piace-aeGET /posts/{post}/condiviso-da). L'icona continua a mettere mi piace o
ad aprire il menu condividi. Senza JavaScript le stesse URL mostrano una
pagina con l'elenco. Massimo 40 nomi, poi "e altri N". La visibilita'
e' la stessa del post. - Post remoti: i contatori Mi piace e Condivisioni sulle card
usano itotalItemsdelle collectionlikes/sharesdel server di
origine (stesso GET della Note usato per i commenti, TTLOPENBOOK_REPLIES_CACHE_TTL_HOURS). Se il totale non e' inline, al
massimo un GET in piu' per collection, senza scaricare l'elenco
completo. Il conteggio locale resta un pavimento. I totali arrivano
anche dall'outbox quando si importa il post. - Tab Attività sui profili Person (
GET /@{username}/attivitaeGET /attori/{actor}/attivita): stream cronologico di commenti
(risposte) e condivisioni visibili a questa istanza, solo per
utenti autenticati. I visitatori anonimi non vedono il tab e/attivitareindirizza al login. I mi piace, i post propri e i follow
non compaiono: i post restano nel tab dedicato. Scorrimento infinito
(OPENBOOK_ACTIVITY_PER_PAGE, default 20). Sui profili remoti la
cronologia e' solo cio' che l'istanza gia' conosce (non l'outbox
completo). Community e feed RSS non hanno il tab. - Menu del post: voce Modifica per i propri post locali pubblicati
(non i messaggi privati). Apre lo stesso composer della pubblicazione,
in un dialog se JavaScript e' disponibile (GET /posts/{post}/modifica
come fallback senza JS). Il salvataggio (PUT /posts/{post}) aggiorna
testo, titolo, avviso e visibilita', consente di aggiungere allegati,
e ritrasmette un'attivita' ActivityPubUpdatealla stessa audience.
Per tutto il resto dei dettagli su cambiamenti e bugfix, si rimanda come sempre al changelog di questa versione.