MatrixCliは、Matrix-Python-SDKに基づいた単純なマトリックスクライアントです。これがどのように役立つのか疑問に思うなら、アプリケーションを参照してください
ルートプロジェクトディレクトリにsetup.pyを使用してmatrixcliをインストールできます。これにより、必要なすべての依存関係もインストールされます。
git clone https://github.com/saadnpq/matrixcli.git
cd ./matrixcli
sudo ./install.shこれにより、MatrixCliスクリプトがパスに配置され、テンプレートconfig.pyファイルを/etc/matrixcliおよびsystemd unitファイルを/lib/systemd/userにインストールします。
ubuntuユーザーの場合、上記のコマンドを実行する前に最初にpython3-setuptoolsをインストールする必要があります
sudo apt install python3-setuptoolsSystemDサービスを有効にするには、以下を実行できます。
systemctl --user enable --now matrixcliアカウント構成は、優先順位でソートされた次の場所のいずれかのConfig.pyファイルを介して実行されます
これは、1つのアカウントサンプル構成です。
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コードを記述できることです。
Ingrore_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そのコマンドは、3番目のアカウントのパラメーターでログインします。
同じユーザー名があり、異なるサーバーを使用して2つ以上のアカウントがある場合。可能なアカウントを希望するアカウントに登録するために、-Serverオプションを指定できます。
以下は、私が個人的にMatrixCliを使用する方法です。
このプログラムを作成する最初の動機は、Riot Webページを開いたままにしたり、通知のためだけに電子アプリを実行したりしたくないということでした。
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 たとえば、私は毎日私の音楽ディレクトリから特定の部屋にランダムな歌を送るこのクロンの仕事を持っています。
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、 - ヘルプこのヘルプメッセージと出口を表示します
-sサーバー、 - サーバーサーバー
ログインするサーバー
-u username、-username username
ログインするユーザー名
-pパスワード、 - パスワードパスワード
パスワード
-c config、--config config
カスタム構成ファイル
サブコマンド:
{送信、聞く、部屋、未読、尾}
部屋に何かを送ってください
イベントのために永遠に聞く
部屋はすべて参加した部屋を手に入れます
Unread Unread通知を取得します
最後のメッセージをテールプリントします
特定のサブコマンドのオプションをリストするには、(例:送信)
matrixcli send --help 特定の部屋に行動することになっているすべてのサブコマンドは、部屋が行動するために必要とする-r/–room-idのオプションの引数を受け入れます。
部屋のIDを取得するには:
Matrixcliルーム
以下を出力します(私のアカウント用)。
ログイン.... ログイン.... 0:momenamr:!ocomuldomkojwyzxts:matrix.org 1:Mahmoudhafez:!fcxcmulziohnqomvxd:saadnpq.com 2:Emacs Matrixクライアント:!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イベントやOSの両方の通知とOS通知の両方に出力するイベントや出力のために永遠に耳を傾けます。ヘッドレスシステムでこのコマンドを実行している場合、またはプログラムが何らかの理由で通知を送信できなかった場合、文句を言わずにイベントをSTDOUTにのみ出力します。
CCを押してリスニングモードを終了できます。
また、 matrixcli listenを使用するプログラムにインストールされているSystemDサービスもあり、次の実行を可能にすることができます。
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、-room-id room_id
部屋IDを指定します
-a room_alias、-room-alias room_alias
部屋のエイリアスで部屋を指定します
-f、 - フォローはメッセージを待って、彼らが来るときにそれらを印刷する
-n [1-100]、 - メッセージ[1-100]
最後に指定されたメッセージを印刷します
Option -Fは最後のメッセージを印刷しますが、新しいメッセージを待って、それらが来るときに印刷します。
また、送信するメッセージを入力してEnterを押して送信することにより、フォローモード中にメッセージを送信することもできます。
matrixcli send --help 使用法:matrixcli send [-h] [-r room_id | -a room_alias] [-t | -f]コンテンツ
位置的議論:
コンテンツ
オプションの引数:
-H、 - ヘルプこのヘルプメッセージと出口を表示します
-r room_id、-room-id room_id
部屋IDを指定します
-a room_alias、-room-alias room_alias
部屋のエイリアスで部屋を指定します
-t、 - テキストはプログラムにコンテンツをテキストメッセージとして扱うように強制します
-f、 - ファイルプログラムにコンテンツをファイルとして扱うように強制します
送信コマンドは、あなたが送信するコンテンツを位置の引数として取得します。プログラムは、渡されたテキストがファイルシステムに存在するファイルを表しているかどうかを最初に確認します。もしそうなら、レシーバーの端でコンテンツを正しくプレビューするために拡張機能に基づいてMIMEタイプを推測しようとします。渡されたテキストがファイルシステム上のファイルを表していない場合、プログラムはそれをテキストメッセージとして扱います。
プログラムを強制的にコンテンツをファイルまたはテキストとして扱うようにするには、オプションの引数–Fileまたは–Textを指定できます。
matrixcli unread --help 使用法:matrixcli unread [-h] [-f] [-r room_id | -a room_alias]
オプションの引数:
-H、 - ヘルプこのヘルプメッセージと出口を表示します
-f、 - フォロー接続を閉じて未読の数を印刷しないでください
更新されるたびにメッセージ
-r room_id、-room-id room_id
部屋IDを指定します
-a room_alias、-room-alias room_alias
部屋のエイリアスで部屋を指定します
room_idまたはすべての部屋の未読メッセージ(roomore_roomsを除く)の出力room_idまたはroom_aliasが指定した場合