Moderacja wyrazow: slownik i wstrzymywanie wiadomosci do akceptacji
Deploy PROD / deploy (push) Successful in 33s
Deploy PROD / deploy (push) Successful in 33s
Wiadomosc czatu i pytanie uczestnika przechodza przez slownik przed publikacja. Trafienie wstrzymuje je (status NEW, moderation_hit), widzi je tylko panel prowadzenia z przyciskami Opublikuj / Odrzuc, a autor dostaje informacje, ze wiadomosc czeka. Wiadomosci prowadzacych nie sa filtrowane. Normalizacja rozpoznaje ogonki, wielkie litery, cyfry zamiast liter, powtorzenia i rozstrzelenia. Slownik startowy w V31: wulgaryzmy, obelgi, tresci zwiazane z pedofilia. WordFilterTest czyta slownik z migracji i sprawdza obie strony, takze slownictwo wodociagowe. Ekran "Moderacja wyrazow" w menu: lista z wyszukiwaniem i kategoriami, dodawanie, edycja, wylaczanie, usuwanie z potwierdzeniem, sprawdzanie tekstu. Dostep ADMIN i MODERATOR. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1683,6 +1683,32 @@ Tabela `speak_requests` (V17), kolejka w panelu prowadzenia, temat WebSocket
|
||||
czekajacy piec minut widzi, jak mowi ktos zgloszony przed chwila.
|
||||
- Pilnuje tego `SpeakRequestTest`, w tym dziesiec rownoczesnych zgloszen.
|
||||
|
||||
### Moderacja wyrazow
|
||||
|
||||
Tabela `moderation_words` (V31), ekran `/moderacja-wyrazow`, endpointy
|
||||
`/admin/moderation-words/**`, filtr `WordFilter`.
|
||||
|
||||
- **Trafienie WSTRZYMUJE, nigdy nie kasuje.** Wiadomosc czatu albo pytanie
|
||||
uczestnika z trafieniem dostaje status NEW i `moderation_hit`, widzi je tylko
|
||||
panel prowadzenia, a prowadzacy publikuje albo odrzuca. Lista slow nie rozumie
|
||||
kontekstu, wiec falszywe trafienie ma kosztowac jedno klikniecie.
|
||||
- **Filtr dziala na serwerze, przed publikacja** (`InteractionService.postChat`
|
||||
i `postQuestion`). Wiadomosci prowadzacych nie sa filtrowane.
|
||||
- **Wiadomosc i wpis przechodza przez TA SAMA normalizacje**: bez ogonkow i
|
||||
wielkich liter, cyfry na litery, powtorzenia zwiniete, rozstrzelenia sklejone.
|
||||
Wpis podaje sie w zwyklej pisowni. Nie dopisywac wariantow typu "kurw4".
|
||||
- **Tryb CONTAINS tylko dla rdzeni, ktore nie wystepuja w zwyklych slowach.**
|
||||
"dup" jako fragment trafialby w "duplikat", "ciot" w "ciotka": takie wpisy sa
|
||||
WORD. `WordFilterTest` czyta slownik wprost z migracji i sprawdza obie strony,
|
||||
takze slownictwo wodociagowe; sprawdzony w obie strony.
|
||||
- **Slownik w pamieci, uniewazniany PO zatwierdzeniu zmiany.** Uniewaznienie
|
||||
w trakcie transakcji pozwalaloby rownoleglej wiadomosci wczytac stara wersje
|
||||
na stale.
|
||||
- **Awaria filtru przepuszcza wiadomosc** i loguje blad: czat, ktory przestaje
|
||||
dzialac przez filtr, jest gorszy niz chwila bez filtru.
|
||||
- `fullChatHistory` zawiera NEW, bo tam leza wiadomosci wstrzymane. Publiczne
|
||||
`chatHistory` nadal zwraca wylacznie APPROVED.
|
||||
|
||||
### Obecni na sali w panelu prowadzenia
|
||||
|
||||
Karta "Na sali" (`RoomParticipants`), endpointy `/admin/webinars/{id}/room/participants`.
|
||||
|
||||
Reference in New Issue
Block a user