Coder Social home page Coder Social logo

madonctl's Introduction

madonctl

Golang command line interface for the Mastodon API

license

madonctl is a Go CLI tool to use the Mastodon REST API.

It is built on top of madon, my Golang implementation of the API.

Installation

Download

Check the Release page for some pre-built binaries.

More pre-built binaries might be available from the Homepage (development version and builds for a few other platforms).

From source

madonctl uses Go modules (dependencies have been vendored for convenience).

You can install the latest madonctl release with the usual Go command:

go install github.com/McKael/madonctl/v3@latest

Or if you want the current master branch:

go install github.com/McKael/madonctl/v3@master

Alternatively:

git clone https://github.com/McKael/madonctl
cd madonctl
go build    # (or go install)

and you should be able to use madonctl.

Usage

Configuration

In order to use madonctl, you need to specify the instance name or URL, and usually provide an account login/password (or a token).

These settings can be passed as command line arguments or environment variables, but the easiest way is to use a configuration file.

Note that you can generate a configuration file for your settings with

madonctl config dump -i mastodon.social -L username@domain -P password

(You can redirect the output to a configuration file.)

If you don't want to use the password or if you have enabled Two-factor authentication, you can also use OAuth2 with the oauth2 command:

madonctl -i mastodon.social oauth2 > madonctl.yaml

For details on the configuration, please check the configuration page.

Usage

The complete list of commands is available in the online help (madonctl help, madonctl command --help...) or in the manpages.

Examples

This is a non-exhaustive list of commands, showing how madonctl works.

To post a simple "toot":

% madonctl toot "Hello, World"

You can change the toot visibility, add a Content Warning (a.k.a. spoiler) or send a media file:

% madonctl toot --visibility direct "@McKael Hello, you"
% madonctl toot --visibility private --spoiler CW "The answer was 42"
% madonctl post --file image.jpg Selfie # Send a media file

Note: The default toot visibility can be set in the configuration file with the default_visibility setting or with the environment variable (example export MADONCTL_DEFAULT_VISIBILITY=unlisted).

Send (text) file content as new message:

% madonctl toot --text-file message.txt

... or read message from standard input:

% echo "Hello from #madonctl" | madonctl toot --stdin

Reply to a message:

% madonctl toot --in-reply-to 1234 --visibility direct "@user1 @user2 response"
% madonctl toot --in-reply-to 1234 --add-mentions "response"

The flag --add-mentions automatically adds mentions based on the toot you're replying to.

Some account-related commands:

% madonctl accounts blocked                       # List blocked accounts
% madonctl accounts muted                         # List muted accounts

% madonctl account notifications --list --all    # List really all notifications
% madonctl account notifications --list --clear  # List and clear notifications
% madonctl account notifications --notification-id 1234 # Display notification
% madonctl account notifications --dismiss --notification-id 1234

Note: By default, madonctl will send a single query. If you want all available results you should use the --all flag. If you use a --limit value, madonctl might send several queries until the number of results reaches this value.

Update your account information:

% madonctl account update --display-name "John"  # Update display name
% madonctl account update --note "Newcomer"      # Update user note (bio)
% madonctl account update --note ""              # Clear note
% madonctl account update --avatar me.png        # Update avatar

% madonctl account update --bot               # Advertise account as automated
% madonctl account update --default-sensitive # Set medias sensitive by default
% madonctl account update --default-language fra    # Set default toot language
% madonctl account update --default-privacy private # Set default toot privacy

See your own posts:

% madonctl account statuses                      # See last posts
% madonctl account statuses --all                # See all statuses

Display accounts you're following or your followers:

% madonctl accounts following                     # See last following
% madonctl accounts following --all               # See all followed accounts
% madonctl accounts followers --limit 30          # Last 30 followers

Add/remove a favourite, boost a status...

% madonctl status --status-id 416671 favourite    # Fave a status
% madonctl status --status-id 416671 boost        # Boost (reblog) a status

% madonctl status --status-id 416671 unboost       # Cancel a boost

Pin/unpin a status...

% madonctl status --status-id 533769 pin          # Pin a status
% madonctl status --status-id 533769 unpin        # Unpin a status

Pin/unpin an account (i.e., account endorsement)...

