Ohvězdičkuj to a zveřejní se to
Komentáře pod těmihle příspěvky jsou odpovědi na toot. To byl celý systém od začátku a jeho jediné slabé místo bylo vždy to, že je to všechno, nebo nic: objeví se každá odpověď, nebo jsou komentáře vypnuté.
comments.approval: fav je třetí odpověď. Odpověď se pod článkem objeví, jakmile ji označím jako oblíbenou, z kteréhokoli klienta, který mám zrovna otevřený.
Žádná fronta, žádný panel
To je smysl toho dělat to takhle. Moderační fronta je druhé rozhraní, s druhým přihlášením, kam chodíš zvlášť – což znamená, že tam chodíš pozdě, nebo vůbec. Tady je rozhraním aplikace, ve které komentáře už bydlí. Odpověď čtu tam, kde bych ji četl tak jako tak, a schválení je jedno ťuknutí na témže místě.
Dvě pravidla drží výsledek čitelný, ne jen přefiltrovaný. Moje vlastní odpovědi hvězdičku nepotřebují, protože nikdo si nehvězdičkuje sám sebe a polovina každé výměny by jinak zmizela. A odpověď se ukáže, jen když se ukáže i všechno mezi ní a oznámením – schválená odpověď na zamítnutý komentář neodpovídá na nic.
Co to stojí, a ty ceny jsou skutečné
Oblíbení je veřejné. Na obou sítích. Schválit znamená v očích každého, kdo se podívá, i podpořit, a každá hvězdička rozdaná za ta léta je zpětně schválení. Soukromý signál – záložky – by to nenesl a je to zjevný druhý režim, kdyby tenhle dřel.
Ve chvíli, kdy to zapneš, zmizí každý komentář na webu. Moderace zveřejňuje to, co bylo ohvězdičkováno, a v tu chvíli to není nic. Web s roky odpovědí ztichne v jednom sestavení. Naplánuj přepnutí na hodinu, kdy můžeš jít a ohvězdičkovat ty, které stojí za ponechání, a spusť potom ./scripts/refresh-sidebar.sh --full, aby se staré příspěvky usadily hned, ne během týdne.
Schválení není okamžité. Až jeden interval cronu – a až týden pod příspěvkem starším než asi tři měsíce, protože staré příspěvky se obnovují jen občas. „Oblíbil jsem tohle já?" je otázka, kterou může položit jen ověřený požadavek, a token se do prohlížeče poslat nedá, takže cron přečte vlákno a zapíše odpověď; stránka se vykreslí z ní. ./scripts/refresh-sidebar.sh --full to udělá teď místo časem.
Dělá jeden starší slib na tomto webu podmíněným. Je tu příspěvek, který říká, že neexistuje databáze komentářů – nic k migraci, k zálohování ani k moderování ve dvě ráno. Se zapnutým schvalováním z toho platí jen poslední třetina. Co bylo ohvězdičkováno, se zapisuje do souboru, který stránky čtou, přepisovaného ze zdroje při každém běhu cronu, bez rozhraní, které by ho kdekoli mohlo upravit: spíš cache než databáze, ale přesto cizí slova na mém disku.
A něčí smazání tu může přežít samo sebe. Odpověď smazaná u zdroje opouští tento web v rytmu obnovovacího cronu, ne okamžitě – pod starým příspěvkem až o týden později. --full to usadí hned, ale zpoždění je součást ceny, ne nastavení, a je to ta část, kterou platí někdo jiný než já.
Drží odpovědi mimo blog, ne mimo síť. Vlákno zůstává veřejné a tento web na něj dál odkazuje. Blokování, ztlumení a nahlášení zůstávají nástroji pro zbytek.
Vedlejší účinek, o který nikdo nežádá
Když je vlákno už přečtené na serveru, prohlížeč návštěvníka přestane síť kontaktovat úplně – a politika zabezpečení obsahu stránky s tím zahodí i své povolení pro instanci. Živé vlákno bylo jedinou výjimkou na straně klienta z pravidla žádné požadavky třetím stranám z prohlížeče návštěvníka. Moderované vlákno není živé, takže výjimka s ním zaniká.
Avatary pořád přicházejí z instance, která je hostí. Všechno ostatní přichází z této domény.
Zapnutí
comments:
approval: fav # nebo "off" (výchozí)
Tři věci musí platit a ./blog.sh doctor --online to řekne, když neplatí: cron postranního panelu musí běžet, token Mastodonu potřebuje vedle write:statuses i read:statuses – token bez něj dostane naprosto dobrou odpověď s vynechaným polem favourited, což se čte jako „neschváleno nic" – a musíš jít a ohvězdičkovat ty, které stojí za ponechání. Na Bluesky stačí heslo aplikace, které už máš.
