madonctl account update: Add support for updating 'source' parameters
authorMikael Berthe <mikael@lilotux.net>
Tue, 04 Sep 2018 23:13:22 +0200
changeset 223 0412068a9445
parent 222 e93d9c738273
child 224 d33a2c4fdfbf
madonctl account update: Add support for updating 'source' parameters This patch adds 3 flags to update the source params of an account: * --default-language (default toot language: iso 639 language code) * --default-privacy (default toot privacy: private, unlisted or public) * --default-sensitive (boolean, true to mark attachments as sensitive by default)
cmd/accounts.go
--- a/cmd/accounts.go	Tue Sep 04 18:37:42 2018 +0200
+++ b/cmd/accounts.go	Tue Sep 04 23:13:22 2018 +0200
@@ -37,6 +37,9 @@
 	comment               string // For account reports
 	displayName, note     string // For account update
 	avatar, header        string // For account update
+	defaultLanguage       string // For account update
+	defaultPrivacy        string // For account update
+	defaultSensitive      bool   // For account update
 	locked, bot           bool   // For account update
 	muteNotifications     bool   // For account mute
 	following             bool   // For account search
@@ -86,6 +89,9 @@
 	accountUpdateSubcommand.Flags().StringVar(&accountsOpts.note, "note", "", "User note (a.k.a. bio)")
 	accountUpdateSubcommand.Flags().StringVar(&accountsOpts.avatar, "avatar", "", "User avatar image")
 	accountUpdateSubcommand.Flags().StringVar(&accountsOpts.header, "header", "", "User header image")
+	accountUpdateSubcommand.Flags().StringVar(&accountsOpts.defaultLanguage, "default-language", "", "Default toots language (iso 639 code)")
+	accountUpdateSubcommand.Flags().StringVar(&accountsOpts.defaultPrivacy, "default-privacy", "", "Default toot privacy (public, unlisted, private)")
+	accountUpdateSubcommand.Flags().BoolVar(&accountsOpts.defaultSensitive, "default-sensitive", false, "Mark medias as sensitive by default")
 	accountUpdateSubcommand.Flags().BoolVar(&accountsOpts.locked, "locked", false, "Following account requires approval")
 	accountUpdateSubcommand.Flags().BoolVar(&accountsOpts.bot, "bot", false, "Set as service (automated) account")
 
@@ -625,6 +631,7 @@
 		obj = report
 	case "update":
 		var updateParams madon.UpdateAccountParams
+		var source *madon.SourceParams
 		change := false
 
 		if accountUpdateFlags.Lookup("display-name").Changed {
@@ -647,22 +654,43 @@
 			updateParams.Locked = &opt.locked
 			change = true
 		}
-
 		if accountUpdateFlags.Lookup("bot").Changed {
 			updateParams.Bot = &opt.bot
 			change = true
 		}
+		if accountUpdateFlags.Lookup("default-language").Changed {
+			if source == nil {
+				source = &madon.SourceParams{}
+			}
+			source.Language = &opt.defaultLanguage
+			change = true
+		}
+		if accountUpdateFlags.Lookup("default-privacy").Changed {
+			if source == nil {
+				source = &madon.SourceParams{}
+			}
+			source.Privacy = &opt.defaultPrivacy
+			change = true
+		}
+		if accountUpdateFlags.Lookup("default-sensitive").Changed {
+			if source == nil {
+				source = &madon.SourceParams{}
+			}
+			source.Sensitive = &opt.defaultSensitive
+			change = true
+		}
 
 		/*
 			TODO:
 			updateParams.FieldsAttributes
-			updateParams.Source
 		*/
 
 		if !change { // We want at least one update
 			return errors.New("missing parameters")
 		}
 
+		updateParams.Source = source
+
 		var account *madon.Account
 		account, err = gClient.UpdateAccount(updateParams)
 		obj = account