% madonctl status --account-id 1234 pin           # Pin (endorse) an account
% madonctl status --account-id 1234 unpin         # Unpin an account

% madonctl status pin @[email protected]

Search for an account (only accounts known to your instance):

% madonctl accounts search gargron

Follow an account with known ID:

% madonctl account follow --account-id 1234

Follow a remote account:

% madonctl account follow --remote [email protected]

madonctl 2.3.0+ is able to recognize the kind of argument to specify and to use the relevant API calls, so the previous commands could be written as:

% madonctl account follow 1234
% madonctl account follow [email protected]
% madonctl account follow https://mastodon.social/@Gargron

Note: If you know the numeric account ID, you should use it to save extra API calls.

Search for accounts, statuses or hashtags:

% madonctl search gargron
% madonctl search mastodon

When the account ID is unknown, --user-id can be useful.
You can specify the (instance-specific) account ID number (--account-id) or the user ID (--user-id). In the later case, madonctl will search for the user so it must match exactly the ID known to your instance (without the @domain suffix if the user is on the same instance). The --user-id flag can also contain an HTTP account URL.

% madonctl account --user-id [email protected] -l5 statuses # Last 5 statuses
% madonctl account --user-id https://mastodon.social/@Gargron -l5 statuses # Same

With madonctl 2.3.0+, you can use the shorter forms:

% madonctl account statuses -l5 [email protected]
% madonctl account statuses -l5 https://mastodon.social/@Gargron
% madonctl account statuses -l5 1   # (account ID)

Please note that the form "[email protected]" will only work if this account is known by the instance. If it is unknown, the https link should work (and the Mastodon server will learn about the account).

Read timelines:

% madonctl timeline                 # Display home timeline
% madonctl timeline home            # (same as previous command)
% madonctl timeline public          # Display federated timeline
% madonctl timeline public --local  # Display public local timeline
% madonctl timeline direct          # Display timeline of direct messages

% madonctl timeline --limit 3       # Display 3 latest home timeline messages

Use the streaming API and fetch timelines and notifications:

% madonctl stream                   # Stream home timeline and notifications
% madonctl stream local             # Stream local timeline
% madonctl stream public            # Stream federated timeline
% madonctl stream direct            # Stream direct messages

You can also use hashtag streams:

% madonctl stream :mastodon         # Stream for hastag 'mastodon'
% madonctl stream :madonctl,golang  # Stream for several hashtags

Please note that madonctl will use one socket per stream, so the number of concurrent hashtags is currently limited to 4 for "politeness".

It is also possible to send every stream event (notification or status) to an external command. You can can even combine it with a customized theme. The contents will be sent to the standard input of this command:

madonctl stream --command gateway.sh --theme gateway

(Almost) All commands have a customizable output:

% madonctl account show            # Display an account
% madonctl account show -o yaml    # Display an account, in yaml
% madonctl account show -o json    # Display an account, in json
% madonctl stream local -o json     # Stream local timeline and output to JSON

You can also use Go (Golang) templates:

% madonctl account --account-id 1 followers --template '{{.acct}}{{"\n"}}'

You can write and use themes as well:

madonctl --theme=ansi timeline

There are many more commands, you can find them in the online help or the manpage.

Shell completion

If you want shell completion, you can generate scripts with the following command:
madonctl completion bash (or zsh)

Then, just source the script in your shell.

For example, I have this line in my .zshrc:

source <(madonctl completion zsh)

Commands output

The output can be set to json, yaml or to a Go template for all commands.
If you are familiar with Kubernetes' kubectl, it is very similar.

For example, you can display your user token with:
madonctl config whoami --template '{{.access_token}}'
or the application ID with:
madonctl config dump --template '{{.ID}}'

All the users that have favorited a given status:
madonctl status --status-id 101194 favourited-by --template '{{.username}}{{"\n"}}'

Sets of templates can be grouped as themes.

For more complex templates, one can use the --template-file option.
See the themes & templates folder.

References

madonctl's People

Contributors

boffire avatar dependabot[bot] avatar jesselucas avatar mckael avatar rjp avatar strubbl avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

madonctl's Issues

OAuth to Pleroma doesn't work due to missing parameters

