VulCode

Plazer

Boty, webhooki i automatyzacje komunikatora Plazer, które działają także w kanałach szyfrowanych end-to-end: bot jest tam uczestnikiem z własnymi kluczami, a nie dziurą w szyfrowaniu. Webhooki przyjmują popularny format embedów, reguły "kiedy X, zrób Y" ustawia się bez kodu, a konta GitHub, Steam i Spotify oraz mosty do innych komunikatorów podpina się w ustawieniach.

TypIntegracje komunikatora
RdzeńRust
SzyfrowanieMLS (RFC 9420)
IntegracjeBoty, webhooki, mosty
Plazer

Wprowadzenie

Plazer to szyfrowany komunikator dla społeczności: serwery z kanałami, wiadomości prywatne i rozmowy głosowe, z treścią szyfrowaną end-to-end. Społeczność, która się do niego przenosi, nie przychodzi z pustymi rękami. Ma boty od zgłoszeń i ankiet, webhooki z repozytorium, sklepu i monitoringu oraz reguły, które witają nowych i rozdają role.

Wszystko to działa w Plazerze także tam, gdzie rozmowa jest szyfrowana. To był rdzeń zadania: integracja nie może być tylnymi drzwiami do treści, której serwer z założenia nie zna.

Bot w kanale szyfrowanym

W kanale szyfrowanym end-to-end serwer nie zna treści. Żeby bot mógł ją przeczytać, musi być w rozmowie tak samo jak ludzie, z własnymi kluczami i na liście tych, którzy je mają.

Bot dostaje klucze jak każdy uczestnik

od chwili dodania ma klucze do nowych wiadomości, tak jak osoba, która właśnie dołączyła, i nie przeczyta wcześniejszej historii.

Widać go na liście

każda integracja, która czyta albo pisze w kanale szyfrowanym, stoi na liście osób z kluczami.

Usunięcie zmienia klucze

po usunięciu bota pozostali uczestnicy uzgadniają nowe klucze, więc bot nie przeczyta niczego, co napiszecie później.

Komendy botów

Po wpisaniu ukośnika pojawia się lista komend z opisem, a po wybraniu jednej aplikacja podpowiada, co wpisać w każdym polu: datę, kanał, osobę albo zwykły tekst. Bot dostaje rolę jak każdy członek serwera, widzi tylko te kanały i robi tylko to, na co pozwalają jego uprawnienia, które zmienia się w każdej chwili w ustawieniach serwera. Komend używa się na kanałach, w wątkach i w rozmowie prywatnej z botem.

Webhooki

Webhook to adres, pod który inne serwisy wysyłają wiadomości. Sklep, repozytorium kodu albo monitoring wysyła krótką wiadomość, a Plazer wrzuca ją na wybrany kanał, także szyfrowany, albo prosto do wiadomości prywatnych. Nie trzeba pisać bota ani stawiać serwera: wystarczy skopiować adres i wkleić go w ustawieniach serwisu.

Webhooki przyjmują popularny format wiadomości i embedów, więc istniejącą integrację przepina się, zmieniając tylko adres. Adres tworzy się i usuwa w ustawieniach kanału, a kto go nie zna, nic przez niego nie wyśle.

Automatyzacje bez kodu

Większość rzeczy, do których serwery dokładają boty, to proste reguły "kiedy X, zrób Y". W Plazerze składa się je z gotowych klocków w osobnej zakładce ustawień serwera, obok ról, kanałów i moderacji, a każdą regułę włącza i wyłącza jeden przełącznik.

Gotowe reguły

KiedyPlazer robi
Ktoś dołącza do serweraWysyła powitanie na kanale powitań i nadaje rolę dla nowych
Ktoś dodaje reakcję pod wiadomością z rolamiNadaje rolę przypisaną do reakcji i zdejmuje ją, gdy reakcja zniknie
Ktoś otwiera zgłoszenieTworzy prywatny wątek z moderacją i powiadamia jej rolę
Ktoś zdobywa nowy poziomNadaje rolę z tego poziomu i ogłasza awans na kanale

Serwer ma też własną ekonomię i poziomy z panelem administratora: walutę z nazwą i ikoną, aktywności liczone do poziomu, krzywą poziomów i nagrody na progach. Embedy i formularze składa w edytorze każdy członek serwera, nie tylko bot, więc zapisy, rekrutacje i ankiety z otwartymi odpowiedziami robi się bez żadnej integracji.

Połączone konta i mosty

Konta GitHub, Steam, Spotify i innych usług podpina się do profilu, żeby inni od razu widzieli, gdzie Cię znaleźć. Autoryzowane aplikacje widać i odłącza się w ustawieniach konta.

Most łączy kanał w Plazerze z rozmową w innym komunikatorze i przenosi wiadomości w obie strony. Społeczność nie musi przeprowadzać się w jeden dzień, a ci, którzy jeszcze zostali po drugiej stronie, dalej są w rozmowie.

API botów

Gdy gotowe klocki nie wystarczają, pisze się własnego bota: z tokenem, zapytaniami do API, bramką zdarzeń, rejestracją własnych komend i webhookami do wiadomości z zewnętrznych serwisów. Kod Plazera jest otwarty, więc każdą odpowiedź serwera da się sprawdzić u źródła.

Pytania o Plazer

Więcej projektów

Inne realizacje z tej samej kategorii - zobacz, jak podchodzimy do podobnych wyzwań.

Masz podobny projekt?

Napisz do nas - wycena jest bezpłatna i wraca w godzinę.