58 statusCmd.MarkPersistentFlagRequired("status-id") |
58 statusCmd.MarkPersistentFlagRequired("status-id") |
59 |
59 |
60 // Subcommand flags |
60 // Subcommand flags |
61 statusReblogSubcommand.Flags().BoolVar(&statusOpts.unset, "unset", false, "Unreblog the status") |
61 statusReblogSubcommand.Flags().BoolVar(&statusOpts.unset, "unset", false, "Unreblog the status") |
62 statusFavouriteSubcommand.Flags().BoolVar(&statusOpts.unset, "unset", false, "Remove the status from the favourites") |
62 statusFavouriteSubcommand.Flags().BoolVar(&statusOpts.unset, "unset", false, "Remove the status from the favourites") |
|
63 statusPinSubcommand.Flags().BoolVar(&statusOpts.unset, "unset", false, "Unpin the status") |
63 statusPostSubcommand.Flags().BoolVar(&statusOpts.sensitive, "sensitive", false, "Mark post as sensitive (NSFW)") |
64 statusPostSubcommand.Flags().BoolVar(&statusOpts.sensitive, "sensitive", false, "Mark post as sensitive (NSFW)") |
64 statusPostSubcommand.Flags().StringVar(&statusOpts.visibility, "visibility", "", "Visibility (direct|private|unlisted|public)") |
65 statusPostSubcommand.Flags().StringVar(&statusOpts.visibility, "visibility", "", "Visibility (direct|private|unlisted|public)") |
65 statusPostSubcommand.Flags().StringVar(&statusOpts.spoiler, "spoiler", "", "Spoiler warning (CW)") |
66 statusPostSubcommand.Flags().StringVar(&statusOpts.spoiler, "spoiler", "", "Spoiler warning (CW)") |
66 statusPostSubcommand.Flags().StringVar(&statusOpts.mediaIDs, "media-ids", "", "Comma-separated list of media IDs") |
67 statusPostSubcommand.Flags().StringVar(&statusOpts.mediaIDs, "media-ids", "", "Comma-separated list of media IDs") |
67 statusPostSubcommand.Flags().StringVarP(&statusOpts.mediaFilePath, "file", "f", "", "Media file name") |
68 statusPostSubcommand.Flags().StringVarP(&statusOpts.mediaFilePath, "file", "f", "", "Media file name") |
159 return statusSubcommandRunE(cmd.Name(), args) |
160 return statusSubcommandRunE(cmd.Name(), args) |
160 }, |
161 }, |
161 }, |
162 }, |
162 statusReblogSubcommand, |
163 statusReblogSubcommand, |
163 statusFavouriteSubcommand, |
164 statusFavouriteSubcommand, |
|
165 statusPinSubcommand, |
164 statusPostSubcommand, |
166 statusPostSubcommand, |
165 } |
167 } |
166 |
168 |
167 var statusReblogSubcommand = &cobra.Command{ |
169 var statusReblogSubcommand = &cobra.Command{ |
168 Use: "boost", |
170 Use: "boost", |
175 |
177 |
176 var statusFavouriteSubcommand = &cobra.Command{ |
178 var statusFavouriteSubcommand = &cobra.Command{ |
177 Use: "favourite", |
179 Use: "favourite", |
178 Aliases: []string{"favorite", "fave"}, |
180 Aliases: []string{"favorite", "fave"}, |
179 Short: "Mark/unmark the status as favourite", |
181 Short: "Mark/unmark the status as favourite", |
|
182 RunE: func(cmd *cobra.Command, args []string) error { |
|
183 return statusSubcommandRunE(cmd.Name(), args) |
|
184 }, |
|
185 } |
|
186 |
|
187 var statusPinSubcommand = &cobra.Command{ |
|
188 Use: "pin", |
|
189 Short: "Pin/unpin the status", |
180 RunE: func(cmd *cobra.Command, args []string) error { |
190 RunE: func(cmd *cobra.Command, args []string) error { |
181 return statusSubcommandRunE(cmd.Name(), args) |
191 return statusSubcommandRunE(cmd.Name(), args) |
182 }, |
192 }, |
183 } |
193 } |
184 |
194 |
263 case "favourite": |
273 case "favourite": |
264 if opt.unset { |
274 if opt.unset { |
265 err = gClient.UnfavouriteStatus(opt.statusID) |
275 err = gClient.UnfavouriteStatus(opt.statusID) |
266 } else { |
276 } else { |
267 err = gClient.FavouriteStatus(opt.statusID) |
277 err = gClient.FavouriteStatus(opt.statusID) |
|
278 } |
|
279 case "pin": |
|
280 if opt.unset { |
|
281 err = gClient.UnpinStatus(opt.statusID) |
|
282 } else { |
|
283 err = gClient.PinStatus(opt.statusID) |
268 } |
284 } |
269 case "mute-conversation": |
285 case "mute-conversation": |
270 var s *madon.Status |
286 var s *madon.Status |
271 s, err = gClient.MuteConversation(opt.statusID) |
287 s, err = gClient.MuteConversation(opt.statusID) |
272 obj = s |
288 obj = s |