Calling madonctl oauth2 get-url -i pleroma doesn't work because:

Error: app registration failed: API query (v1/apps) failed: bad server status code (400): Missing field: client_name. Missing field: redirect_uris.

Which is down to it being a POST request with the parameters in the URL, not in the body. But this is easy to fix and means madonctl can now get-url and then code to get an access_token from Pleroma, Mastodon, and GotoSocial (except GTS needs the other fix for non-int64 IDs first.)

"inconsistent vendoring" build error with go1.14rc1

$ go build -mod=vendor
go: inconsistent vendoring in <redacted>/madonctl:
        github.com/McKael/madon/[email protected]: is explicitly required in go.mod, but vendor/modules.txt indicates github.com/McKael/madon/[email protected]
        github.com/magiconair/[email protected]: is explicitly required in go.mod, but vendor/modules.txt indicates github.com/magiconair/[email protected]
        github.com/mattn/[email protected]: is explicitly required in go.mod, but vendor/modules.txt indicates github.com/mattn/[email protected]
        github.com/pelletier/[email protected]: is explicitly required in go.mod, but vendor/modules.txt indicates github.com/pelletier/[email protected]
        github.com/spf13/[email protected]: is explicitly required in go.mod, but vendor/modules.txt indicates github.com/spf13/[email protected]
        github.com/spf13/[email protected]: is explicitly required in go.mod, but vendor/modules.txt indicates github.com/spf13/[email protected]
        github.com/spf13/[email protected]: is explicitly required in go.mod, but vendor/modules.txt indicates github.com/spf13/[email protected]
        github.com/spf13/[email protected]: is explicitly required in go.mod, but vendor/modules.txt indicates github.com/spf13/[email protected]
        github.com/stretchr/[email protected]: is explicitly required in go.mod, but vendor/modules.txt indicates github.com/stretchr/[email protected]
        golang.org/x/[email protected]: is explicitly required in go.mod, but vendor/modules.txt indicates golang.org/x/[email protected]
        golang.org/x/[email protected]: is explicitly required in go.mod, but vendor/modules.txt indicates golang.org/x/[email protected]

run 'go mod vendor' to sync, or use -mod=mod or -mod=readonly to ignore the vendor directory

nil context when trying to `oauth2`

Each time I try to register via madonctl oauth2, I get a nil context error:

PC@PC-comp MINGW64 ~/Desktop
$ madonctl oauth2
Registered new application.
Visit the URL for the auth dialog:
https://botsin.space/oauth/authorize?access_type=offline&client_id=[*snip*]&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&response_type=code&scope=read+write+follow&state=state
Enter code: [*snip*]
panic: nil context

goroutine 1 [running]:
net/http.(*Request).WithContext(0xc042230300, 0x0, 0x0, 0xc042014240)
        C:/Go/src/net/http/request.go:327 +0x1c9
golang.org/x/net/context/ctxhttp.Do(0x0, 0x0, 0xb5dd00, 0xc042230300, 0x40, 0xc042002320, 0xc042230300)
        C:/Users/PC/go/src/golang.org/x/net/context/ctxhttp/ctxhttp.go:30 +0x5d
golang.org/x/oauth2/internal.RetrieveToken(0x0, 0x0, 0xc04200e200, 0x40, 0xc04200e240, 0x40, 0xc0420106c0, 0x20, 0xc0421744b0, 0x0, ...)
        C:/Users/PC/go/src/golang.org/x/oauth2/internal/token.go:192 +0x219
golang.org/x/oauth2.retrieveToken(0x0, 0x0, 0xc042232380, 0xc0421744b0, 0xc042236798, 0x0, 0x0)
        C:/Users/PC/go/src/golang.org/x/oauth2/token.go:153 +0x90
golang.org/x/oauth2.(*Config).Exchange(0xc042232380, 0x0, 0x0, 0xc04200e300, 0x40, 0xc0420106c0, 0x20, 0x0)
        C:/Users/PC/go/src/golang.org/x/oauth2/oauth2.go:179 +0x243
github.com/McKael/madon.(*Client).LoginOAuth2(0xc04207cc60, 0xc04200e300, 0x40, 0xb4a460, 0x3, 0x3, 0x1, 0x1, 0x0, 0x0)
        C:/Users/PC/go/src/github.com/McKael/madon/login.go:120 +0x1f8
