Matrixcli เป็นไคลเอนต์เมทริกซ์แบบง่ายขึ้นอยู่กับ Matrix-Python-SDK หากคุณสงสัยว่าสิ่งนี้มีประโยชน์อย่างไรโปรดดูแอปพลิเคชัน
คุณสามารถติดตั้ง matrixcli โดยใช้ setup.py ในไดเรกทอรีรูทโครงการ สิ่งนี้จะติดตั้งการพึ่งพาที่จำเป็นทั้งหมด
git clone https://github.com/saadnpq/matrixcli.git
cd ./matrixcli
sudo ./install.shสิ่งนี้จะทำให้สคริปต์ matrixcli อยู่ในพา ธ ของคุณติดตั้งไฟล์เทมเพลต config.py ใน/etc/matrixcli และไฟล์หน่วย Systemd ใน/lib/systemd/ผู้ใช้
สำหรับผู้ใช้ Ubuntu คุณต้องติดตั้ง Python3-setuptools ก่อนก่อนที่จะเรียกใช้คำสั่งด้านบน
sudo apt install python3-setuptoolsในการเปิดใช้งานบริการ SystemD คุณสามารถเรียกใช้สิ่งต่อไปนี้
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 ซึ่งเก็บรายการพจนานุกรมที่พจนานุกรมทุกฉบับประกอบด้วยเซิร์ฟเวอร์ข้อมูลบัญชีชื่อผู้ใช้และรหัสผ่านการประเมิน
เหตุผลที่อยู่เบื้องหลังการกำหนดฟังก์ชั่นที่ส่งคืนค่ารหัสผ่านคือถ้าคุณไม่ต้องการเขียนรหัสผ่านในข้อความธรรมดาคุณสามารถเขียนรหัส Python ใด ๆ ที่คุณต้องการที่สร้างหรืออ่านรหัสผ่านจากไฟล์ที่เข้ารหัสหรือแหวนคีย์
รายการ NEGNORE_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คำสั่งนั้นจะเข้าสู่ระบบด้วยพารามิเตอร์ของบัญชีที่สาม
หากคุณมีสองบัญชีขึ้นไปที่มีชื่อผู้ใช้เดียวกัน แต่มีเซิร์ฟเวอร์ที่แตกต่างกัน คุณสามารถระบุตัวเลือก - เซิร์ฟเวอร์เพื่อไม่ให้บัญชีที่เป็นไปได้ในบัญชีที่คุณต้องการ
ด้านล่างเป็นวิธีที่ฉันใช้ MatrixCli เป็นการส่วนตัว
แรงจูงใจแรกที่จะทำให้โปรแกรมนี้คือฉันไม่ต้องการให้หน้าเว็บเปิดใช้งานเปิดหรือเรียกใช้แอพอิเล็กตรอนเพียงเพื่อการแจ้งเตือน
คุณสามารถเปิดใช้งานบริการ SystemD เพื่อรับการแจ้งเตือนสำหรับกิจกรรมที่มา
systemctl --user enable --now matrixcli
การใช้ matrixcli unread คุณเขียนโมดูลสำหรับแถบสถานะใด ๆ เพื่อแสดงข้อความที่ยังไม่ได้อ่าน นี่คือตัวอย่างง่ายๆสำหรับโพลีบาร์
[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 เอาท์พุท:
#usage: matrixcli [-h] [-s Server] [-U username] [-p Password] [-c config]
{ส่ง, ฟัง, ห้อง, ยังไม่ได้อ่าน, หาง} ...
ไคลเอนต์บรรทัดคำสั่งเมทริกซ์
อาร์กิวเมนต์เสริม:
-H, -HELP แสดงข้อความช่วยเหลือและออกนี้
-s Server, -เซิร์ฟเวอร์เซิร์ฟเวอร์
เซิร์ฟเวอร์ที่จะเข้าสู่ระบบ
-U ชื่อผู้ใช้ -ชื่อผู้ใช้ชื่อผู้ใช้ชื่อ
ชื่อผู้ใช้จะเข้าสู่ระบบด้วย
-p รหัสผ่าน -รหัสผ่าน password
รหัสผ่าน
-c config, -config -config
ไฟล์กำหนดค่าที่กำหนดเอง
คำสั่งย่อย:
{ส่ง, ฟัง, ห้อง, ยังไม่ได้อ่าน, หาง}
ส่งอะไรไปที่ห้อง
ฟังฟังตลอดไปสำหรับกิจกรรม
ห้องพักห้องพักทั้งหมดเข้าร่วม
ยังไม่ได้อ่านการแจ้งเตือนที่ยังไม่ได้อ่าน
พิมพ์ข้อความสุดท้าย
เพื่อแสดงรายการตัวเลือกของคำสั่งย่อยเฉพาะ (เช่นส่ง)
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
หากคุณไม่ได้ระบุ Room-Id หรือ Room-Alias ผ่านบรรทัดคำสั่งโปรแกรมจะแจ้งให้คุณทราบถึงห้องที่เข้าร่วมเมื่อต้องการ
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, -HELP แสดงข้อความช่วยเหลือและออกนี้
-r room_id,-room-id room_id
ระบุรหัสห้อง
-a room_alias,-room-alias room_alias
ระบุห้องตามนามแฝงในห้อง
-f, -รอการติดตามข้อความและพิมพ์ตามที่พวกเขามา
-n [1-100],-ข้อความ [1-100]
พิมพ์ข้อความล่าสุดที่ระบุ
ตัวเลือก -F พิมพ์ข้อความสุดท้าย แต่รอข้อความใหม่และพิมพ์ตามที่มา
นอกจากนี้คุณยังสามารถส่งข้อความขณะอยู่ในโหมดติดตามโดยพิมพ์ข้อความที่คุณต้องการส่งและกด ENTER เพื่อส่ง
matrixcli send --help การใช้งาน: matrixcli ส่ง [-h] [-r room_id | -a room_alias] [-t | -f] เนื้อหา
ข้อโต้แย้งตำแหน่ง:
เนื้อหา
อาร์กิวเมนต์เสริม:
-H, -HELP แสดงข้อความช่วยเหลือและออกนี้
-r room_id,-room-id room_id
ระบุรหัสห้อง
-a room_alias,-room-alias room_alias
ระบุห้องตามนามแฝงในห้อง
-t, -ข้อความบังคับให้โปรแกรมปฏิบัติต่อเนื้อหาเป็นข้อความ
-f, -ไฟล์บังคับให้โปรแกรมปฏิบัติต่อเนื้อหาเป็นไฟล์
คำสั่งส่งจะใช้เนื้อหาที่คุณต้องการส่งเป็นอาร์กิวเมนต์ตำแหน่งโปรแกรมก่อนจะเห็นว่าข้อความที่ส่งผ่านเป็นตัวแทนของไฟล์ที่มีอยู่ในระบบไฟล์หรือไม่หากเป็นเช่นนั้นจะพยายามเดาประเภท MIME ตามส่วนขยายเพื่อดูตัวอย่างเนื้อหาในตอนท้ายของผู้รับ หากข้อความที่ผ่านไม่ได้แสดงไฟล์ใด ๆ ในระบบไฟล์โปรแกรมจะถือว่าเป็นข้อความ
ในการบังคับให้โปรแกรมปฏิบัติต่อเนื้อหาเป็นไฟล์หรือข้อความคุณสามารถระบุอาร์กิวเมนต์เสริม - ไฟล์หรือ - ข้อความ
matrixcli unread --help การใช้งาน: matrixcli unread [-h] [-f] [-r room_id | -a room_alias]
อาร์กิวเมนต์เสริม:
-H, -HELP แสดงข้อความช่วยเหลือและออกนี้
-f, -ติดตามอย่าปิดการเชื่อมต่อและพิมพ์จำนวนที่ยังไม่ได้อ่าน
ข้อความเมื่ออัปเดต
-r room_id,-room-id room_id
ระบุรหัสห้อง
-a room_alias,-room-alias room_alias
ระบุห้องตามนามแฝงในห้อง
เอาต์พุตข้อความที่ยังไม่ได้อ่านสำหรับ room_id หรือห้องพักทุกห้อง (ยกเว้นข้อความที่ไม่สนใจ _rooms) หากไม่มี room_id หรือ room_alias ระบุ