Tinjauan Federasi
Dokumen ini untuk siapa saja yang ingin mengetahui bagaimana federasi Lemmy bekerja, tanpa terlalu teknis. Ini dimaksudkan untuk memberikan tinjauan umum tingkat tinggi terhadap federasi ActivityPub di Lemmy. Jika Anda mengimplementasikan ActivityPub sendiri dan ingin kompatibel dengan Lemmy, baca Garis Besar API ActivityPub kami.
Konvensi dokumentasi
Untuk mempermudah, kadang kala Anda akan melihat sesuatu diformat seperti Create/Note
atau Delete/Event
atau Undo/Follow
. Hal sebelum garis miring adalah Aktivitas dan setelahnya adalah Objek di dalam Aktivitas, di properti object
. Jadi itu dibaca sebagai berikut:
Create/Note
: sebuah aktivitasCreate
yang mengandungNote
di bidangobject
Delete/Event
: sebuah aktivitasDelete
yang mengandungEvent
di bidangobject
Undo/Follow
: sebuah aktivitasUndo
yang mengandungFollow
di bidangobject
Di Lemmy, kami menggunakan beberapa hal spesifik yang merujuk kepada item ActivityPub. Mereka sejatinya adalah implementasi kami terhadap konsep ActivityPub:
- Komunitas:
Group
- Pengguna:
Person
- Pos:
Page
- Komentar:
Note
Dokumentasi ini memiliki tiga bagian utama:
- Filosofi Federasi menjabarkan gambaran umum bagaimana ini ditujukan untuk federasi
- Aktivitas Pengguna menjelaskan tindakan apa yang Pengguna bisa lakukan untuk berinteraksi
- Aktivitas Komunitas menjelaskan apa yang Komunitas lakukan sebagai respons terhadap tindakan beberapa Pengguna
Filosofi Federasi
Aktor utama di Lemmy adalah Komunitas. Setiap komunitas berada di suatu peladen tunggal dan terdiri dari daftar Pos dan daftar pengikut. Interaksi utama adalah Pengguna mengirim Pos atau Komentar terkait aktivitas ke kotak masuk Komunitas, yang kemudian mengumumkannya ke seluruh pengikutnya.
Setiap Komunitas memiliki Pengguna pembuat tertentu, yang bertanggung jawab untuk mengatur peraturan, mengangkat moderator, dan menghapus konten yang melanggar peraturan.
Selain moderasi di tingkat komunitas, setiap peladen memiliki seperangkat Pengguna administrator, yang mempunyai kekuasaan untuk melakukan penghapusan dan pelarangan tingkat situs.
Pengguna mengikuti Komunitas yang mereka tertarik kepada mereka untuk menerima Pos dan Komentar. Mereka juga memilih pada Pos dan Komentar, dan juga membuat yang baru. Komentar dikelola dalam struktur pohon dan biasanya diurut berdasarkan jumlah pilihan. Pesan langsung antar Pengguna juga didukung.
Pengguna tidak bisa mengikuti satu sama lain dan Komunitas juga tidak bisa mengikuti apa pun.
Implementasi federasi kami sudah komplit fitur, tapi kami sampai saat ini belum fokus untuk mengikuti spesifikasi ActivityPub. Karena itu, Lemmy kemungkinan besar tidak akan kompatibel dengan implementasi yang mengharapkan untuk mengirim dan menerima aktivitas yang valid. Ini adalah sesuatu yang kami akan perbaiki di masa mendatang. Periksa #698 untuk gambaran penyimpangan kami.
Aktivitas Pengguna
Mengikuti sebuah Komunitas
Setiap halaman Komunitas memiliki tombol "Ikuti". Mengkliknya akan memicu sebuah aktivitas Follow
untuk dikirim dari pengguna ke kotak masuk Komunitas. Komunitas akan secara otomatis merespons dengan aktivitas Accept/Follow
ke kotak masuk pengguna. Itu juga akan menambahkan pengguna tersebut ke daftar pengikutnya dan mengirimkan setiap aktivitas terkait Pos/Komentar di Komunitas ke pengguna.
Batal Mengikuti Komunitas
Setelah mengikuti sebuah Komunitas, tombol "Ikuti" berubah menjadi "Batal Ikuti". Mengklik ini akan mengirim aktivitas Undo/Follow
ke kotak masuk Komunitas. Komunitas tersebut menghapus Pengguna dari daftar pengikutnya dan tidak akan mengirim aktivitas apa pun lagi ke ia.
Membuat Pos
Ketika pengguna membuat Pos di Komunitas tertentu, itu akan dikirim sebagai Create/Page
ke kotak masuk Komunitas tersebut.
Membuat Komentar
Ketika sebuah Komentar baru dibuat untuk sebuah Pos, baik ID Pos dan ID Komentar induk (jika ada) ditulis ke bidang in_reply_to
. Ini memungkinkan untuk menetapkannya ke Pos yang benar dan membangun pohon Komentar. Kemudian itu dikirim ke kotak masuk Komunitas sebagai Create/Note
Peladen asal juga memindai Komentar untuk sebutan Pengguna apa pun dan mengirim aktivitas Create/Note
ke Pengguna tersebut.
Menyunting Pos
Mengubah konten dari Pos yang sudah ada. Hanya bisa dilakukan oleh Pengguna yang membuat.
Menyunting Komentar
Mengubah konten dari Komentar yang sudah ada. Hanya bisa dilakukan oleh Pengguna yang membuat.
Suka dan Tidak Suka
Pengguna bisa suka dan tidak sukai Pos atau Komentar apa pun. Itu dikirim sebagai Like/Page
, Dislike/Note
, dll. ke kotak masuk Komunitas.
Penghapusan
Pembuat dari Pos, Komentar, atau Komunitas bisa menghapus yang dibuatnya. Itu kemudian dikirim ke pengikut Komunitas. Kemudian itu disembunyikan dari seluruh pengguna.
Pembersihan
Moderator bisa membersihkan Pos dan Komentar dari Komunitas mereka. Administrator bisa membersihkan Pos dan Komentar apa pun dari seluruh peladen ia sendiri. Komunitas juga bisa dibersihkan oleh administrator. Kemudian, itu disembunyikan dari seluruh pengguna.
Pembersihan dikirim ke seluruh pengikut dari sebuah Komunitass, supaya mereka akan terkena efeknya di sana. Pengecualian dari ini adalah jika administrator membersihkan sesuatu dari Komunitas yang dihos di peladen yang berbeda. Jika begitu, pembersihan hanya berefek secara lokal.
Mengurungkan Tindakan Sebelumnya
Tidak ada yang dihapus dari basis data, hanya menyembunyikannya dari pengguna. Komunitas/Pos/Komentar yang telah dihapus atau dibersihkan memiliki tombol "pulihkan". Tombol ini menghasilkan aktivitas Undo
yang menetapkan aktivitas penghapusan/pembersihan sebelumnya sebagai objek, seperti Undo/Remove/Post
atau Undo/Delete/Community
.
Mengklik tombol pilih naik dari pos/komentar yang sudah dipilih naikkan (atau pilih turun dari pos/komentar yang sudah dipilih turunkan) akan juga menghasilkan Undo
. Dalam contoh tersebut akan menghasilkan Undo/Like/Post
atau Undo/Dislike/Comment
.
Buat Pesan Pribadi
Di profil pengguna ada tombol "Kirim Pesan", yang akan membuka dialog perizinan untuk mengirimkan pesan pribadi ke pengguna ini. Ini dikirim sebagai Create/Note
ke kotak masuk pengguna tersebut. Pesan pribadi hanya bisa ditujukan kepada satu pengguna tunggal.
Sunting Pesan Pribadi
Update/Note
mengubah teks dari pesan yang telah dikirim sebelumnya.
Hapus Pesan Pribadi
Delete/Note
menghapus pesan pribadi.
Memulihkan Pesan Pribadi
Undo/Delete/Note
mengurungkan penghapusan pesan pribadi.
Aktivitas Komunitas
Komunitas itu secara dasarnya adalah bot, yang hanya akan melakukan sesuatu sebagai balasan untuk tindakan dari pengguna. Pengguna yang pertama kali membuat komunitas akan menjadi moderator pertama dan bisa menambahkan moderator tambahan. Secara umum, kapan pun komunitas menerima aktivitas yang valid di kotak masuknya, aktivitas tersebut akan diteruskan ke seluruh pengikutnya.
Menerima Ikuti
Jika komunitas menerima aktivitas Follow
, maka komunitas akan secara otomatis membalas dengan Accept/Follow
. Komunitas juga menambahkan pengguna tersebut ke daftar pengikutnya.
Batal Ikuti
Ketika menerima Undo/Follow
, Komunitas menghapus Pengguna tersebut dari daftar pengikutnya.
Mengumumkan
Jika Komunitas menerima aktivitas terkait Pos atau Komentar (Buat, Perbarui, Suka, Tidak Suka, Hapus, Bersihkan, Urung), Komunitas akan mengumumkannya ke pengikutnya. Untuk ini, Mengumumkan dibuat dengan Komunitas sebagai aktor dan aktivitas yang diterima sebagai objek. Karena itu, peladen tersebut dapat terus pembaruan terkait aktivitas di Komunitas yang diikutinya.
Menghapus Komunitas
Jika pembuat atau administrator menghapus sebuah Komunitas, itu mengirim Delete/Group
ke seluruh pengikutnya.