MatrixCli는 Matrix-Python-SDK를 기반으로 한 간단한 매트릭스 클라이언트입니다. 이것이 어떻게 유용한 지 궁금하다면 응용 프로그램을 참조하십시오.
루트 프로젝트 디렉토리에서 setup.py를 사용하여 MatrixCli를 설치할 수 있습니다. 또한 필요한 모든 종속성을 설치합니다.
git clone https://github.com/saadnpq/matrixcli.git
cd ./matrixcli
sudo ./install.sh이렇게하면 MatrixCli 스크립트를 경로에 넣고/lib/systemd/user에있는/etc/matrixcli 및 systemd 단위 파일에 템플릿 config.py 파일을 설치합니다.
Ubuntu 사용자의 경우 위의 명령을 실행하기 전에 먼저 Python3-setuptools를 설치해야합니다.
sudo apt install python3-setuptoolsSystemD 서비스를 활성화하려면 다음을 실행할 수 있습니다.
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 변수가 있어야합니다.
비밀번호 값을 반환하는 함수 정의의 근거는 비밀번호를 일반 텍스트로 쓰지 않으려면 암호화 된 파일 또는 키 링에서 암호를 생성하거나 읽는 피스톤 코드를 작성할 수 있다는 것입니다.
INGORE_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 상태 표시 줄에 대한 모듈을 작성하여 읽지 않은 메시지를 표시합니다. 다음은 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 산출:
#usage : matrixcli [-h] [-s server] [-u username] [-p password] [-c config]
{보내기, 듣기, 방, 읽지 않음, 꼬리} ...
명령 줄 매트릭스 클라이언트
선택적 인수 :
-h, -help이 도움말 메시지와 종료를 보여줍니다
-S 서버, -서버 서버
로그인 할 서버
-u username, -username username입니다
로그인 할 사용자 이름
-P 비밀번호, -password 비밀번호
비밀번호
-C 구성, -코피그 구성
사용자 정의 구성 파일
하위 명령 :
{보내기, 듣기, 방, 읽지 않음, 꼬리}
방에 무언가를 보내십시오
이벤트에 대해 영원히 들어보세요
객실은 모두 가입 된 객실을 얻습니다
읽지 않은 알림을 받으십시오
테일 프린트 마지막 메시지
특정 하위 명령의 옵션을 나열하려면 (예 : Send)
matrixcli send --help 특정 방에서 행동 해야하는 모든 하위 명령은 객실 -ID가 실내 별명을 취하는 행동을하기 위해 room-id가 사용하는 -r/room-iD 옵션 인수를 받아들입니다.
방을 실행하는 방을 얻으려면 :
매트릭스 클리 룸
다음을 출력합니다 (내 계정의 경우).
로그인 .... 로그인 .... 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 listenSTDOUT 및 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, -help이 도움말 메시지와 종료를 보여줍니다
-r room_id,-room-id room_id
객실 ID를 지정합니다
-룸 _alias,-room-alias room_alias
객실별로 방을 지정하십시오
-f, -팔로우를 기다리고 메시지가 올 때 인쇄합니다.
-N [1-100],-Messages [1-100]
마지막으로 지정된 메시지를 인쇄합니다
옵션 -f는 마지막 메시지를 인쇄하지만 새 메시지를 기다렸다가 올 때 인쇄합니다.
다음 모드에서 보내는 동안 메시지를 보내고 보내려는 메시지를 입력하여 Enter를 누르면 전송 할 수도 있습니다.
matrixcli send --help 사용 : MatrixCli Send [-h] [-r room_id | -a room_alias] [-t | -f] 내용
위치 논쟁 :
콘텐츠
선택적 인수 :
-h, -help이 도움말 메시지와 종료를 보여줍니다
-r room_id,-room-id room_id
객실 ID를 지정합니다
-룸 _alias,-room-alias room_alias
객실별로 방을 지정하십시오
-t, -text 컨텐츠를 문자 메시지로 처리하도록 프로그램을 강제
-f, -파일 강제 프로그램은 내용을 파일로 처리하도록합니다.
Send Command는 전송하려는 컨텐츠를 위치 인수로 가져옵니다. 프로그램은 먼저 전달 된 텍스트가 파일 시스템에 존재하는 파일을 나타내는지를 먼저 알 수 있습니다. 그렇다면 수신자의 끝에서 컨텐츠를 올바르게 미리 볼 수 있도록 확장자 유형을 기반으로 MIME 유형을 추측하려고합니다. 전달 된 텍스트가 파일 시스템의 파일을 나타내지 않으면 프로그램은 문자 메시지로 취급됩니다.
프로그램이 컨텐츠를 파일 또는 텍스트로 취급하도록 강요하려면 옵션 인수 (file 또는 –text)를 지정할 수 있습니다.
matrixcli unread --help 사용법 : MatrixCli는 읽지 않음 [-h] [-f] [-r room_id | -a room_alias]
선택적 인수 :
-h, -help이 도움말 메시지와 종료를 보여줍니다
-f, -팔로우하지 말고 연결하지 말고 연결되지 않은 수를 인쇄합니다.
업데이트 될 때마다 메시지
-r room_id,-room-id room_id
객실 ID를 지정합니다
-룸 _alias,-room-alias room_alias
객실별로 방을 지정하십시오
room_id 또는 room_alias가 지정되지 않은 경우 room_id 또는 모든 방 (ingore_rooms에있는 룸 제외)에 대한 메시지를 출력합니다.