Matrixcli هو عميل Matrix بسيط يعتمد على Matrix-Python-SDK. إذا كنت تتساءل كيف يكون هذا مفيدًا ، فيرجى الاطلاع على التطبيقات
يمكنك تثبيت Matrixcli باستخدام setup.py في دليل مشروع الجذر. سيؤدي هذا أيضًا إلى تثبيت جميع التبعيات المطلوبة.
git clone https://github.com/saadnpq/matrixcli.git
cd ./matrixcli
sudo ./install.shسيؤدي ذلك إلى وضع نصي Matrixcli في مسارك ، وتثبيت ملف config.py في/etc/matrixcli وملف وحدة النظام في/lib/systemd/user
لمستخدمي Ubuntu ، يجب عليك تثبيت Python3-Setuptools أولاً قبل تشغيل الأوامر أعلاه
sudo apt install python3-setuptoolsلتمكين خدمة النظام ، يمكنك تشغيل ما يلي.
systemctl --user enable --now matrixcliيتم تكوين الحساب من خلال ملف config.py في أي من المواقع التالية مرتبة عن الأسبقية
هذا هو تكوين عينة حساب واحد.
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) يجب أن يحتوي ملف التكوين على متغير accounts
الأساس المنطقي وراء تحديد وظيفة تُرجع قيمة كلمة المرور هو أنه إذا كنت لا ترغب في كتابة كلمة المرور الخاصة بك في نص عادي ، يمكنك كتابة أي رمز بيثون ترغب في إنشاء كلمة المرور أو تقرأها من ملف مشفر أو حلقة مفتاح
تحتوي قائمة Dection_rooms على غرف تريد تجاهلها عند حساب الرسائل غير المقروءة وفي وضع الاستماع
إذا كنت لا ترغب في إنشاء ملف تكوين على الإطلاق ، فيمكنك تمرير الخادم واسم المستخدم وكلمة المرور من خلال وسيطات سطر الأوامر. انظر الاستخدام
افترض أن لديك ملف التكوين التالي
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" ] إذا لم تحدد أي خيار سطر الأوامر ، فسيستخدم البرنامج الحساب الأول في قائمة الحسابات. لاستخدام أي حساب آخر ، يكفي تمرير خيار -u أو -username إلى الأمر مع اسم المستخدم لهذا الحساب.
على سبيل المثال
matrixcli -u account3 getroomsسيقوم هذا الأمر بتسجيل الدخول مع معلمات الحساب الثالث.
إذا كان لديك حسابين أو أكثر مع نفس اسم المستخدم ولكن مع خوادم مختلفة. يمكنك تحديد خيار –Server لخفض الحسابات الممكنة إلى الحساب الذي تريده.
فيما يلي الطرق التي أستخدمها شخصيًا Matrixcli ،
كان الدافع الأول لجعل هذا البرنامج هو أنني لا أرغب في الحفاظ على صفحة الويب الخاصة بـ Riot Open أو لتشغيل تطبيق إلكترون لمجرد الإخطارات.
يمكنك تمكين خدمة النظام ، للحصول على إشعارات للأحداث عند وصولها.
systemctl --user enable --now matrixcli
باستخدام matrixcli unread تكتب وحدة نمطية لأي شريط حالة لعرض رسائل غير مقروءة. إليك مثال بسيط لـ Polybar
[module/matrix]
type = custom/script
exec = matrixcli unread -f 2> /dev/null
tail = true
interval = 30
format = <label>
label = M[%output%]
format-underline = # 268bd2 على سبيل المثال ، لديّ وظيفة cron التي ترسل كل يوم أغنية عشوائية من دليل الموسيقى الخاص بي إلى غرفة معينة.
0 0 * * * /usr/local/bin/matrixcli send -r ' !OSPeUVrwMKbIrLQuBX:matrix.org ' $( tree /home/pi/musiqa -fi | grep " .*.mp3 " | shuf | sed 1q )وأنا أستخدمه في العديد من البرامج النصية على الخوادم البعيدة لإعلامني بإخراج البرنامج النصي أو فقط عندما يحدث خطأ ما.
للحصول على قائمة بالوحدات الفرعية والخيارات التي يتم تشغيلها
matrixcli --help الإخراج:
#Useage: Matrixcli [-H] [-S Server] [-u username] [-P Password] [-c config]
{إرسال ، استمع ، غرف ، غير مقروء ، ذيل} ...
عميل مصفوفة سطر الأوامر
الحجج الاختيارية:
-H ، -عرض رسالة المساعدة هذه والخروج
خادم -خادم خادم
خادم لتسجيل الدخول إلى
-u اسم المستخدم ، -اسم المستخدم اسم المستخدم
اسم المستخدم لتسجيل الدخول
-pports ، كلمة مرور كلمة المرور
كلمة المرور
-C config ، -config config
ملف التكوين المخصص
أوامر فرعية:
{إرسال ، استمع ، غرف ، غير مقروء ، ذيل}
أرسل إرسال شيء إلى الغرفة
استمع الاستماع إلى الأبد للأحداث
الغرف تحصل على جميع الغرف
غير مقروءة الحصول على إشعارات غير مقروءة
رسائل طباعة الذيل الأخيرة
لسرد خيارات أمر فرعي معين ، (على سبيل المثال SEND)
matrixcli send --help يقبل كل موظف فرعي من المفترض أن يتصرف في غرفة معينة الحجة الاختيارية -r/-room-ID التي تأخذ معرف الغرفة للعمل عليها ، أو -a/-room_alias التي تأخذ اسمًا اسمًا للغرفة.
للحصول على معرف غرفة من الغرفة:
غرف Matrixcli
يخرج ما يلي (لحسابي).
تسجيل الدخول .... تسجيل الدخول .... 0: momenamr:! ocomuldomkojwyzxts: matrix.org 1: Mahmoudhafez:! fcxcmulziohnqomvxd: saadnpq.com 2: عميل مصفوفة emacs:! zrzoyxeyfrzcbzknis: matrix.org 3: Elm3alem Zaki:! Oabjenlttvqgpqrpes: matrix.org 4: Matrix-Python-SDK:! YHHMBTMGBHGQOLGPAZ: Matrix.org 5: emacs:! pwxniidhcbabnitssn: matrix.org 6: Moatazomar:! lsbukyvyjignwcpacn: saadnpq.com
إذا لم تقم بتحديد معرف الغرفة أو الغرفة من خلال سطر الأوامر ، فسوف يطالبك البرنامج بغرفك المرتبطة عندما يحتاج إلى ذلك.
matrixcli listenيستمع إلى الأبد للأحداث والإخراج الرسائل الواردة لكل من إخطارات STDOUT و OS ، إذا كنت تقوم بتشغيل هذا الأمر على نظام مقطوع الرأس أو فشل البرنامج في إرسال إشعارات لسبب ما ، فسيؤدي إلى إخراج الأحداث فقط إلى stdout دون شكوى.
يمكنك الضغط على CC لإنهاء وضع الاستماع.
هناك أيضًا خدمة SystemD مثبتة مع البرنامج الذي يستخدم matrixcli listen ، لتمكينه يمكنك تشغيل ما يلي.
systemctl --user enable --now matrixcliإرجاع آخر رسائل N من الغرفة.
matrixcli tail -h الاستخدام: Matrixcli Tail [-H] [-r room_id | -a Room_Alias] [-f] [-n [1-100]]
الحجج الاختيارية:
-H ، -عرض رسالة المساعدة هذه والخروج
-r room_id ،-غرفة الغرفة
حدد معرف الغرفة
-A ROOM_ALIAS ،-الغرفة-ROOM_ALIAS
حدد الغرفة حسب الاسم المستعار للغرفة
-F ، -تتبع انتظر الرسائل وطباعتها عند وصولها
-N [1-100] ،-Messages [1-100]
اطبع آخر الرسائل المحددة
يطبع الخيار -f الرسائل الأخيرة ولكن انتظر رسائل جديدة وطباعتها عند وصولها.
يمكنك أيضًا إرسال الرسائل أثناء وجودك في وضع المتابعة عن طريق كتابة الرسالة التي تريد إرسالها والضغط عليها لإرسالها.
matrixcli send --help الاستخدام: Matrixcli Send [-H] [-r room_id | -a Room_Alias] [-t | -f] المحتوى
الحجج الموضعية:
محتوى
الحجج الاختيارية:
-H ، -عرض رسالة المساعدة هذه والخروج
-r room_id ،-غرفة الغرفة
حدد معرف الغرفة
-A ROOM_ALIAS ،-الغرفة-ROOM_ALIAS
حدد الغرفة حسب الاسم المستعار للغرفة
-T ، -Text يجبر البرنامج على التعامل مع المحتوى كرسالة نصية
-F ، -FIEFE FORROW PORTRON
يأخذ الأمر إرسال المحتوى الذي تريد إرساله كوسائط موضعية ، يرى البرنامج أولاً ما إذا كان النص الذي تم تمريره يمثل ملفًا موجودًا في نظام الملفات ، إذا كان الأمر كذلك ، فسيحاول تخمين نوع MIME بناءً على الامتداد لمعاينة المحتوى بشكل صحيح في نهاية المستلم. إذا كان النص الذي تم تمريره لا يمثل أي ملف على نظام الملفات ، فسيقوم البرنامج بمعاملته كرسالة نصية.
لإجبار البرنامج على التعامل مع المحتوى كملف أو نص ، يمكنك تحديد الوسائط الاختيارية - الولادة أو النص.
matrixcli unread --help الاستخدام: matrixcli unread [-h] [-f] [-r room_id | -a Room_Alias]
الحجج الاختيارية:
-H ، -عرض رسالة المساعدة هذه والخروج
-f ، -لا تغلق الاتصال وطباعة عدد غير المقروء
الرسائل كلما تم تحديثها
-r room_id ،-غرفة الغرفة
حدد معرف الغرفة
-A ROOM_ALIAS ،-الغرفة-ROOM_ALIAS
حدد الغرفة حسب الاسم المستعار للغرفة
يخرج رسائل غير مقروءة لـ room_id أو جميع الغرف (باستثناء تلك الموجودة