MatrixCli是基於矩陣python-SDK的簡單矩陣客戶端。如果您想知道這是如何有用的,請參閱應用程序
您可以在root Project目錄中使用setup.py安裝matrixcli。這還將安裝所有必要的依賴項。
git clone https://github.com/saadnpq/matrixcli.git
cd ./matrixcli
sudo ./install.sh這會將MatrixCli腳本放在您的路徑中,在/etc/attrixcli和SystemD單元文件中安裝模板config.py文件中/lib/systemd/user
對於Ubuntu用戶,您必須在運行上述命令之前先安裝Python3-stetoops
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代碼
ignore_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網頁打開或僅用於通知的電子應用程序。
您可以啟用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服務器] [-u用戶名] [-p密碼] [-c config]
{發送,聽,房間,未讀,尾巴} ...
命令行矩陣客戶端
可選參數:
-h, - 赫爾普顯示此幫助消息和退出
-s服務器, - 服務器服務器
服務器登錄到
-u用戶名, - 使用用戶名
用戶名登錄
-p密碼, - password密碼
密碼
-c config,-config config
自定義配置文件
子命令:
{發送,聽,房間,未讀,尾巴}
發送一些東西到房間
聽永遠聽的事件
房間都有所有加入的房間
未讀取未讀通知
尾部打印最後一條消息
要列出特定子命令的選項(例如發送)
matrixcli send --help 每個應該在特定房間上行動的子命令都接受-r/–room-id的可選論點,該爭論使房間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
如果您沒有通過命令行指定房間ID或房間 - Alias,則該程序將在需要時提示您加入的房間。
matrixcli listen對於事件和輸出輸出消息,將永遠傾聽到STDOUT和OS通知,如果您在無頭系統上運行此命令,或者由於某些原因而無法發送通知,則該命令將僅輸出事件,而不會在不抱怨的情況下輸出stdout。
您可以按CC退出偵聽模式。
該程序還安裝了使用matrixcli listen程序,為了啟用它,您可以運行以下內容。
systemctl --user enable --now matrixcli返回房間的最後N消息。
matrixcli tail -h用法:matrixcli尾巴[-h] [-r Room_id | -a room_alias] [-f] [-n [1-100]]
可選參數:
-h, - 赫爾普顯示此幫助消息和退出
-r room_id,-room-id room_id
指定房間ID
-a room_alias, - 房間-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, - 赫爾普顯示此幫助消息和退出
-r room_id,-room-id room_id
指定房間ID
-a room_alias, - 房間-Alias Room_alias
通過房間別名指定房間
-t, - 文本迫使該程序將內容視為短信
-f, - 文件強制將內容視為文件的程序
send命令將您要發送的內容作為位置參數發送,該程序首先查看是否傳遞的文本表示文件系統中存在的文件,如果這樣,它將嘗試根據擴展名猜測其MIME類型,以正確預覽接收器端上的內容。如果傳遞的文本不代表文件系統上的任何文件,則程序將將其視為文本消息。
為了強製程序將內容視為文件或文本,您可以指定可選的參數 - 文件或–TEXT。
matrixcli unread --help 用法:matrixcli unread [-h] [-f] [-r room_id | -a room_alias]
可選參數:
-h, - 赫爾普顯示此幫助消息和退出
-f, - follow不要關閉連接並打印未讀的數量
每當更新時消息
-r room_id,-room-id room_id
指定房間ID
-a room_alias, - 房間-Alias Room_alias
通過房間別名指定房間
如果未指定Room_id或Room_alias