54 //statusCmd.PersistentFlags().Int64Var(&statusOpts.sinceID, "since-id", 0, "Request IDs greater than a value") |
54 //statusCmd.PersistentFlags().Int64Var(&statusOpts.sinceID, "since-id", 0, "Request IDs greater than a value") |
55 //statusCmd.PersistentFlags().Int64Var(&statusOpts.maxID, "max-id", 0, "Request IDs less (or equal) than a value") |
55 //statusCmd.PersistentFlags().Int64Var(&statusOpts.maxID, "max-id", 0, "Request IDs less (or equal) than a value") |
56 statusCmd.PersistentFlags().BoolVar(&statusOpts.all, "all", false, "Fetch all results (for reblogged-by/favourited-by)") |
56 statusCmd.PersistentFlags().BoolVar(&statusOpts.all, "all", false, "Fetch all results (for reblogged-by/favourited-by)") |
57 |
57 |
58 // Subcommand flags |
58 // Subcommand flags |
59 statusReblogSubcommand.Flags().BoolVar(&statusOpts.unset, "unset", false, "Unreblog the status") |
59 statusReblogSubcommand.Flags().BoolVar(&statusOpts.unset, "unset", false, "Unreblog the status (deprecated)") |
60 statusFavouriteSubcommand.Flags().BoolVar(&statusOpts.unset, "unset", false, "Remove the status from the favourites") |
60 statusFavouriteSubcommand.Flags().BoolVar(&statusOpts.unset, "unset", false, "Remove the status from the favourites (deprecated)") |
61 statusPinSubcommand.Flags().BoolVar(&statusOpts.unset, "unset", false, "Unpin the status") |
61 statusPinSubcommand.Flags().BoolVar(&statusOpts.unset, "unset", false, "Unpin the status (deprecated)") |
62 statusPostSubcommand.Flags().BoolVar(&statusOpts.sensitive, "sensitive", false, "Mark post as sensitive (NSFW)") |
62 statusPostSubcommand.Flags().BoolVar(&statusOpts.sensitive, "sensitive", false, "Mark post as sensitive (NSFW)") |
63 statusPostSubcommand.Flags().StringVar(&statusOpts.visibility, "visibility", "", "Visibility (direct|private|unlisted|public)") |
63 statusPostSubcommand.Flags().StringVar(&statusOpts.visibility, "visibility", "", "Visibility (direct|private|unlisted|public)") |
64 statusPostSubcommand.Flags().StringVar(&statusOpts.spoiler, "spoiler", "", "Spoiler warning (CW)") |
64 statusPostSubcommand.Flags().StringVar(&statusOpts.spoiler, "spoiler", "", "Spoiler warning (CW)") |
65 statusPostSubcommand.Flags().StringVar(&statusOpts.mediaIDs, "media-ids", "", "Comma-separated list of media IDs") |
65 statusPostSubcommand.Flags().StringVar(&statusOpts.mediaIDs, "media-ids", "", "Comma-separated list of media IDs") |
66 statusPostSubcommand.Flags().StringVarP(&statusOpts.mediaFilePath, "file", "f", "", "Media file name") |
66 statusPostSubcommand.Flags().StringVarP(&statusOpts.mediaFilePath, "file", "f", "", "Media file name") |
67 statusPostSubcommand.Flags().StringVar(&statusOpts.textFilePath, "text-file", "", "Text file name (message content)") |
67 statusPostSubcommand.Flags().StringVar(&statusOpts.textFilePath, "text-file", "", "Text file name (message content)") |
68 statusPostSubcommand.Flags().Int64VarP(&statusOpts.inReplyToID, "in-reply-to", "r", 0, "Status ID to reply to") |
68 statusPostSubcommand.Flags().Int64VarP(&statusOpts.inReplyToID, "in-reply-to", "r", 0, "Status ID to reply to") |
69 statusPostSubcommand.Flags().BoolVar(&statusOpts.stdin, "stdin", false, "Read message content from standard input") |
69 statusPostSubcommand.Flags().BoolVar(&statusOpts.stdin, "stdin", false, "Read message content from standard input") |
70 statusPostSubcommand.Flags().BoolVar(&statusOpts.addMentions, "add-mentions", false, "Add mentions when replying") |
70 statusPostSubcommand.Flags().BoolVar(&statusOpts.addMentions, "add-mentions", false, "Add mentions when replying") |
71 statusPostSubcommand.Flags().BoolVar(&statusOpts.sameVisibility, "same-visibility", false, "Use same visibility as original message (for replies)") |
71 statusPostSubcommand.Flags().BoolVar(&statusOpts.sameVisibility, "same-visibility", false, "Use same visibility as original message (for replies)") |
|
72 |
|
73 // Deprecated flags |
|
74 statusReblogSubcommand.Flags().MarkDeprecated("unset", "please use unboost instead") |
|
75 statusFavouriteSubcommand.Flags().MarkDeprecated("unset", "please use unfavourite instead") |
|
76 statusPinSubcommand.Flags().MarkDeprecated("unset", "please use unpin instead") |
72 |
77 |
73 // Flag completion |
78 // Flag completion |
74 annotation := make(map[string][]string) |
79 annotation := make(map[string][]string) |
75 annotation[cobra.BashCompCustom] = []string{"__madonctl_visibility"} |
80 annotation[cobra.BashCompCustom] = []string{"__madonctl_visibility"} |
76 |
81 |
157 RunE: func(cmd *cobra.Command, args []string) error { |
162 RunE: func(cmd *cobra.Command, args []string) error { |
158 return statusSubcommandRunE(cmd.Name(), args) |
163 return statusSubcommandRunE(cmd.Name(), args) |
159 }, |
164 }, |
160 }, |
165 }, |
161 statusReblogSubcommand, |
166 statusReblogSubcommand, |
|
167 statusUnreblogSubcommand, |
162 statusFavouriteSubcommand, |
168 statusFavouriteSubcommand, |
|
169 statusUnfavouriteSubcommand, |
163 statusPinSubcommand, |
170 statusPinSubcommand, |
|
171 statusUnpinSubcommand, |
164 statusPostSubcommand, |
172 statusPostSubcommand, |
165 } |
173 } |
166 |
174 |
167 var statusReblogSubcommand = &cobra.Command{ |
175 var statusReblogSubcommand = &cobra.Command{ |
168 Use: "boost", |
176 Use: "boost", |
169 Aliases: []string{"reblog"}, |
177 Aliases: []string{"reblog"}, |
170 Short: "Boost (reblog) or unreblog the status", |
178 Short: "Boost (reblog) a status message", |
|
179 RunE: func(cmd *cobra.Command, args []string) error { |
|
180 return statusSubcommandRunE(cmd.Name(), args) |
|
181 }, |
|
182 } |
|
183 |
|
184 var statusUnreblogSubcommand = &cobra.Command{ |
|
185 Use: "unboost", |
|
186 Aliases: []string{"unreblog"}, |
|
187 Short: "Cancel boost (reblog) of a status message", |
171 RunE: func(cmd *cobra.Command, args []string) error { |
188 RunE: func(cmd *cobra.Command, args []string) error { |
172 return statusSubcommandRunE(cmd.Name(), args) |
189 return statusSubcommandRunE(cmd.Name(), args) |
173 }, |
190 }, |
174 } |
191 } |
175 |
192 |
176 var statusFavouriteSubcommand = &cobra.Command{ |
193 var statusFavouriteSubcommand = &cobra.Command{ |
177 Use: "favourite", |
194 Use: "favourite", |
178 Aliases: []string{"favorite", "fave"}, |
195 Aliases: []string{"favorite", "fave"}, |
179 Short: "Mark/unmark the status as favourite", |
196 Short: "Mark the status as favourite", |
|
197 RunE: func(cmd *cobra.Command, args []string) error { |
|
198 return statusSubcommandRunE(cmd.Name(), args) |
|
199 }, |
|
200 } |
|
201 |
|
202 var statusUnfavouriteSubcommand = &cobra.Command{ |
|
203 Use: "unfavourite", |
|
204 Aliases: []string{"unfavorite", "unfave"}, |
|
205 Short: "Unmark the status as favourite", |
180 RunE: func(cmd *cobra.Command, args []string) error { |
206 RunE: func(cmd *cobra.Command, args []string) error { |
181 return statusSubcommandRunE(cmd.Name(), args) |
207 return statusSubcommandRunE(cmd.Name(), args) |
182 }, |
208 }, |
183 } |
209 } |
184 |
210 |
185 var statusPinSubcommand = &cobra.Command{ |
211 var statusPinSubcommand = &cobra.Command{ |
186 Use: "pin", |
212 Use: "pin", |
187 Short: "Pin/unpin the status", |
213 Short: "Pin a status", |
|
214 RunE: func(cmd *cobra.Command, args []string) error { |
|
215 return statusSubcommandRunE(cmd.Name(), args) |
|
216 }, |
|
217 } |
|
218 |
|
219 var statusUnpinSubcommand = &cobra.Command{ |
|
220 Use: "unpin", |
|
221 Short: "Unpin a status", |
188 RunE: func(cmd *cobra.Command, args []string) error { |
222 RunE: func(cmd *cobra.Command, args []string) error { |
189 return statusSubcommandRunE(cmd.Name(), args) |
223 return statusSubcommandRunE(cmd.Name(), args) |
190 }, |
224 }, |
191 } |
225 } |
192 |
226 |
262 accountList = accountList[:opt.keep] |
296 accountList = accountList[:opt.keep] |
263 } |
297 } |
264 obj = accountList |
298 obj = accountList |
265 case "delete": |
299 case "delete": |
266 err = gClient.DeleteStatus(opt.statusID) |
300 err = gClient.DeleteStatus(opt.statusID) |
267 case "boost": |
301 case "boost", "unboost": |
268 if opt.unset { |
302 if opt.unset || subcmd == "unboost" { |
269 err = gClient.UnreblogStatus(opt.statusID) |
303 err = gClient.UnreblogStatus(opt.statusID) |
270 } else { |
304 } else { |
271 err = gClient.ReblogStatus(opt.statusID) |
305 err = gClient.ReblogStatus(opt.statusID) |
272 } |
306 } |
273 case "favourite": |
307 case "favourite", "unfavourite": |
274 if opt.unset { |
308 if opt.unset || subcmd == "unfavourite" { |
275 err = gClient.UnfavouriteStatus(opt.statusID) |
309 err = gClient.UnfavouriteStatus(opt.statusID) |
276 } else { |
310 } else { |
277 err = gClient.FavouriteStatus(opt.statusID) |
311 err = gClient.FavouriteStatus(opt.statusID) |
278 } |
312 } |
279 case "pin": |
313 case "pin", "unpin": |
280 if opt.unset { |
314 if opt.unset || subcmd == "unpin" { |
281 err = gClient.UnpinStatus(opt.statusID) |
315 err = gClient.UnpinStatus(opt.statusID) |
282 } else { |
316 } else { |
283 err = gClient.PinStatus(opt.statusID) |
317 err = gClient.PinStatus(opt.statusID) |
284 } |
318 } |
285 case "mute-conversation": |
319 case "mute-conversation": |