MatrixCli-это простой клиент Matrix на основе 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/user
Для пользователей Ubuntu вы должны сначала установить Python3-Setuptools, прежде чем запустить вышеуказанные команды
sudo apt install python3-setuptoolsЧтобы включить SystemD Service, вы можете запустить следующее.
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, который вы хотите, чтобы генерировал или считывает пароль из зашифрованного файла или кольцо клавиши
Список игнорирования_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Эта команда будет входить в систему с параметрами третьей учетной записи.
Если у вас есть два или более учетных записей с одним и тем же имя пользователя, но с разными серверами. Вы можете указать опцию –erver, чтобы заменить возможные учетные записи в нужную вам учетную запись.
Ниже приведены способы, которыми я лично использую MatrixCli,
Первым мотивом создания этой программы было то, что я не хотел держать веб -страницу Riot или запустить электронное приложение только для уведомлений.
Вы можете позволить SystemD Service, чтобы получить уведомления о событиях по мере их появления.
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 пользователя] [-p пароль] [-c config]
{Отправить, слушать, комнаты, непрочитанные, хвост} ...
Клиент матрицы командной строки
Необязательные аргументы:
-h, -help показывать это сообщение справки и выход
-s сервер, сервер -сервер
сервер для входа в
-u Имя пользователя, -Имя пользователя USERNER
Имя пользователя, чтобы войти в систему с
-p пароль, пароль -пассы
пароль
-c config, -config config
Пользовательский файл конфигурации
Подкоманды:
{Отправить, слушать, номера, непрочитанные, хвост}
Отправить что -нибудь в комнату
Слушай Слушай вечно для событий
Номера получают все объединенные номера
непрочитанные уведомления о непрочитанных
хвостовая печать Последние сообщения
Чтобы перечислить параметры определенной под команды, (например, отправка)
matrixcli send --help Каждый подкоманда, которая должна действовать в определенной комнате, принимает необязательный аргумент -Р/–moom-id, который берет на себя идентификатор комнаты, чтобы действовать, или -a/room_alias, который берет псевдоним комнаты.
Чтобы получить комнату пробега в комнате:
Matrixcli Номера
выводит следующее (для моей учетной записи).
Вход в систему .... вошел в систему .... 0: momenamr :! ocomuldomkojwyzxts: matrix.org 1: Mahmoudhafez :! fcxcmulziohnqomvxd: saadnpq.com 2: Emacs Matrix Client :! 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Слушает навсегда для событий и выходов входящих сообщений как в уведомлениях STDOUT, так и в ОС, если вы запускаете эту команду в системе без головы или программа не удалось отправить уведомления по какой -то причине, он выведет события только в Stdout без жалоб.
Вы можете нажать CC, чтобы покинуть режим прослушивания.
Существует также системная служба, установленная с программой, которая использует matrixcli listen , чтобы включить его, вы можете запустить следующее.
systemctl --user enable --now matrixcliВозвращает последние N сообщений комнаты.
matrixcli tail -h Использование: Matrixcli Tail [-h] [-r rap_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 Send [-h] [-r rap_id | -A Room_alias] [-t | -f] Контент
позиционные аргументы:
содержание
Необязательные аргументы:
-h, -help показывать это сообщение справки и выход
-r Room_id,-Room-ID Room_id
Укажите идентификатор комнаты
-A Room_alias,-Room-Alias Room_alias
Укажите комнату по псевдониме комнаты
-t, -text заставил программу рассматривать контент как текстовое сообщение
-f, -file заставляет программу рассматривать контент как файл
Команда Send принимает контент, который вы хотите отправить в качестве позиционных аргументов, программа сначала видит, представляет ли переданный текст файл, который существует в файловой системе, если это так, она попытается угадать свой тип MIME на основе расширения для правильного предварительного просмотра контента на конце приемника. Если переданный текст не представляет какого -либо файла в файловой системе, программа будет рассматривать его как текстовое сообщение.
Чтобы заставить программу рассматривать контент как файл или текст, вы можете указать необязательные аргументы - file или –text.
matrixcli unread --help Использование: Matrixcli Unroad [-h] [-f] [-r rap_id | -А oom_alias]
Необязательные аргументы:
-h, -help показывать это сообщение справки и выход
-f, -подойдите, не закрывайте соединение и не печатайте количество непрочитанных
Сообщения всякий раз, когда обновляются
-r Room_id,-Room-ID Room_id
Укажите идентификатор комнаты
-A Room_alias,-Room-Alias Room_alias
Укажите комнату по псевдониме комнаты
выходы нечитанные сообщения для комнаты_ид или всех комнат (кроме как в Ignore_rooms), если нет room_id или rap_alias