Podstawy Federacji (Lemmy)

Szybkie tłumaczenie dokumentacji z: https://join-lemmy.org/docs/en/federation/overview.html … UWAGA: nie sprawdzałem w kodzie polskich nazw poszczególnych metod i klas – mogą się różnić. To jest wersja robocza dla kogoś i powinno to zostać poprawione!

Ten dokument jest dla każdego, kto chce wiedzieć, jak działa federacja Lemmy, nie będąc samemu/ej zbyt technicznym/ą. Ma to na celu zapewnienie ogólnego przeglądu federacji ActivityPub w Lemmym. Jeśli samodzielnie wdrażasz ActivityPub i chcesz być kompatybilny z Lemmym, zapoznaj się z naszym zarysem ActivityPub API (po angielsku).

Konwencje w dokumentacji

Aby uprościć sprawę, czasami zobaczysz elementy sformatowane, jak np. Utwórz/Zanotuj lub Usuń/Wydarzenie lub Cofnij/Obserwuj. Element przed ukośnikiem to Działanie, a element po ukośniku to Obiekt wewnątrz Działania, we właściwościach obiektu. Należy więc je czytać w następujący sposób:

  • Utwórz/Zanotuj: działanie Utwórz zawierające Zanotuj w polu object
  • Usuń/Wydarzenie: działanie Usuń zawierające Wydarzenie w polu object
  • Cofnij/Obserwuj: działanie Cofnij zawierające Obserwuj w polu object

W Lemmym, czasem pewnych nietypowych określeń na elementy ActivityPub. Są to po prostu nasze specyficzne implementacje koncepcji AcitivityPub:

  • Społeczność: Group
  • Użytkownik: Person
  • Post: Page
  • Komentarz: Note

Niniejszy dokument podzielony jest na trzy główne rozdziały:

  • Filozofia Federacji przedkłada ogólny model komunikacji/federacji
  • Działania Użytkownika opisuje co może zrobić Użytkownik
  • Działania Społeczności opisuje co może zrobić Społeczność w reakcji na działania pewnego Użytkownika

Filozofia Federacji

Głównym aktorem w Lemmy jest Społeczność. Każda społeczność znajduje się na jednej instancji i składa się z listy postów oraz listy obserwujących. Podstawową interakcją jest to, że Użytkownik wysyła aktywność związaną z wpisem lub komentarzem do skrzynki odbiorczej Społeczności, która następnie informuje o tym wszystkich swoich obserwujących.

Każda Społeczność ma określonego Użytkownika-twórcę, który odpowiada za ustalanie zasad, wyznaczanie moderatorów i usuwanie treści naruszających zasady.

Oprócz moderacji na poziomie społeczności, każda instancja posiada zestaw administratorów, którzy mają uprawnienia do usuwania i blokowania na poziomie całej witryny.

Użytkownicy śledzą społeczności, którymi są zainteresowani, aby otrzymywać posty i komentarze. Głosują również na posty i komentarze, a także tworzą nowe. Komentarze są zorganizowane w strukturę drzewa i zwykle sortowane według liczby głosów. Obsługiwane są również bezpośrednie wiadomości między Użytkownikami.

Użytkownicy nie mogą się nawzajem obserwować, podobnie jak społeczności nie mogą śledzić czegokolwiek.

Implementacja naszej federacji jest już ukończona, ale jak dotąd nie skupialiśmy się w ogóle na zgodności ze specyfikacją ActivityPub. Tak więc, Lemmy prawdopodobnie nie jest kompatybilny z implementacjami, które oczekują wysyłania i odbierania prawidłowych działań. To jest coś, co planujemy naprawić w najbliższej przyszłości. Sprawdź #698, aby uzyskać przegląd niezgodności.

Działania Użytkownika

Śledzenie Społeczności

Każda strona społeczności ma przycisk „Subskrybuj”. Kliknięcie go spowoduje wysłanie aktywności Subskrybuj od użytkownika do skrzynki odbiorczej społeczności. Społeczność automatycznie odpowie działaniem Zaakceptuj/Subskrybuj w skrzynce odbiorczej użytkownika. Doda również użytkownika do swojej listy obserwujących i dostarczy użytkownikowi wszelkie działania dotyczące postów/komentarzy w Społeczności.

Przestanie obserwowania społeczność

Po obserwowaniu społeczności przycisk „Subskrybuj” zastępuje się przyciskiem „Przestań obserwować”. Kliknięcie tego powoduje wysłanie działania Cofnij/Subskrybuj do skrzynki odbiorczej społeczności. Społeczność usuwa Użytkownika ze swojej listy obserwujących i nie wysyła mu już żadnych aktywności.

Utwórz post

Gdy użytkownik tworzy nowy post w danej społeczności, jest on wysyłany jako Utwórz/Page do skrzynki odbiorczej społeczności.

Utwórz komentarz

