diff --git a/cmd/mstdn/cmd_upload.go b/cmd/mstdn/cmd_upload.go new file mode 100644 index 0000000..15f912e --- /dev/null +++ b/cmd/mstdn/cmd_upload.go @@ -0,0 +1,33 @@ +package main + +import ( + "context" + "errors" + "fmt" + + "github.com/mattn/go-mastodon" + "github.com/urfave/cli" +) + +func cmdUpload(c *cli.Context) error { + if !c.Args().Present() { + return errors.New("arguments required") + } + client := c.App.Metadata["client"].(*mastodon.Client) + for i := 0; i < c.NArg(); i++ { + attachment, err := client.UploadMedia(context.Background(), c.Args().Get(i)) + if err != nil { + return err + } + if i > 0 { + fmt.Fprintln(c.App.Writer) + } + fmt.Fprintf(c.App.Writer, "ID : %v\n", attachment.ID) + fmt.Fprintf(c.App.Writer, "Type : %v\n", attachment.Type) + fmt.Fprintf(c.App.Writer, "URL : %v\n", attachment.URL) + fmt.Fprintf(c.App.Writer, "RemoteURL : %v\n", attachment.RemoteURL) + fmt.Fprintf(c.App.Writer, "PreviewURL: %v\n", attachment.PreviewURL) + fmt.Fprintf(c.App.Writer, "TextURL : %v\n", attachment.TextURL) + } + return nil +} diff --git a/cmd/mstdn/main.go b/cmd/mstdn/main.go index a3a3d15..2bd18fd 100644 --- a/cmd/mstdn/main.go +++ b/cmd/mstdn/main.go @@ -213,6 +213,11 @@ func makeApp() *cli.App { Usage: "show followers", Action: cmdFollowers, }, + { + Name: "upload", + Usage: "upload file", + Action: cmdUpload, + }, } return app }