Ohvězdičkuj to a zveřejní se to

Díl 3 ze 9 — ./blog.sh v1.3

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 ?" 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áš.