github.com/McKael/madonctl/cmd.oAuth2ExchangeCode(0xc042067cc8, 0x1, 0x1, 0x1, 0x0)
        C:/Users/PC/go/src/github.com/McKael/madonctl/cmd/oauth2.go:84 +0x8a
github.com/McKael/madonctl/cmd.oAuth2Interactive(0xb7bb28, 0x0, 0x0, 0x0, 0x0)
        C:/Users/PC/go/src/github.com/McKael/madonctl/cmd/oauth2.go:117 +0x292
github.com/McKael/madonctl/cmd.glob..func20(0xb54000, 0xb7bb28, 0x0, 0x0, 0x0, 0x0)
        C:/Users/PC/go/src/github.com/McKael/madonctl/cmd/oauth2.go:26 +0x46
github.com/spf13/cobra.(*Command).execute(0xb54000, 0xb7bb28, 0x0, 0x0, 0xb54000, 0xb7bb28)
        C:/Users/PC/go/src/github.com/spf13/cobra/command.go:698 +0x481
github.com/spf13/cobra.(*Command).ExecuteC(0xb52ac0, 0xc042067f48, 0x1, 0x1)
        C:/Users/PC/go/src/github.com/spf13/cobra/command.go:783 +0x315
github.com/spf13/cobra.(*Command).Execute(0xb52ac0, 0xc042067f70, 0x7f50ab)
        C:/Users/PC/go/src/github.com/spf13/cobra/command.go:736 +0x32
main.main()
        C:/Users/PC/go/src/github.com/McKael/madonctl/main.go:28 +0x34

stream command does not pass arguments

Hi, thanks for the great cli !
I tried:
madonctl stream --notifications-only --notification-types mentions --command aa.sh
and in aa.sh, I have:
#!/bin/bash
echo $@

but no argument is printed when I receive a notification ?!

Thanks !

Compilation error on Debian stable

% sudo  -E go get github.com/McKael/madonctl 
# github.com/gorilla/websocket
/local/go/src/github.com/gorilla/websocket/client_clone_legacy.go:24: unknown tls.Config field 'GetCertificate' in struct literal
/local/go/src/github.com/gorilla/websocket/compression.go:36: undefined: flate.Resetter
# golang.org/x/sys/unix
/local/go/src/golang.org/x/sys/unix/asm_linux_386.s:8 8a: No such file or directory: textflag.h

Emoji colon-sequences in the JSON output instead of Unicode

The JSON output of madonctl includes emoji sequences (colon cherry_blossom colon) instead of the Unicode character (in that case, U+‎1F338). It's really annoying because it prevents to use this output directly, one need to replace all these sequences with characters.

I don't know if this choice comes from madonctl or from Mastodon but is is a bad choice. Please send normal Unicode characters instead of these sequences.

