author | Mikael Berthe <mikael@lilotux.net> |
Mon, 07 Jun 2021 20:58:18 +0200 | |
changeset 255 | 4f153a23adab |
parent 253 | c4f59affc597 |
child 264 | 8f478162d991 |
permissions | -rw-r--r-- |
0 | 1 |
# madonctl |
2 |
||
3 |
Golang command line interface for the Mastodon API |
|
4 |
||
5 |
[![license](https://img.shields.io/badge/license-MIT-blue.svg?style=flat)](https://raw.githubusercontent.com/McKael/madonctl/master/LICENSE) |
|
2 | 6 |
[![Build Status](https://travis-ci.org/McKael/madonctl.svg?branch=master)](https://travis-ci.org/McKael/madonctl) |
0 | 7 |
|
249
772a4d34c74d
Fix typo
ButterflyOfFire <42316180+BoFFire@users.noreply.github.com>
parents:
242
diff
changeset
|
8 |
`madonctl` is a [Go](https://golang.org/) CLI tool to use the Mastodon REST API. |
0 | 9 |
|
199 | 10 |
It is built on top of [madon](https://github.com/McKael/madon), my Golang |
11 |
implementation of the API. |
|
4
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
12 |
|
0 | 13 |
## Installation |
14 |
||
199 | 15 |
### Download |
173
1812a794b759
Add a note about the API change to the README file
Mikael Berthe <mikael@lilotux.net>
parents:
156
diff
changeset
|
16 |
|
199 | 17 |
Check the [Release page](https://github.com/McKael/madonctl/releases) for some |
18 |
pre-built binaries. |
|
19 |
||
20 |
More pre-built binaries might be available from the [Homepage](https://lilotux.net/~mikael/pub/madonctl/) |
|
21 |
(development version and builds for a few other platforms). |
|
173
1812a794b759
Add a note about the API change to the README file
Mikael Berthe <mikael@lilotux.net>
parents:
156
diff
changeset
|
22 |
|
4
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
23 |
### From source |
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
24 |
|
239
605a00e9d1ab
Switch to Go modules (and bump Go version requirement)
Mikael Berthe <mikael@lilotux.net>
parents:
238
diff
changeset
|
25 |
madonctl now uses Go modules introduced with Go v1.11. |
605a00e9d1ab
Switch to Go modules (and bump Go version requirement)
Mikael Berthe <mikael@lilotux.net>
parents:
238
diff
changeset
|
26 |
|
242
2a9ec03fe5a1
Use vendoring for backward compatibility
Mikael Berthe <mikael@lilotux.net>
parents:
240
diff
changeset
|
27 |
For backward compatibility, dependencies have been vendored and you should |
2a9ec03fe5a1
Use vendoring for backward compatibility
Mikael Berthe <mikael@lilotux.net>
parents:
240
diff
changeset
|
28 |
still be able to build it "the old way" with: |
0 | 29 |
|
242
2a9ec03fe5a1
Use vendoring for backward compatibility
Mikael Berthe <mikael@lilotux.net>
parents:
240
diff
changeset
|
30 |
go get github.com/McKael/madonctl |
21 | 31 |
|
239
605a00e9d1ab
Switch to Go modules (and bump Go version requirement)
Mikael Berthe <mikael@lilotux.net>
parents:
238
diff
changeset
|
32 |
Alternatively, with Go >= 1.11: |
605a00e9d1ab
Switch to Go modules (and bump Go version requirement)
Mikael Berthe <mikael@lilotux.net>
parents:
238
diff
changeset
|
33 |
|
240
7c3e7b53cbd3
Enable GO111MODULE in Travis config
Mikael Berthe <mikael@lilotux.net>
parents:
239
diff
changeset
|
34 |
git clone https://github.com/McKael/madonctl |
239
605a00e9d1ab
Switch to Go modules (and bump Go version requirement)
Mikael Berthe <mikael@lilotux.net>
parents:
238
diff
changeset
|
35 |
cd madonctl |
605a00e9d1ab
Switch to Go modules (and bump Go version requirement)
Mikael Berthe <mikael@lilotux.net>
parents:
238
diff
changeset
|
36 |
go build # (or go install) |
605a00e9d1ab
Switch to Go modules (and bump Go version requirement)
Mikael Berthe <mikael@lilotux.net>
parents:
238
diff
changeset
|
37 |
|
605a00e9d1ab
Switch to Go modules (and bump Go version requirement)
Mikael Berthe <mikael@lilotux.net>
parents:
238
diff
changeset
|
38 |
and you should be able to use `madonctl`. |
605a00e9d1ab
Switch to Go modules (and bump Go version requirement)
Mikael Berthe <mikael@lilotux.net>
parents:
238
diff
changeset
|
39 |
|
253 | 40 |
Travis automated testing is run for Go versions 1.11 - 1.13. |
21 | 41 |
|
0 | 42 |
## Usage |
43 |
||
4
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
44 |
### Configuration |
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
45 |
|
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
46 |
In order to use madonctl, you need to specify the instance name or URL, and |
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
47 |
usually provide an account login/password (or a token). |
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
48 |
|
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
49 |
These settings can be passed as command line arguments or environment variables, |
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
50 |
but the easiest way is to use a configuration file. |
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
51 |
|
107 | 52 |
Note that you can **generate a configuration file** for your settings with |
4
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
53 |
|
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
54 |
`madonctl config dump -i mastodon.social -L username@domain -P password` |
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
55 |
|
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
56 |
(You can redirect the output to a configuration file.) |
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
57 |
|
115 | 58 |
If you don't want to use the password or if you have enabled *Two-factor |
137
8fdaf5e1f8fc
Add configration.md with settings details
Mikael Berthe <mikael@lilotux.net>
parents:
129
diff
changeset
|
59 |
authentication*, you can also use **OAuth2** with the `oauth2` command: |
4
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
60 |
|
137
8fdaf5e1f8fc
Add configration.md with settings details
Mikael Berthe <mikael@lilotux.net>
parents:
129
diff
changeset
|
61 |
`madonctl -i mastodon.social oauth2 > madonctl.yaml` |
115 | 62 |
|
137
8fdaf5e1f8fc
Add configration.md with settings details
Mikael Berthe <mikael@lilotux.net>
parents:
129
diff
changeset
|
63 |
For details on the configuration, please check the [configuration](configuration.md) page. |
79
bca27c55be9f
Add default visibility setting
Mikael Berthe <mikael@lilotux.net>
parents:
75
diff
changeset
|
64 |
|
4
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
65 |
### Usage |
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
66 |
|
141 | 67 |
The complete list of commands is available in the online help (`madonctl help`, |
68 |
`madonctl command --help`...) or in the |
|
69 |
[manpages](https://lilotux.net/~mikael/pub/madonctl/manual/html/). |
|
4
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
70 |
|
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
71 |
### Examples |
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
72 |
|
141 | 73 |
This is a non-exhaustive list of commands, showing how madonctl works. |
74 |
||
4
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
75 |
To post a simple "toot": |
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
76 |
``` sh |
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
77 |
% madonctl toot "Hello, World" |
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
78 |
``` |
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
79 |
|
108
cc73f7cb0f21
Update README again (style)
Mikael Berthe <mikael@lilotux.net>
parents:
107
diff
changeset
|
80 |
You can change the toot visibility, add a Content Warning (a.k.a. spoiler) |
cc73f7cb0f21
Update README again (style)
Mikael Berthe <mikael@lilotux.net>
parents:
107
diff
changeset
|
81 |
or send a media file: |
4
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
82 |
``` sh |
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
83 |
% madonctl toot --visibility direct "@McKael Hello, you" |
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
84 |
% madonctl toot --visibility private --spoiler CW "The answer was 42" |
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
85 |
% madonctl post --file image.jpg Selfie # Send a media file |
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
86 |
``` |
79
bca27c55be9f
Add default visibility setting
Mikael Berthe <mikael@lilotux.net>
parents:
75
diff
changeset
|
87 |
Note: The default toot visibility can be set in the configuration file with |
bca27c55be9f
Add default visibility setting
Mikael Berthe <mikael@lilotux.net>
parents:
75
diff
changeset
|
88 |
the `default_visibility` setting or with the environment variable (example |
bca27c55be9f
Add default visibility setting
Mikael Berthe <mikael@lilotux.net>
parents:
75
diff
changeset
|
89 |
`export MADONCTL_DEFAULT_VISIBILITY=unlisted`). |
4
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
90 |
|
17 | 91 |
Send (text) file content as new message: |
92 |
``` |
|
93 |
% madonctl toot --text-file message.txt |
|
94 |
``` |
|
95 |
||
72 | 96 |
... or read message from standard input: |
97 |
``` |
|
98 |
% echo "Hello from #madonctl" | madonctl toot --stdin |
|
99 |
``` |
|
100 |
||
129
11966471aac3
toot: Add flag --add-mentions to add mentions when replying
Mikael Berthe <mikael@lilotux.net>
parents:
115
diff
changeset
|
101 |
Reply to a message: |
11966471aac3
toot: Add flag --add-mentions to add mentions when replying
Mikael Berthe <mikael@lilotux.net>
parents:
115
diff
changeset
|
102 |
``` sh |
11966471aac3
toot: Add flag --add-mentions to add mentions when replying
Mikael Berthe <mikael@lilotux.net>
parents:
115
diff
changeset
|
103 |
% madonctl toot --in-reply-to 1234 --visibility direct "@user1 @user2 response" |
11966471aac3
toot: Add flag --add-mentions to add mentions when replying
Mikael Berthe <mikael@lilotux.net>
parents:
115
diff
changeset
|
104 |
% madonctl toot --in-reply-to 1234 --add-mentions "response" |
11966471aac3
toot: Add flag --add-mentions to add mentions when replying
Mikael Berthe <mikael@lilotux.net>
parents:
115
diff
changeset
|
105 |
``` |
11966471aac3
toot: Add flag --add-mentions to add mentions when replying
Mikael Berthe <mikael@lilotux.net>
parents:
115
diff
changeset
|
106 |
The flag `--add-mentions` automatically adds mentions based on the toot you're |
11966471aac3
toot: Add flag --add-mentions to add mentions when replying
Mikael Berthe <mikael@lilotux.net>
parents:
115
diff
changeset
|
107 |
replying to. |
11966471aac3
toot: Add flag --add-mentions to add mentions when replying
Mikael Berthe <mikael@lilotux.net>
parents:
115
diff
changeset
|
108 |
|
107 | 109 |
Some **account-related commands**: |
4
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
110 |
``` sh |
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
111 |
% madonctl accounts blocked # List blocked accounts |
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
112 |
% madonctl accounts muted # List muted accounts |
209
3772cc6b3d0a
accounts: Use singular form
Mikael Berthe <mikael@lilotux.net>
parents:
199
diff
changeset
|
113 |
|
3772cc6b3d0a
accounts: Use singular form
Mikael Berthe <mikael@lilotux.net>
parents:
199
diff
changeset
|
114 |
% madonctl account notifications --list --all # List really all notifications |
3772cc6b3d0a
accounts: Use singular form
Mikael Berthe <mikael@lilotux.net>
parents:
199
diff
changeset
|
115 |
% madonctl account notifications --list --clear # List and clear notifications |
3772cc6b3d0a
accounts: Use singular form
Mikael Berthe <mikael@lilotux.net>
parents:
199
diff
changeset
|
116 |
% madonctl account notifications --notification-id 1234 # Display notification |
3772cc6b3d0a
accounts: Use singular form
Mikael Berthe <mikael@lilotux.net>
parents:
199
diff
changeset
|
117 |
% madonctl account notifications --dismiss --notification-id 1234 |
4
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
118 |
``` |
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
119 |
|
32 | 120 |
Note: By default, madonctl will send a single query. If you want all available |
121 |
results you should use the `--all` flag. If you use a `--limit` value, |
|
122 |
madonctl might send several queries until the number of results reaches this |
|
123 |
value. |
|
124 |
||
107 | 125 |
**Update** your account information: |
7
df3e9e068778
Update documentation wrt accounts update
Mikael Berthe <mikael@lilotux.net>
parents:
5
diff
changeset
|
126 |
``` sh |
209
3772cc6b3d0a
accounts: Use singular form
Mikael Berthe <mikael@lilotux.net>
parents:
199
diff
changeset
|
127 |
% madonctl account update --display-name "John" # Update display name |
3772cc6b3d0a
accounts: Use singular form
Mikael Berthe <mikael@lilotux.net>
parents:
199
diff
changeset
|
128 |
% madonctl account update --note "Newcomer" # Update user note (bio) |
3772cc6b3d0a
accounts: Use singular form
Mikael Berthe <mikael@lilotux.net>
parents:
199
diff
changeset
|
129 |
% madonctl account update --note "" # Clear note |
3772cc6b3d0a
accounts: Use singular form
Mikael Berthe <mikael@lilotux.net>
parents:
199
diff
changeset
|
130 |
% madonctl account update --avatar me.png # Update avatar |
238
d5d0260ead40
Update documentation (README)
Mikael Berthe <mikael@lilotux.net>
parents:
213
diff
changeset
|
131 |
|
d5d0260ead40
Update documentation (README)
Mikael Berthe <mikael@lilotux.net>
parents:
213
diff
changeset
|
132 |
% madonctl account update --bot # Advertise account as automated |
d5d0260ead40
Update documentation (README)
Mikael Berthe <mikael@lilotux.net>
parents:
213
diff
changeset
|
133 |
% madonctl account update --default-sensitive # Set medias sensitive by default |
d5d0260ead40
Update documentation (README)
Mikael Berthe <mikael@lilotux.net>
parents:
213
diff
changeset
|
134 |
% madonctl account update --default-language fra # Set default toot language |
d5d0260ead40
Update documentation (README)
Mikael Berthe <mikael@lilotux.net>
parents:
213
diff
changeset
|
135 |
% madonctl account update --default-privacy private # Set default toot privacy |
7
df3e9e068778
Update documentation wrt accounts update
Mikael Berthe <mikael@lilotux.net>
parents:
5
diff
changeset
|
136 |
``` |
df3e9e068778
Update documentation wrt accounts update
Mikael Berthe <mikael@lilotux.net>
parents:
5
diff
changeset
|
137 |
|
108
cc73f7cb0f21
Update README again (style)
Mikael Berthe <mikael@lilotux.net>
parents:
107
diff
changeset
|
138 |
See your own **posts**: |
31 | 139 |
``` sh |
209
3772cc6b3d0a
accounts: Use singular form
Mikael Berthe <mikael@lilotux.net>
parents:
199
diff
changeset
|
140 |
% madonctl account statuses # See last posts |
3772cc6b3d0a
accounts: Use singular form
Mikael Berthe <mikael@lilotux.net>
parents:
199
diff
changeset
|
141 |
% madonctl account statuses --all # See all statuses |
31 | 142 |
``` |
143 |
||
108
cc73f7cb0f21
Update README again (style)
Mikael Berthe <mikael@lilotux.net>
parents:
107
diff
changeset
|
144 |
Display accounts you're **following** or your **followers**: |
31 | 145 |
``` sh |
146 |
% madonctl accounts following # See last following |
|
147 |
% madonctl accounts following --all # See all followed accounts |
|
148 |
% madonctl accounts followers --limit 30 # Last 30 followers |
|
149 |
``` |
|
150 |
||
107 | 151 |
Add/remove a **favourite**, **boost** a status... |
4
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
152 |
``` sh |
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
153 |
% madonctl status --status-id 416671 favourite # Fave a status |
238
d5d0260ead40
Update documentation (README)
Mikael Berthe <mikael@lilotux.net>
parents:
213
diff
changeset
|
154 |
% madonctl status --status-id 416671 boost # Boost (reblog) a status |
d5d0260ead40
Update documentation (README)
Mikael Berthe <mikael@lilotux.net>
parents:
213
diff
changeset
|
155 |
|
d5d0260ead40
Update documentation (README)
Mikael Berthe <mikael@lilotux.net>
parents:
213
diff
changeset
|
156 |
% madonctl status --status-id 416671 unboost # Cancel a boost |
d5d0260ead40
Update documentation (README)
Mikael Berthe <mikael@lilotux.net>
parents:
213
diff
changeset
|
157 |
% madonctl status --status-id 416671 boost --unset # Cancel a boost (deprecated) |
4
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
158 |
``` |
0 | 159 |
|
181
0f3fb2d27ddb
Update documentation wrt pin/unpin status
Mikael Berthe <mikael@lilotux.net>
parents:
173
diff
changeset
|
160 |
**Pin/unpin** a status... |
0f3fb2d27ddb
Update documentation wrt pin/unpin status
Mikael Berthe <mikael@lilotux.net>
parents:
173
diff
changeset
|
161 |
``` sh |
0f3fb2d27ddb
Update documentation wrt pin/unpin status
Mikael Berthe <mikael@lilotux.net>
parents:
173
diff
changeset
|
162 |
% madonctl status --status-id 533769 pin # Pin a status |
238
d5d0260ead40
Update documentation (README)
Mikael Berthe <mikael@lilotux.net>
parents:
213
diff
changeset
|
163 |
% madonctl status --status-id 533769 unpin # Unpin a status |
d5d0260ead40
Update documentation (README)
Mikael Berthe <mikael@lilotux.net>
parents:
213
diff
changeset
|
164 |
% madonctl status --status-id 533769 pin --unset # Unpin a status (deprecated) |
d5d0260ead40
Update documentation (README)
Mikael Berthe <mikael@lilotux.net>
parents:
213
diff
changeset
|
165 |
``` |
d5d0260ead40
Update documentation (README)
Mikael Berthe <mikael@lilotux.net>
parents:
213
diff
changeset
|
166 |
|
d5d0260ead40
Update documentation (README)
Mikael Berthe <mikael@lilotux.net>
parents:
213
diff
changeset
|
167 |
**Pin/unpin** an account (i.e., account endorsement)... |
d5d0260ead40
Update documentation (README)
Mikael Berthe <mikael@lilotux.net>
parents:
213
diff
changeset
|
168 |
``` sh |
d5d0260ead40
Update documentation (README)
Mikael Berthe <mikael@lilotux.net>
parents:
213
diff
changeset
|
169 |
% madonctl status --account-id 1234 pin # Pin (endorse) an account |
d5d0260ead40
Update documentation (README)
Mikael Berthe <mikael@lilotux.net>
parents:
213
diff
changeset
|
170 |
% madonctl status --account-id 1234 unpin # Unpin an account |
d5d0260ead40
Update documentation (README)
Mikael Berthe <mikael@lilotux.net>
parents:
213
diff
changeset
|
171 |
|
d5d0260ead40
Update documentation (README)
Mikael Berthe <mikael@lilotux.net>
parents:
213
diff
changeset
|
172 |
% madonctl status pin @Gargron@mastodon.social |
181
0f3fb2d27ddb
Update documentation wrt pin/unpin status
Mikael Berthe <mikael@lilotux.net>
parents:
173
diff
changeset
|
173 |
``` |
0f3fb2d27ddb
Update documentation wrt pin/unpin status
Mikael Berthe <mikael@lilotux.net>
parents:
173
diff
changeset
|
174 |
|
5
d70f8e8f3d2e
Add examples with accounts and timelines
Mikael Berthe <mikael@lilotux.net>
parents:
4
diff
changeset
|
175 |
Search for an account (only accounts known to your instance): |
d70f8e8f3d2e
Add examples with accounts and timelines
Mikael Berthe <mikael@lilotux.net>
parents:
4
diff
changeset
|
176 |
``` sh |
d70f8e8f3d2e
Add examples with accounts and timelines
Mikael Berthe <mikael@lilotux.net>
parents:
4
diff
changeset
|
177 |
% madonctl accounts search gargron |
d70f8e8f3d2e
Add examples with accounts and timelines
Mikael Berthe <mikael@lilotux.net>
parents:
4
diff
changeset
|
178 |
``` |
d70f8e8f3d2e
Add examples with accounts and timelines
Mikael Berthe <mikael@lilotux.net>
parents:
4
diff
changeset
|
179 |
|
107 | 180 |
**Follow** an account with known ID: |
5
d70f8e8f3d2e
Add examples with accounts and timelines
Mikael Berthe <mikael@lilotux.net>
parents:
4
diff
changeset
|
181 |
``` sh |
209
3772cc6b3d0a
accounts: Use singular form
Mikael Berthe <mikael@lilotux.net>
parents:
199
diff
changeset
|
182 |
% madonctl account follow --account-id 1234 |
5
d70f8e8f3d2e
Add examples with accounts and timelines
Mikael Berthe <mikael@lilotux.net>
parents:
4
diff
changeset
|
183 |
``` |
d70f8e8f3d2e
Add examples with accounts and timelines
Mikael Berthe <mikael@lilotux.net>
parents:
4
diff
changeset
|
184 |
|
4
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
185 |
Follow a remote account: |
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
186 |
``` sh |
209
3772cc6b3d0a
accounts: Use singular form
Mikael Berthe <mikael@lilotux.net>
parents:
199
diff
changeset
|
187 |
% madonctl account follow --remote Gargron@mastodon.social |
4
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
188 |
``` |
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
189 |
|
213
3569475f86ec
Update help & documentation
Mikael Berthe <mikael@lilotux.net>
parents:
212
diff
changeset
|
190 |
madonctl 2.3.0+ is able to recognize the kind of argument to specify and to |
3569475f86ec
Update help & documentation
Mikael Berthe <mikael@lilotux.net>
parents:
212
diff
changeset
|
191 |
use the relevant API calls, so the previous commands could be written as: |
3569475f86ec
Update help & documentation
Mikael Berthe <mikael@lilotux.net>
parents:
212
diff
changeset
|
192 |
``` sh |
3569475f86ec
Update help & documentation
Mikael Berthe <mikael@lilotux.net>
parents:
212
diff
changeset
|
193 |
% madonctl account follow 1234 |
3569475f86ec
Update help & documentation
Mikael Berthe <mikael@lilotux.net>
parents:
212
diff
changeset
|
194 |
% madonctl account follow Gargron@mastodon.social |
3569475f86ec
Update help & documentation
Mikael Berthe <mikael@lilotux.net>
parents:
212
diff
changeset
|
195 |
% madonctl account follow https://mastodon.social/@Gargron |
3569475f86ec
Update help & documentation
Mikael Berthe <mikael@lilotux.net>
parents:
212
diff
changeset
|
196 |
``` |
3569475f86ec
Update help & documentation
Mikael Berthe <mikael@lilotux.net>
parents:
212
diff
changeset
|
197 |
|
3569475f86ec
Update help & documentation
Mikael Berthe <mikael@lilotux.net>
parents:
212
diff
changeset
|
198 |
Note: If you know the numeric account ID, you should use it to save extra API |
3569475f86ec
Update help & documentation
Mikael Berthe <mikael@lilotux.net>
parents:
212
diff
changeset
|
199 |
calls. |
3569475f86ec
Update help & documentation
Mikael Berthe <mikael@lilotux.net>
parents:
212
diff
changeset
|
200 |
|
107 | 201 |
**Search** for accounts, statuses or hashtags: |
105 | 202 |
``` sh |
203 |
% madonctl search gargron |
|
204 |
% madonctl search mastodon |
|
205 |
``` |
|
206 |
||
207 |
When the account ID is unknown, --user-id can be useful.\ |
|
208 |
You can specify the (instance-specific) account ID number (--account-id) or |
|
209 |
the user ID (--user-id). In the later case, madonctl will search for the |
|
210 |
user so it must match exactly the ID known to your instance (without the |
|
140
92842a4f5f8b
Remove notes for old versions in README
Mikael Berthe <mikael@lilotux.net>
parents:
137
diff
changeset
|
211 |
@domain suffix if the user is on the same instance). The --user-id flag can |
92842a4f5f8b
Remove notes for old versions in README
Mikael Berthe <mikael@lilotux.net>
parents:
137
diff
changeset
|
212 |
also contain an HTTP account URL. |
105 | 213 |
``` sh |
209
3772cc6b3d0a
accounts: Use singular form
Mikael Berthe <mikael@lilotux.net>
parents:
199
diff
changeset
|
214 |
% madonctl account --user-id Gargron@mastodon.social -l5 statuses # Last 5 statuses |
3772cc6b3d0a
accounts: Use singular form
Mikael Berthe <mikael@lilotux.net>
parents:
199
diff
changeset
|
215 |
% madonctl account --user-id https://mastodon.social/@Gargron -l5 statuses # Same |
105 | 216 |
``` |
213
3569475f86ec
Update help & documentation
Mikael Berthe <mikael@lilotux.net>
parents:
212
diff
changeset
|
217 |
|
3569475f86ec
Update help & documentation
Mikael Berthe <mikael@lilotux.net>
parents:
212
diff
changeset
|
218 |
With madonctl 2.3.0+, you can use the shorter forms: |
3569475f86ec
Update help & documentation
Mikael Berthe <mikael@lilotux.net>
parents:
212
diff
changeset
|
219 |
``` sh |
3569475f86ec
Update help & documentation
Mikael Berthe <mikael@lilotux.net>
parents:
212
diff
changeset
|
220 |
% madonctl account statuses -l5 Gargron@mastodon.social |
3569475f86ec
Update help & documentation
Mikael Berthe <mikael@lilotux.net>
parents:
212
diff
changeset
|
221 |
% madonctl account statuses -l5 https://mastodon.social/@Gargron |
3569475f86ec
Update help & documentation
Mikael Berthe <mikael@lilotux.net>
parents:
212
diff
changeset
|
222 |
% madonctl account statuses -l5 1 # (account ID) |
3569475f86ec
Update help & documentation
Mikael Berthe <mikael@lilotux.net>
parents:
212
diff
changeset
|
223 |
``` |
3569475f86ec
Update help & documentation
Mikael Berthe <mikael@lilotux.net>
parents:
212
diff
changeset
|
224 |
|
156
bafe489779e5
Add a note about --user-id account format
Mikael Berthe <mikael@lilotux.net>
parents:
153
diff
changeset
|
225 |
Please note that the form "Gargron@mastodon.social" will only work if this |
bafe489779e5
Add a note about --user-id account format
Mikael Berthe <mikael@lilotux.net>
parents:
153
diff
changeset
|
226 |
account is known by the instance. If it is unknown, the https link should work |
bafe489779e5
Add a note about --user-id account format
Mikael Berthe <mikael@lilotux.net>
parents:
153
diff
changeset
|
227 |
(and the Mastodon server will learn about the account). |
105 | 228 |
|
107 | 229 |
Read **timelines**: |
5
d70f8e8f3d2e
Add examples with accounts and timelines
Mikael Berthe <mikael@lilotux.net>
parents:
4
diff
changeset
|
230 |
``` sh |
d70f8e8f3d2e
Add examples with accounts and timelines
Mikael Berthe <mikael@lilotux.net>
parents:
4
diff
changeset
|
231 |
% madonctl timeline # Display home timeline |
238
d5d0260ead40
Update documentation (README)
Mikael Berthe <mikael@lilotux.net>
parents:
213
diff
changeset
|
232 |
% madonctl timeline home # (same as previous command) |
5
d70f8e8f3d2e
Add examples with accounts and timelines
Mikael Berthe <mikael@lilotux.net>
parents:
4
diff
changeset
|
233 |
% madonctl timeline public # Display federated timeline |
d70f8e8f3d2e
Add examples with accounts and timelines
Mikael Berthe <mikael@lilotux.net>
parents:
4
diff
changeset
|
234 |
% madonctl timeline public --local # Display public local timeline |
238
d5d0260ead40
Update documentation (README)
Mikael Berthe <mikael@lilotux.net>
parents:
213
diff
changeset
|
235 |
% madonctl timeline direct # Display timeline of direct messages |
24 | 236 |
|
237 |
% madonctl timeline --limit 3 # Display 3 latest home timeline messages |
|
5
d70f8e8f3d2e
Add examples with accounts and timelines
Mikael Berthe <mikael@lilotux.net>
parents:
4
diff
changeset
|
238 |
``` |
d70f8e8f3d2e
Add examples with accounts and timelines
Mikael Berthe <mikael@lilotux.net>
parents:
4
diff
changeset
|
239 |
|
107 | 240 |
Use the **streaming API** and fetch timelines and notifications: |
4
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
241 |
``` sh |
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
242 |
% madonctl stream # Stream home timeline and notifications |
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
243 |
% madonctl stream local # Stream local timeline |
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
244 |
% madonctl stream public # Stream federated timeline |
238
d5d0260ead40
Update documentation (README)
Mikael Berthe <mikael@lilotux.net>
parents:
213
diff
changeset
|
245 |
% madonctl stream direct # Stream direct messages |
4
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
246 |
``` |
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
247 |
|
107 | 248 |
You can also use **hashtag streams**: |
75
447ac88b67c6
Update README documentation wrt streams
Mikael Berthe <mikael@lilotux.net>
parents:
72
diff
changeset
|
249 |
``` sh |
447ac88b67c6
Update README documentation wrt streams
Mikael Berthe <mikael@lilotux.net>
parents:
72
diff
changeset
|
250 |
% madonctl stream :mastodon # Stream for hastag 'mastodon' |
447ac88b67c6
Update README documentation wrt streams
Mikael Berthe <mikael@lilotux.net>
parents:
72
diff
changeset
|
251 |
% madonctl stream :madonctl,golang # Stream for several hashtags |
447ac88b67c6
Update README documentation wrt streams
Mikael Berthe <mikael@lilotux.net>
parents:
72
diff
changeset
|
252 |
``` |
447ac88b67c6
Update README documentation wrt streams
Mikael Berthe <mikael@lilotux.net>
parents:
72
diff
changeset
|
253 |
|
447ac88b67c6
Update README documentation wrt streams
Mikael Berthe <mikael@lilotux.net>
parents:
72
diff
changeset
|
254 |
Please note that madonctl will use one socket per stream, so the number of |
447ac88b67c6
Update README documentation wrt streams
Mikael Berthe <mikael@lilotux.net>
parents:
72
diff
changeset
|
255 |
concurrent hashtags is currently limited to 4 for "politeness". |
447ac88b67c6
Update README documentation wrt streams
Mikael Berthe <mikael@lilotux.net>
parents:
72
diff
changeset
|
256 |
|
115 | 257 |
It is also possible to send every stream event (notification or status) to |
258 |
an **external command**. You can can even combine it with a customized theme. |
|
259 |
The contents will be sent to the standard input of this command: |
|
260 |
``` sh |
|
261 |
madonctl stream --command gateway.sh --theme gateway |
|
262 |
``` |
|
75
447ac88b67c6
Update README documentation wrt streams
Mikael Berthe <mikael@lilotux.net>
parents:
72
diff
changeset
|
263 |
|
108
cc73f7cb0f21
Update README again (style)
Mikael Berthe <mikael@lilotux.net>
parents:
107
diff
changeset
|
264 |
(Almost) All commands have a **customizable output**: |
4
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
265 |
``` sh |
209
3772cc6b3d0a
accounts: Use singular form
Mikael Berthe <mikael@lilotux.net>
parents:
199
diff
changeset
|
266 |
% madonctl account show # Display an account |
3772cc6b3d0a
accounts: Use singular form
Mikael Berthe <mikael@lilotux.net>
parents:
199
diff
changeset
|
267 |
% madonctl account show -o yaml # Display an account, in yaml |
3772cc6b3d0a
accounts: Use singular form
Mikael Berthe <mikael@lilotux.net>
parents:
199
diff
changeset
|
268 |
% madonctl account show -o json # Display an account, in json |
4
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
269 |
% madonctl stream local -o json # Stream local timeline and output to JSON |
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
270 |
``` |
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
271 |
|
107 | 272 |
You can also use Go (Golang) **templates**: |
4
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
273 |
``` sh |
209
3772cc6b3d0a
accounts: Use singular form
Mikael Berthe <mikael@lilotux.net>
parents:
199
diff
changeset
|
274 |
% madonctl account --account-id 1 followers --template '{{.acct}}{{"\n"}}' |
4
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
275 |
``` |
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
276 |
|
140
92842a4f5f8b
Remove notes for old versions in README
Mikael Berthe <mikael@lilotux.net>
parents:
137
diff
changeset
|
277 |
You can write and use [themes](templates) as well: |
92 | 278 |
``` |
279 |
madonctl --theme=ansi timeline |
|
280 |
``` |
|
281 |
||
4
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
282 |
There are many more commands, you can find them in the online help or the manpage. |
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
283 |
|
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
284 |
|
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
285 |
### Shell completion |
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
286 |
|
107 | 287 |
If you want **shell completion**, you can generate scripts with the following command: \ |
4
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
288 |
`madonctl completion bash` (or zsh) |
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
289 |
|
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
290 |
Then, just source the script in your shell. |
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
291 |
|
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
292 |
For example, I have this line in my .zshrc: |
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
293 |
|
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
294 |
`source <(madonctl completion zsh)` |
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
295 |
|
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
296 |
### Commands output |
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
297 |
|
107 | 298 |
The output can be set to **json**, **yaml** or to a **Go template** for all commands.\ |
4
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
299 |
If you are familiar with Kubernetes' kubectl, it is very similar. |
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
300 |
|
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
301 |
For example, you can display your user token with:\ |
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
302 |
`madonctl config whoami --template '{{.access_token}}'`\ |
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
303 |
or the application ID with:\ |
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
304 |
`madonctl config dump --template '{{.ID}}'` |
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
305 |
|
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
306 |
All the users that have favorited a given status:\ |
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
307 |
`madonctl status --status-id 101194 favourited-by --template '{{.username}}{{"\n"}}'` |
a3b95e2f0b0b
Update README - add some documentation
Mikael Berthe <mikael@lilotux.net>
parents:
2
diff
changeset
|
308 |
|
107 | 309 |
Sets of templates can be grouped as **themes**. |
105 | 310 |
|
24 | 311 |
For more complex templates, one can use the `--template-file` option.\ |
105 | 312 |
See the [themes & templates](templates) folder. |
0 | 313 |
|
314 |
## References |
|
315 |
||
141 | 316 |
- [madonctl manpages](https://lilotux.net/~mikael/pub/madonctl/manual/html/) |
0 | 317 |
- [madon](https://github.com/McKael/madon), the Go library for Mastodon API |
318 |
- [Mastodon API documentation](https://github.com/tootsuite/documentation/blob/master/Using-the-API/API.md) |
|
319 |
- [Mastodon repository](https://github.com/tootsuite/mastodon) |