Gdy tworzony jest nowy komentarz do posta, zarówno identyfikator posta, jak i identyfikator nadrzędnego komentarza (jeśli istnieje) są zapisywane w polu in_reply_to. Pozwala to na przypisanie go do właściwego posta i zbudowanie drzewa komentarzy. Następnie jest wysyłany do skrzynki odbiorczej społeczności jako Utwórz/Notatka

Instancja pochodzenia skanuje również komentarz pod kątem wzmianek o użytkowniku i wysyła również Utwórz/Uwagę do tych użytkowników.

Edytuj post

Zmienia zawartość istniejącego posta. Może to zrobić tylko Użytkownik tworzący.

Edytuj komentarz

Zmienia zawartość istniejącego komentarza. Może to zrobić tylko Użytkownik tworzący.

Wgóręgłos i wdółgłos

Użytkownicy mogą polubić lub nie polubić dowolnego posta lub komentarza. Są one wysyłane jako Wgóręgłos/Strona, Wdółgłos/Notatka itp. do skrzynki odbiorczej społeczności.

Usunięcia

Twórca posta, komentarza lub społeczności może go/ją usunąć. Następnie jest wysyłany do obserwujących społeczność. Przedmiot jest następnie ukrywany przed wszystkimi użytkownikami.

Kasowanie

Moderatorzy mogą kasować posty i komentarze ze swoich społeczności. Administratorzy mogą kasować dowolne posty lub komentarze z całej witryny. Społeczności mogą być również kasowane przez administratorów. Obiekt jest następnie ukrywany przed wszystkimi użytkownikami.

Kasacje wysyłane są do wszystkich zwolenników Wspólnoty, aby tam również zaczęły obowiązywać. Wyjątkiem jest sytuacja, gdy administrator skasuje element ze społeczności, która jest hostowana w innej instancji. W takim przypadku usunięcie działa tylko lokalnie.

Cofnij poprzednią akcję

Nie usuwamy niczego z naszej bazy danych, po prostu ukrywamy to przed użytkownikami. Usunięte lub skasowane społeczności/posty/komentarze mają przycisk „przywróć”. Ten przycisk generuje działanie Cofnij, które ustawia pierwotne działanie usuwania/usuwania jako obiekt, takie jak Cofnij/Usuń/Opublikuj lub Cofnij/Usuń/Społeczność.

Kliknięcie przycisku głosowania na już przegłosowany post/komentarz (lub przycisk przegłosowania już przegłosowanego posta/komentarza) również generuje Cofnij. W tym przypadku i Cofnij/Wgóręgłos/Opublikuj lub Cofnij/Wdółgłos/Komentuj.

Utwórz prywatną wiadomość

Profile użytkowników mają przycisk „Wyślij wiadomość”, który otwiera okno dialogowe umożliwiające wysłanie prywatnej wiadomości do tego użytkownika. Jest wysyłany jako Utwórz/Notatka do skrzynki odbiorczej użytkownika. Prywatne wiadomości mogą być kierowane tylko do jednego Użytkownika.

Edytuj prywatną wiadomość

Aktualizacja/Notatka zmienia tekst wcześniej wysłanej wiadomości

Usuń prywatną wiadomość

Usuń/Notatka usuwa prywatną wiadomość.

Przywróć prywatną wiadomość

Cofnij/Usuń/Notatka przywraca usunięcie prywatnej wiadomości.

Działania społeczności

Społeczność jest zasadniczo botem, który robi wszystko tylko w reakcji na działania Użytkowników. Użytkownik, który jako pierwszy utworzył Społeczność, zostaje pierwszym moderatorem i może dodawać kolejnych moderatorów. Ogólnie rzecz biorąc, za każdym razem, gdy Społeczność otrzymuje nową aktywność w swojej skrzynce odbiorczej, ta aktywność jest przekazywana do wszystkich jej obserwujących.

Zaakceptuj śledzenie

Jeśli społeczność otrzyma aktywność Subskrybuj, automatycznie odpowie Akceptuj/Subskrybuj. Dodaje również Użytkownika do swojej listy obserwujących.

Przestań obserwować

Po otrzymaniu polecenia Cofnij/Subskrybuj, Społeczność usuwa Użytkownika ze swojej listy obserwujących.

Ogłaszenie

Jeśli społeczność otrzyma jakiekolwiek działania związane z postami lub komentarzami (Utwórz, Aktualizuj, Lubię, Nie lubię, Usuń, Usuń, Cofnij), poinformuje o tym swoich obserwujących. W tym celu tworzone jest ogłoszenie, w którym Społeczność jest aktorem, a odebrana aktywność jako obiekt. Dzięki temu następujące instancje są na bieżąco informowane o wszelkich działaniach w społecznościach, które obserwują.

Usuń społeczność

Jeśli twórca lub administrator usunie społeczność, wysyła usunięcie/grupę do wszystkich swoich obserwatorów.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.