@@ -14,10 +14,11 @@ creating rooms, inviting, verifying, and so much more.
1414- It is a simple but convenient app to
1515 - send Matrix text messages as well as text, image, audio, video or
1616 other arbitrary files
17- - listen to and receive Matrix messages
17+ - listen to and receive Matrix messages, images, audio, video, etc.
18+ - download media files like images or audio
1819 - perform Matrix emoji verification
19- - create rooms
20- - invite to rooms
20+ - performs actions of rooms ( create rooms, invite to rooms, etc.)
21+ - and much more
2122- It exclusively offers a command-line interface (CLI).
2223- Hence the word-play: matrix-command(lin)er
2324- There is no GUI and there are no windows (except for pop-up windows in
@@ -33,14 +34,14 @@ messages from the CLI in various different ways.
3334Use cases for this program could be
3435- a bot or part of a bot,
3536- to send alerts,
36- - combine it with cron to publish periodic data,
37+ - combine it with ` cron ` to publish periodic data,
3738- send yourself daily/weekly reminders via a cron job
3839- send yourself a daily song from your music collection
3940- a trivial way to fire off some instant messages from the command line
4041- to automate sending via programs and scripts
4142- a "blogger" who frequently sends messages and images to the same
4243 room(s) could use it
43- - a person could write a diary or run a gratitutde journal by
44+ - a person could write a diary or run a gratitude journal by
4445 sending messages to her/his own room
4546- as educational material that showcases the use of the ` matrix-nio ` SDK
4647
@@ -100,7 +101,7 @@ Messages to send can be provided
100101
101102For sending messages the program supports various text formats:
1021031 ) text: default
103- 2 ) html: HTML formated text
104+ 2 ) html: HTML formatted text
1041053 ) markdown: MarkDown formatted text
1051064 ) code: used a block of fixed-sized font, ideal for ASCII art or
106107 tables, bash outputs, etc.
@@ -110,9 +111,12 @@ For sending messages the program supports various text formats:
110111Photos and images that can be sent. That includes files like
111112.jpg, .gif, .png or .svg.
112113
113- Arbirtary files like .txt, .pdf, .doc, audio files like .mp3
114+ Arbitrary files like .txt, .pdf, .doc, audio files like .mp3
114115or video files like .mp4 can also be sent.
115116
117+ Matrix events like sending an emoji reaction, replying as a thread,
118+ message edits can be sent.
119+
116120# Listening, Receiving
117121
118122One can listen to one or multiple rooms. Received messages will be displayed
@@ -149,8 +153,8 @@ well as ban, unban and kick other users from rooms.
149153# Summary, TLDR
150154
151155This simple Matrix client written in Python allows you to send and
152- receive messages and verify other devices. End-to-end encryption is enabled
153- by default and cannot be turned off.
156+ receive messages and files and verify other devices. End-to-end encryption
157+ is enabled by default and cannot be turned off.
154158
155159# Dependencies
156160
@@ -415,7 +419,7 @@ optional arguments:
415419 Create this room or these rooms. One or multiple room
416420 aliases can be specified. The room (or multiple ones)
417421 provided in the arguments will be created. The user
418- must be permitted to create rooms.Combine --room-
422+ must be permitted to create rooms. Combine --room-
419423 create with --name and --topic to add names and topics
420424 to the room(s) to be created.
421425 --room-join ROOM_JOIN [ROOM_JOIN ...]
@@ -544,7 +548,7 @@ optional arguments:
544548 HTML tags are accepted by Matrix.
545549 -z, --markdown Send message as format "MARKDOWN". If not specified,
546550 message will be sent as format "TEXT". E.g. that
547- allows sending of text formated in MarkDown language.
551+ allows sending of text formatted in MarkDown language.
548552 -k, --code Send message as format "CODE". If not specified,
549553 message will be sent as format "TEXT". If both --html
550554 and --code are specified then --code takes priority.
@@ -722,6 +726,7 @@ submitting a Pull Request.
722726- Storage for End-to-end encryption
723727- Storage of credentials
724728- Supports access token instead of password
729+ - Supports SSO (Single Sign-On)
725730- Sending messages
726731- Sending notices
727732- Sending formatted messages
@@ -733,6 +738,8 @@ submitting a Pull Request.
733738- Sending image files (photos, etc.)
734739- Sending of media files (music, videos, etc.)
735740- Sending of arbitrary files (PDF, xls, doc, txt, etc.)
741+ - Sending events such as emoji reactions, or replies as threads
742+ - Using events to edit sent messages
736743- Receiving messages forever
737744- Receiving messages once
738745- Receiving last messages
@@ -748,6 +755,9 @@ submitting a Pull Request.
748755- Unbanning from rooms
749756- Kicking from rooms
750757- Supports renaming of device
758+ - Supports renaming of display name
759+ - Supports skipping SSL verification to use HTTP instead of HTTPS
760+ - Supports providing local SSL certificate files
751761- Supports notification via OS of received messages
752762- Supports periodic execution via crontab
753763- Supports room aliases
@@ -756,6 +766,7 @@ submitting a Pull Request.
756766- In-source documentation
757767- Can be run as a service
758768- Smart tab completion for shells like bash (thanks to PR from @mizlan :clap : )
769+ - More than 200 stars :stars : on Github
759770
760771# Autocompletion
761772
@@ -765,10 +776,23 @@ Here is a sample snapshot of tab completion in action:
765776
766777![ tab completion] ( ./screenshots/tab_complete.png )
767778
779+ # Performance and Speed
780+
781+ - ` matrix-commander ` is written in Python and hence rather on the slow side
782+ - It is not thread-safe. One cannot just simply run multiple instances
783+ at the same time. However, with very careful set-up one can run
784+ multiple instances, but that is not the target use case.
785+ - Where possible bundle several actions together into a single call.
786+ For example if one wants to send 8 images, then it is significatly faster
787+ to call ` matrix-commander ` once with ` -i ` specifying 8 images, than
788+ to call ` matrix-commander ` 8 times with one image each call. One needs
789+ to send 5 messages, 10 images, 5 audios, 3 PDF files and 7 events to
790+ the same user? Call ` matrix-commander ` once, not 30 times.
791+
768792# For Developers
769793
770794- Don't change tabbing, spacing, or formating as file is automatically
771- sorted, linted and formated .
795+ sorted, linted and formatted .
772796- ` pylama:format=pep8:linters=pep8 `
773797- first ` isort ` import sorter
774798- then ` flake8 ` linter/formater
@@ -777,7 +801,7 @@ Here is a sample snapshot of tab completion in action:
777801 - isort matrix-commander.py
778802 - flake8 matrix-commander.py
779803 - python3 -m black --line-length 79 matrix-commander.py
780- - there is a script called ` lintmc.sh ` in ` scripts ` directory for that
804+ - There is a script called ` lintmc.sh ` in ` scripts ` directory for that.
781805
782806# License
783807
0 commit comments