Matrixcli adalah klien matriks sederhana berdasarkan matriks-python-sdk. Jika Anda bertanya -tanya bagaimana ini berguna, silakan lihat aplikasi
Anda dapat menginstal matrixcli menggunakan setup.py di direktori proyek root. Ini juga akan menginstal semua dependensi yang diperlukan.
git clone https://github.com/saadnpq/matrixcli.git
cd ./matrixcli
sudo ./install.shIni akan menempatkan skrip matrixcli di jalur Anda, menginstal file config.py template di/etc/matrixcli dan file unit systemd di/lib/systemd/user
Untuk pengguna Ubuntu, Anda harus menginstal Python3-Setuptools terlebih dahulu sebelum menjalankan perintah di atas
sudo apt install python3-setuptoolsUntuk mengaktifkan layanan SystemD, Anda dapat menjalankan yang berikut.
systemctl --user enable --now matrixcliKonfigurasi akun dilakukan melalui file config.py di salah satu lokasi berikut diurutkan berdasarkan prioritas
Ini adalah konfigurasi sampel satu akun.
def password_eval ():
return "Y0UrPredIctabLePA$$w0ord"
accounts = [{ "server" : "https://matrix.org/" ,
"username" : "putYourUserNameHere" ,
"passeval" : password_eval }]
# the password_eval function can be named any thing as long as
# it matches the function definition
ignore_rooms = [ "room_id" , "another_room_id" ]
# note: room_id not room_alias (run matrixcli rooms to get the room_id) File konfigurasi harus memiliki variabel accounts yang memegang daftar kamus di mana setiap kamus terdiri dari server informasi akun, nama pengguna, dan eval kata sandi
Alasan di balik mendefinisikan fungsi yang mengembalikan nilai kata sandi adalah bahwa jika Anda tidak ingin menulis kata sandi Anda dalam teks biasa, Anda dapat menulis kode Python yang Anda inginkan yang menghasilkan atau membaca kata sandi dari file terenkripsi atau cincin kunci
Daftar Impan_Rooms berisi kamar yang ingin Anda abaikan saat menghitung pesan yang belum dibaca dan dalam mode mendengarkan
Jika Anda tidak ingin membuat file konfigurasi sama sekali, Anda dapat melewati server, nama pengguna dan kata sandi melalui argumen baris perintah. Lihat Penggunaan
Misalkan Anda memiliki file konfigurasi berikut
def account1_password_eval ():
return "account1secretpassword"
def account2_matrixorg_password_eval ():
return "account2secretpassword"
def account3_password_eval_any_name ():
return "yXkdsjhslkjhdlksjhffffffkkssskjsdhkljhssdc"
accounts = [
{ "server" : "https://example.com" ,
"username" : "account1" ,
"passeval" : account1_password_eval },
{ "server" : "https://matrix.org" ,
"username" : "account2" ,
"passeval" : account2_matrixorg_password_eval },
{ "server" : "https://example.com" ,
"username" : "account3" ,
"passeval" : account3_password_eval_any_name },]
ignore_rooms = [ "room_id" , "another_room_id" ] Jika Anda tidak menentukan opsi baris perintah apa pun, program akan menggunakan akun pertama dalam daftar akun. Untuk menggunakan akun lain yang cukup untuk melewati opsi -u atau –username ke perintah dengan nama pengguna akun itu.
Misalnya
matrixcli -u account3 getroomsPerintah itu akan masuk dengan parameter akun ketiga.
Jika Anda memiliki dua atau lebih akun dengan nama pengguna yang sama tetapi dengan server yang berbeda. Anda dapat menentukan opsi –Server untuk menemukan akun yang mungkin ke akun yang Anda inginkan.
Di bawah ini adalah cara saya secara pribadi menggunakan matrixcli,
Motif pertama untuk membuat program ini adalah bahwa saya tidak ingin menjaga halaman web Riot tetap terbuka atau menjalankan aplikasi elektron hanya untuk pemberitahuan.
Anda dapat mengaktifkan layanan SystemD, untuk mendapatkan pemberitahuan untuk acara saat mereka datang.
systemctl --user enable --now matrixcli
Menggunakan matrixcli unread Anda menulis modul untuk bilah status apa pun untuk menampilkan pesan yang belum dibaca. Berikut adalah contoh sederhana untuk polibar
[module/matrix]
type = custom/script
exec = matrixcli unread -f 2> /dev/null
tail = true
interval = 30
format = <label>
label = M[%output%]
format-underline = # 268bd2 Misalnya saya memiliki pekerjaan cron yang mengirimkan setiap hari lagu acak dari direktori musik saya ke ruangan tertentu.
0 0 * * * /usr/local/bin/matrixcli send -r ' !OSPeUVrwMKbIrLQuBX:matrix.org ' $( tree /home/pi/musiqa -fi | grep " .*.mp3 " | shuf | sed 1q )Dan saya menggunakannya di banyak skrip di server jarak jauh untuk memberi tahu saya tentang output skrip atau tepat ketika ada yang salah.
Untuk daftar sub -perintah dan opsi yang dijalankan
matrixcli --help keluaran:
#usage: matrixcli [-h] [-s server] [-u nama pengguna] [-p kata sandi] [-c config]
{Kirim, dengarkan, kamar, belum dibaca, ekor} ...
Klien Matriks Baris Perintah
Argumen opsional:
-h, --help menunjukkan pesan bantuan ini dan keluar
-S Server, -Server Server
server untuk masuk ke
-u nama pengguna, -nama pengguna nama pengguna
Nama pengguna untuk login
-p Kata sandi, -password kata sandi
kata sandi
-c config, --config config
file konfigurasi khusus
Sub -perintah:
{Kirim, dengarkan, kamar, belum dibaca, ekor}
Kirim Kirim Sesuatu ke Kamar
Dengarkan Dengarkan selamanya untuk acara
kamar mendapatkan semua kamar yang bergabung
belum dibaca mendapatkan pemberitahuan yang belum dibaca
Tail mencetak pesan terakhir
Untuk mencantumkan opsi perintah sub tertentu, (misalnya kirim)
matrixcli send --help Setiap Sub-Komandan yang seharusnya bertindak di ruangan tertentu menerima argumen opsional -r/–room-id yang mengambil kamar-id untuk bertindak, atau -a/–room_alias yang mengambil alias kamar.
Untuk mendapatkan kamar-id dari kamar yang berlari:
Kamar Matrixcli
output yang berikut (untuk akun saya).
masuk .... masuk .... 0: momenamr :! ocomuldomkojwyzxts: matrix.org 1: Mahmoudhafez :! fcxcmulziohnqomvxd: saadnpq.com 2: Emacs Matrix Client :! Zrzoyxeyfrzcbzknis: Matrix.org 3: elm3alem zaki :! oabjenlttvqgpqrpes: matrix.org 4: Matrix-Python-SDK :! YHHMBTMGBHGQOLGPAZ: Matrix.org 5: Emacs :! pwxniidhcbabnitssn: matrix.org 6: moatazomar :! lsbukyvyvignwcpacn: saadnpq.com
Jika Anda tidak menentukan kamar-id atau alias kamar melalui baris perintah, program akan meminta Anda dengan kamar bergabung Anda saat itu.
matrixcli listenMendengarkan selamanya untuk acara dan output pesan yang masuk baik untuk pemberitahuan stdout dan OS, jika Anda menjalankan perintah ini pada sistem tanpa kepala atau program gagal mengirim pemberitahuan karena beberapa alasan, itu akan menghasilkan acara hanya untuk stdout tanpa mengeluh.
Anda dapat menekan CC untuk keluar dari mode mendengarkan.
Ada juga layanan SystemD yang diinstal dengan program yang menggunakan matrixcli listen , untuk memungkinkannya Anda dapat menjalankan yang berikut.
systemctl --user enable --now matrixcliMengembalikan pesan N terakhir dari sebuah ruangan.
matrixcli tail -h Penggunaan: Matrixcli Tail [-H] [-r room_id | -a room_alias] [-f] [-n [1-100]]
Argumen opsional:
-h, --help menunjukkan pesan bantuan ini dan keluar
-r room_id, --room-id room_id
Tentukan ID kamar
-A room_alias, --room-alias room_alias
Tentukan alias kamar dengan kamar
-f, -ikuti tunggu pesan dan cetak saat mereka datang
-n [1-100], --Mesages [1-100]
Cetak pesan terakhir yang ditentukan
Opsi -F mencetak pesan terakhir tetapi tunggu pesan baru dan cetak saat mereka datang.
Anda juga dapat mengirim pesan saat dalam mode ikuti dengan mengetik pesan yang ingin Anda kirim dan tekan enter untuk mengirimnya.
matrixcli send --help Penggunaan: Matrixcli Kirim [-h] [-r room_id | -a room_alias] [-t | -f] konten
Argumen Posisi:
isi
Argumen opsional:
-h, --help menunjukkan pesan bantuan ini dan keluar
-r room_id, --room-id room_id
Tentukan ID kamar
-A room_alias, --room-alias room_alias
Tentukan alias kamar dengan kamar
-t, --Text memaksa program untuk memperlakukan konten sebagai pesan teks
-f, -file paksa program untuk memperlakukan konten sebagai file
Perintah Kirim mengambil konten yang ingin Anda kirim sebagai argumen posisi, program pertama -tama melihat jika teks yang disahkan mewakili file yang ada dalam sistem file, jika demikian akan mencoba menebak jenis MIME -nya berdasarkan ekstensi untuk mempratinjau konten dengan benar pada ujung penerima. Jika teks yang disahkan tidak mewakili file apa pun pada sistem file, program akan memperlakukannya sebagai pesan teks.
Untuk memaksa program untuk memperlakukan konten sebagai file atau teks, Anda dapat menentukan argumen opsional –file atau –text.
matrixcli unread --help Penggunaan: matrixcli unread [-h] [-f] [-r room_id | -A room_alias]
Argumen opsional:
-h, --help menunjukkan pesan bantuan ini dan keluar
-f, - -ikuti jangan menutup koneksi dan mencetak jumlah yang belum dibaca
pesan kapan pun diperbarui
-r room_id, --room-id room_id
Tentukan ID kamar
-A room_alias, --room-alias room_alias
Tentukan alias kamar dengan kamar
output pesan yang belum dibaca untuk room_id atau semua kamar (kecuali yang ada di IGNER_ROOMS) jika tidak ada room_id atau room_alias yang ditentukan