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