Example (in the display name):

 % madonctl status --output json --status-id 1662561 show
{"id":1662561,"uri":"tag:mamot.fr,2017-05-24:objectId=1662561:objectType=Status","url":"https://mamot.fr/@jcfrog/1662561","account":{"id":163,"username":"jcfrog","acct":"jcfrog","display_name":"jcfrog :guitar: :metal: :frog:" [...]

v2.3.1 fails to build from source due to changes in github.com/McKael/madon

This appears to be due to a change in the github.com/McKael/madon dependency, which wasn't vendored in v2.3.1. I'm not certain what versions of madonctl's dependencies were used to build it, otherwise I'd submit a patch for that. Would it be reasonable to cut a v2.3.2 patch release with vendored dependencies so that it can be built from source until a stable release of v2.4.0 is ready? Otherwise, if it's best to wait until v2.4.0, that's probably fine.

The following is what you'll see if building v2.3.1 from source currently:

# github.com/McKael/madonctl/cmd
_build-madonctl-xbps/src/github.com/McKael/madonctl/cmd/accounts.go:656:39: too many arguments in call to gClient.UpdateAccount
        have (*string, *string, *string, *string, *bool)
        want (madon.UpdateAccountParams)
_build-madonctl-xbps/src/github.com/McKael/madonctl/cmd/toot.go:150:27: too many arguments in call to gClient.PostStatus
        have (string, int64, []int64, bool, string, string)
        want (madon.PostStatusParams)

accounts fails to find user-id except via HTTP syntax

The most recent README says to use the following to follow someone by user-id:

% madonctl accounts --user-id [email protected] -l5 # Last 5 statuses
% madonctl accounts --user-id https://mastodon.social/@Gargron -l5 # Same

This is wrong, first, because it doesn't include a command (it should probably be statuses given the comments), but also because the former specification does not appear to work:

$ madonctl accounts --user-id [email protected] follow
Cannot find user '[email protected]': user not found
$ madonctl accounts --user-id [email protected] show
Cannot find user '[email protected]': user not found

As a related test, adding the initial @ doesn't work, either:

$ madonctl accounts --user-id @[email protected] show
Cannot find user '@[email protected]': user not found

Using the second syntax to find the account-id and following with that proves to be just fine:

$ madonctl accounts --user-id https://emojidon.global/@tone show
- Account ID: 19891  @tone
  UID: [email protected]
  Display name: 
  Date: 2017-05-26 11:00:47.666 -0700 PDT
  URL: https://emojidon.global/@tone
  Statuses: 0
  Followers: 0
  Following: 0
$ madonctl accounts --account-id 19891 follow

And after having done that, the former syntax works fine:

$ madonctl accounts --user-id [email protected] show                        
- Account ID: 19891  @tone
  UID: [email protected]
  Display name: tone 🇯🇵
  Date: 2017-05-26 11:00:47.666 -0700 PDT
  URL: https://emojidon.global/@tone
  Statuses: 0
  Followers: 1
  Following: 0

Is this perhaps related to the fact that there were no followers on my instance? Is that the limitation of the (Mastodon?) API is that it can only search through what the local instance has access to?

madonctl fails with Mastodon v2.0.0

There is a breaking change in Mastodon v2.0.0 which breaks clients and madonctl is impacted :

https://github.com/tootsuite/mastodon/releases/tag/v2.0.0

All id attributes in the REST API responses, including attributes that end in _id, are now returned as strings instead of integers. This is because large integers cannot be encoded in JSON losslessly, and all IDs in Mastodon are now bigint. Some apps will not work with this release until they are updated

Currently, madonctl fail with :

Error: app registration failed: cannot decode API response (POST): json: cannot unmarshal string into Go struct field registerApp.id of type int64

Documentation / feature request about madonctl stream :hashtag

Apparently, madonctl stream :hashtag shows only toots from your timeline. I say "apparently" because it does not seem to be documented.

I would like to "follow" a hashtag, therefore showing all the toots using this hashtag, not only my timeline. (I assume it could be on my instance only, because Mastodon does not offer distributed searches.)

notifications stream deletions misbehaving

Streaming notifications, I came across this:

Error event: [error] could not decode deletion: payload isn't a number

I guess someone deleted a notification of some kind? It's strange, I didn't see a matching notification in my other streams.

Unable to post a file/media without a message

Command:
madonctl post --file=picture.png

Expected result:
madonctl uploads the image and posts an empty status update with just the picture.png

Actual result:
Error: incorrect parameter

madonctl 2.3.1, x86_64, Arch Linux

bad server status code (422) when attempt to post image

I keep getting the following error when I attempt to use madonctl to post an image. The image posts fine if I drag and drop from the web but when I use this tool I get:
Error: cannot attach media file: media upload failed: bad server status code (422): Unprocessable Entity
I am using latest prebuilt amd64 binary.

Installation fails "madon v2.3.0+incompatible"

I manually installed go version go1.21.4 linux/amd64 on a newly installed debian 12 machine.

After typing in the installation command "go install github.com/McKael/madonctl@latest" these lines appear:

go: finding module for package github.com/spf13/cobra
go: finding module for package github.com/mattn/go-isatty
go: finding module for package github.com/McKael/madon
go: finding module for package github.com/pkg/errors
go: finding module for package github.com/spf13/pflag
go: finding module for package github.com/spf13/viper
go: finding module for package github.com/ghodss/yaml
go: finding module for package github.com/kr/text
go: finding module for package golang.org/x/net/html
go: found github.com/McKael/madon in github.com/McKael/madon v2.3.0+incompatible
go: found github.com/mattn/go-isatty in github.com/mattn/go-isatty v0.0.20
go: found github.com/pkg/errors in github.com/pkg/errors v0.9.1
go: found github.com/spf13/cobra in github.com/spf13/cobra v1.8.0
go: found github.com/spf13/pflag in github.com/spf13/pflag v1.0.5
go: found github.com/spf13/viper in github.com/spf13/viper v1.17.0
go: found github.com/ghodss/yaml in github.com/ghodss/yaml v1.0.0
go: found github.com/kr/text in github.com/kr/text v0.2.0
go: found golang.org/x/net/html in golang.org/x/net v0.18.0
go: finding module for package gopkg.in/yaml.v2
go: finding module for package github.com/gorilla/websocket
go: finding module for package github.com/sendgrid/rest
go: found github.com/gorilla/websocket in github.com/gorilla/websocket v1.5.1
go: found github.com/sendgrid/rest in github.com/sendgrid/rest v2.6.9+incompatible
go: found gopkg.in/yaml.v2 in gopkg.in/yaml.v2 v2.4.0

After that, when typing in madonctl in the console, bash responds with "command not found".

Any hints are appreciated, Thank you.

`oauth2 code` doesn't work without a config file?

If I do madonctl -i blah oauth2 get-url, visit the URL, then put the code into madonctl -i blah oauth2 code, it doesn't work because madonctl will create a new app for the code call (because there's no config file.)

Not sure if this is a Mastodon quirk where you'll always get the same client_id + client_secret pair for a particular client_name, etc. but it definitely doesn't work on Pleroma or GotoSocial.

Easiest fix is probably to print the required config for the code subcommand and advise the user to create that (although this is a pain with GotoSocial since it has a ludicrously short 1 minute timeout on oauth tokens.)

Or automatically dump the relevant values into a temporary config file and print out the correct command to call?

Something like...

> madonctl -i blah oauth2 get-url
[... url ...]

Temporary config is in [client_id].yaml; enter it with:
madonctl --config [client_id].yaml oauth2 code #CODE 

Unclear error message when there is an authentication error

A typo in my email address allowed me to test the error messages:

%  madonctl config dump -i mastodon.gougere.fr  -L  nimportequoi -P encorepire
Registred new application.
Info: could not log in: login failed: ccoking for beginning of value
You can copy the following lines into a configuration file.
E.g. madonctl -i INSTANCE -L USERNAME -P PASS config dump > $HOME/.config/madonctl/madonctl.yaml

---
instance: 'https://mastodon.gougere.fr'
app_id: 'a741f6f968f405f25f9f90fe0cf789d834aa47b966a21c1cd60c86bf87bb3744'
app_secret: '3e497b0219fa94e5d573bed34445e8774ad976483eb050164b402d0fe42a5e1a'

#token: ''
#login: ''
#password: ''
safe_mode: true
...

Two problems: the second part of the error message ("cannot unmarshal server response: invalid character '<'") is useless and misleading. And no configuration file should be produced when there is not even a successful authentication.

Have a streaming feature of notifications?

I don't know if this would be possible but same as you can 'stream' you timeline it would be nice if the same could be done for notifications. Right now you have to manually check them from time to time.

Crash when using 'fromhtml' in notification template

When I try this it will not show my notifications.

madonctl accounts notifications --list -o template --template '{{color "black,,bold"}}{{.created_at | tolocal | printf "%s\n"}}{{color "reset"}} {{color "yellow,,bold"}} {{.account.display_name}} {{color "reset"}} - {{.content | fromhtml}} {{"\n"}}'

If I remove the template it works. It will not crash when 'fromhtml' is removed but it will obviously not show the message either.

Cannot perform oauth2

⦗olistik⦘𝛌 madonctl version
This is madonctl version 2.4.0-dev (using madon library version 2.4.0-dev).
⦗olistik⦘𝛌 madonctl oauth2 get-url -i mastodon.social
Error: app registration failed: API query (apps) failed: bad server status code (422): Unprocessable Entity
Usage:
  madonctl oauth2 get-url [flags]
[cut]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.