Bergabunglah dengan matriks dari klien IRC favorit Anda
Matrix2051 (atau M51 singkatnya) adalah server IRC yang didukung oleh matriks. Anda juga dapat melihatnya sebagai penjaga IRC yang terhubung ke matriks homeservers alih -alih server IRC. Dengan kata lain:
IRC client
(eg. weechat or hexchat)
|
| IRC protocol
v
Matrix2051
|
| Matrix protocol
v
Your Homeserver
(eg. matrix.org)
Sasaran:
Non-Goals:
Dua catatan di tangkapan layar ini:
sudo apt install elixir erlang erlang-dev erlang-inets erlang-xmerlmix deps.getmix testmix run matrix2051.exslocalhost:2051 , dengan konfigurasi berikut:user:homeserver.example.org )Lihat di bawah untuk instruksi tambahan untuk bekerja dengan klien web.
Lihat INSTALL.md untuk panduan yang lebih berorientasi produksi.
matrix2051.exs Mulai M51.Application, yang memulai M51.Supervisor, yang mengawasi:config.ex : agen konfigurasi globalirc_server.ex : DynamicSupervisor yang menerima koneksi dari klien IRC. Setiap kali irc_server.ex menerima koneksi, itu memunculkan irc_conn/supervisor.ex , yang diawasi:
irc_conn/state.ex : Menyimpan status koneksiirc_conn/writer.ex : Genserver memegang soket dan memungkinkan untuk menulis garis untuk itu (dan batch garis di masa depan)irc_conn/handler.ex : Tugas sibuk menunggu perintah yang masuk dari pembaca, jawaban untuk yang sederhana, dan mengirimkan perintah yang lebih kompleksmatrix_client/state.ex : menjaga keadaan koneksi ke matriks homeervermatrix_client/client.ex : Menangani satu koneksi ke Matrix HomeServer, sebagai satu penggunamatrix_client/sender.ex : Mengirim acara ke Matrix HomeServer dan dengan retries pada kegagalanmatrix_client/poller.ex : berulang kali meminta Matrix HomeServer untuk acara baru (termasuk sinkronisasi awal)irc_conn/reader.ex : Tugas sibuk menunggu di baris yang masuk, dan mengirimkannya ke pawangUtilitas:
matrix/raw_client.ex : Klien Matriks Tingkat Rendah / Pembungkus Tipis di sekitar Permintaan HTTPirc/command.ex : Manipulasi garis IRC, termasuk "menurunkan" mereka untuk klien yang tidak mendukung beberapa kemampuan.irc/word_wrap.ex : Pembungkus garis generikformat/ : Konversi antara pemformatan IRC dan org.matrix.custom.htmlmatrix_client/chat_history.ex : Mengambil riwayat pesan dari matriks, jika diminta oleh klien IRC Ada banyak klien IRC yang hebat, tetapi saya tidak dapat menemukan klien matriks yang saya sukai. Namun, beberapa komunitas pindah dari IRC ke matriks, jadi saya menulis ini sehingga saya dapat bergabung dengan mereka dengan klien yang nyaman.
Ini juga merupakan cara untuk membuat prototipe fitur IRCV3 terbaru dengan mudah, dan bagi saya untuk mempelajari protokol matriks.
Secara teori, setiap klien IRC harus bekerja. Secara khusus, saya mengujinya dengan Gamja, Irccloud, Lounge, dan Weechat.
Harap buka masalah jika klien Anda memiliki masalah.
Secara teori, apa pun, seperti yang saya tulis ini dengan membaca spesifikasi matriks. Dalam praktiknya, ini hanya diuji dengan sinaps.
Pengecualian penting adalah pendaftaran, yang menggunakan API spesifik sinapsis karena matriks itu sendiri tidak menentukan pendaftaran.
Harap buka masalah jika Anda memiliki masalah dengan HomeServer Anda (login/kata sandi dummy yang dapat saya gunakan untuk terhubung ke sana akan dihargai).
Pada saat penulisan, jika Matrix dan IRC/IRCV3 mendukung mereka, Matrix2051 kemungkinan akan. Lihatlah daftar masalah 'peningkatan' terbuka.
Pengecualian penting adalah pesan langsung, karena model Matrix berbeda secara signifikan dari IRC.
Untuk menghubungkan klien web, Anda memerlukan gateway Websocket. Matrix2051 diuji dengan Webircgay Kiwiirc (coba tambalan ini jika Anda perlu menjalankannya di versi GO lama).
Inilah cara Anda dapat mengonfigurasinya untuk terhubung ke matrix2051 dengan gamja:
[ fileserving ]
enabled = true
webroot = " /path/to/gamja "
[ upstream . 1 ]
hostname = " localhost "
port = 2051
tls = false
# Connection timeout in seconds
timeout = 20
# Throttle the lines being written by X per second
throttle = 100
webirc = " "
serverpassword = " "Ini adalah referensi ke XKCD 1782:
Bergabunglah #matrix2051 di irc.interlinked.me. (Tidak, saya tidak makan makanan anjing saya sendiri, saya masih lebih suka "asli" IRC.)