@@ -14,10 +14,11 @@ creating rooms, inviting, verifying, and so much more.
14
14
- It is a simple but convenient app to
15
15
- send Matrix text messages as well as text, image, audio, video or
16
16
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
18
19
- 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
21
22
- It exclusively offers a command-line interface (CLI).
22
23
- Hence the word-play: matrix-command(lin)er
23
24
- 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.
33
34
Use cases for this program could be
34
35
- a bot or part of a bot,
35
36
- to send alerts,
36
- - combine it with cron to publish periodic data,
37
+ - combine it with ` cron ` to publish periodic data,
37
38
- send yourself daily/weekly reminders via a cron job
38
39
- send yourself a daily song from your music collection
39
40
- a trivial way to fire off some instant messages from the command line
40
41
- to automate sending via programs and scripts
41
42
- a "blogger" who frequently sends messages and images to the same
42
43
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
44
45
sending messages to her/his own room
45
46
- as educational material that showcases the use of the ` matrix-nio ` SDK
46
47
@@ -100,7 +101,7 @@ Messages to send can be provided
100
101
101
102
For sending messages the program supports various text formats:
102
103
1 ) text: default
103
- 2 ) html: HTML formated text
104
+ 2 ) html: HTML formatted text
104
105
3 ) markdown: MarkDown formatted text
105
106
4 ) code: used a block of fixed-sized font, ideal for ASCII art or
106
107
tables, bash outputs, etc.
@@ -110,9 +111,12 @@ For sending messages the program supports various text formats:
110
111
Photos and images that can be sent. That includes files like
111
112
.jpg, .gif, .png or .svg.
112
113
113
- Arbirtary files like .txt, .pdf, .doc, audio files like .mp3
114
+ Arbitrary files like .txt, .pdf, .doc, audio files like .mp3
114
115
or video files like .mp4 can also be sent.
115
116
117
+ Matrix events like sending an emoji reaction, replying as a thread,
118
+ message edits can be sent.
119
+
116
120
# Listening, Receiving
117
121
118
122
One 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.
149
153
# Summary, TLDR
150
154
151
155
This 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.
154
158
155
159
# Dependencies
156
160
@@ -415,7 +419,7 @@ optional arguments:
415
419
Create this room or these rooms. One or multiple room
416
420
aliases can be specified. The room (or multiple ones)
417
421
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-
419
423
create with --name and --topic to add names and topics
420
424
to the room(s) to be created.
421
425
--room-join ROOM_JOIN [ROOM_JOIN ...]
@@ -544,7 +548,7 @@ optional arguments:
544
548
HTML tags are accepted by Matrix.
545
549
-z, --markdown Send message as format "MARKDOWN". If not specified,
546
550
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.
548
552
-k, --code Send message as format "CODE". If not specified,
549
553
message will be sent as format "TEXT". If both --html
550
554
and --code are specified then --code takes priority.
@@ -722,6 +726,7 @@ submitting a Pull Request.
722
726
- Storage for End-to-end encryption
723
727
- Storage of credentials
724
728
- Supports access token instead of password
729
+ - Supports SSO (Single Sign-On)
725
730
- Sending messages
726
731
- Sending notices
727
732
- Sending formatted messages
@@ -733,6 +738,8 @@ submitting a Pull Request.
733
738
- Sending image files (photos, etc.)
734
739
- Sending of media files (music, videos, etc.)
735
740
- 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
736
743
- Receiving messages forever
737
744
- Receiving messages once
738
745
- Receiving last messages
@@ -748,6 +755,9 @@ submitting a Pull Request.
748
755
- Unbanning from rooms
749
756
- Kicking from rooms
750
757
- 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
751
761
- Supports notification via OS of received messages
752
762
- Supports periodic execution via crontab
753
763
- Supports room aliases
@@ -756,6 +766,7 @@ submitting a Pull Request.
756
766
- In-source documentation
757
767
- Can be run as a service
758
768
- Smart tab completion for shells like bash (thanks to PR from @mizlan :clap : )
769
+ - More than 200 stars :stars : on Github
759
770
760
771
# Autocompletion
761
772
@@ -765,10 +776,23 @@ Here is a sample snapshot of tab completion in action:
765
776
766
777
![ tab completion] ( ./screenshots/tab_complete.png )
767
778
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
+
768
792
# For Developers
769
793
770
794
- Don't change tabbing, spacing, or formating as file is automatically
771
- sorted, linted and formated .
795
+ sorted, linted and formatted .
772
796
- ` pylama:format=pep8:linters=pep8 `
773
797
- first ` isort ` import sorter
774
798
- then ` flake8 ` linter/formater
@@ -777,7 +801,7 @@ Here is a sample snapshot of tab completion in action:
777
801
- isort matrix-commander.py
778
802
- flake8 matrix-commander.py
779
803
- 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.
781
805
782
806
# License
783
807
0 commit comments