mirror of https://github.com/dani/patrix.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Daniel Berteaud
e026a57a19
|
7 years ago | |
---|---|---|
scripts | 7 years ago | |
LICENSE | 7 years ago | |
README.md | 7 years ago | |
TODO | 7 years ago | |
patrix.spec | 7 years ago |
README.md
patrix is a simple command line client for Matrix written in perl. It can create rooms, send text messages or files to rooms. I use it to send Zabbix alerts to a Matrix room, a bit like sendxmpp can do with XMPP.
It requires the following perl modules
- LWP::UserAgent
- HTTP::Request
- Config::Simple
- File::HomeDir
- File::Basename
- File::MimeInfo
- Path::Tiny
- Getopt::Long
- URI::Escape
- JSON
- Term::ReadKey
For now it's very limited, and can only send text messages and files to a room. Here're the vailable options:
- --user: specify the user you want to login as
- --password: the password to auth against the HS
- --server: the HS you want to connect to. Default is https://matrix.org
- --access_token: can be used instead of --user and --password
- --room: the room to which the message must be sent. Can be a room ID or a room alias
- --message: the text message you want to send. If you send something on stdin, it's assumed to be the text to send and this option is ignored
- --debug: if present, will be verbose
- --conf: path to a conf file. Default conf file is ~/.patrixrc
- --file: if action is send-file, specify the path of the file to send
- --invite: a matrix ID (@user:server.domain.tld) to invite in a room. Can be specified several times. Valid for create-room and modify-room
- --name: set the name of a room. Valid for create-room and modify-room
- --topic: set the topic of a room. Valid for create-room and modify-room
- --alias: set an alias for a room. Valid for create-room and modify-room
- --join_rules: change joining rules. Can be either public (anyone can join the room) or invite (you must be invited to join the room)
- --federation: Enable the federation when creating a room. Default is enabled. Can be turned of with --no-federation
- --action: what to do. Valid actions are
- send-msg (default): send the text message
- send-message: an alias for send-msg
- send-notice: send a notice. Very similar to send-msg but the client may display it differently. Eg Riot will not notify you for notices
- send-file: send a binary file. --file must be set
- create-room: create a new room
- modify-room: change an existing room (add an alias, set name, topic, join_rules, invite)
- get-access-token: just login and print the access token
- get-room-list: prints the list of public rooms of this server
- get-room-id: resolve a room alias to its ID
All the available options can be set a the configuration file using a simple ini style format, eg
user=alert
password=p@ssw0rd
room=!BWdARvAgNQGgSjgtAG:matrix.domain.com
Options given on the command line take precedence over the config file
Examples:
cat /var/log/boot.log | patrix --room='#bootlogs:matrix.domain.com' --action=send-notice
patrix --action=send-file --file=/home/dani/archive.tgz --user=dani --password=secret --server=matrix.domain.com
patrix --debug --message="Hello World"
patrix --action=create-room --name="Human readable room name" --invite="@dani:matrix.example.com"
patrix --action=modify-room --join_rules=public --topic='New topic' --room='!uXfknaWNcAnvthnIms:matrix.example.com' --invite='@admin:matrix.example.com'