cmd/emojis.go
author Mikael Berthe <mikael@lilotux.net>
Wed, 21 Mar 2018 22:47:40 +0100
changeset 214 78fe649d7fc9
parent 191 ae9b3c28fab3
child 239 605a00e9d1ab
permissions -rw-r--r--
Version 2.3.0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
187
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     1
// Copyright © 2018 Mikael Berthe <mikael@lilotux.net>
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     2
//
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     3
// Licensed under the MIT license.
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     4
// Please see the LICENSE file is this directory.
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     5
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     6
package cmd
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     7
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     8
import (
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     9
	"os"
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    10
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    11
	"github.com/spf13/cobra"
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    12
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    13
	"github.com/McKael/madon"
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    14
)
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    15
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    16
var emojiOpts struct {
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    17
	// Used for several subcommands to limit the number of results
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    18
	limit, keep uint
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    19
	//sinceID, maxID int64
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    20
	all bool
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    21
}
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    22
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    23
//emojiCmd represents the emoji command
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    24
var emojiCmd = &cobra.Command{
191
ae9b3c28fab3 emojis: change defaults
Mikael Berthe <mikael@lilotux.net>
parents: 187
diff changeset
    25
	Use:     "emojis",
ae9b3c28fab3 emojis: change defaults
Mikael Berthe <mikael@lilotux.net>
parents: 187
diff changeset
    26
	Aliases: []string{"emoji"},
187
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    27
	Short:   "Display server emojis",
191
ae9b3c28fab3 emojis: change defaults
Mikael Berthe <mikael@lilotux.net>
parents: 187
diff changeset
    28
	RunE:    emojiGetRunE, // Defaults to list
187
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    29
}
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    30
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    31
func init() {
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    32
	RootCmd.AddCommand(emojiCmd)
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    33
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    34
	// Subcommands
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    35
	emojiCmd.AddCommand(emojiSubcommands...)
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    36
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    37
	emojiGetCustomSubcommand.Flags().UintVarP(&emojiOpts.limit, "limit", "l", 0, "Limit number of API results")
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    38
	emojiGetCustomSubcommand.Flags().UintVarP(&emojiOpts.keep, "keep", "k", 0, "Limit number of results")
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    39
	emojiGetCustomSubcommand.Flags().BoolVar(&emojiOpts.all, "all", false, "Fetch all results")
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    40
}
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    41
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    42
var emojiSubcommands = []*cobra.Command{
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    43
	emojiGetCustomSubcommand,
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    44
}
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    45
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    46
var emojiGetCustomSubcommand = &cobra.Command{
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    47
	Use:     "list",
191
ae9b3c28fab3 emojis: change defaults
Mikael Berthe <mikael@lilotux.net>
parents: 187
diff changeset
    48
	Short:   "Display the custom emojis (default subcommand)",
187
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    49
	Long:    `Display the list of custom emojis of the instance.`,
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    50
	Aliases: []string{"get", "display", "show"},
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    51
	RunE:    emojiGetRunE,
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    52
}
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    53
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    54
func emojiGetRunE(cmd *cobra.Command, args []string) error {
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    55
	opt := emojiOpts
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    56
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    57
	// Set up LimitParams
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    58
	var limOpts *madon.LimitParams
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    59
	if opt.all || opt.limit > 0 {
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    60
		limOpts = new(madon.LimitParams)
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    61
		limOpts.All = opt.all
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    62
	}
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    63
	if opt.limit > 0 {
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    64
		limOpts.Limit = int(opt.limit)
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    65
	}
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    66
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    67
	// We don't have to log in
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    68
	if err := madonInit(false); err != nil {
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    69
		return err
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    70
	}
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    71
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    72
	var obj interface{}
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    73
	var err error
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    74
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    75
	var emojiList []madon.Emoji
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    76
	emojiList, err = gClient.GetCustomEmojis(limOpts)
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    77
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    78
	if opt.keep > 0 && len(emojiList) > int(opt.keep) {
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    79
		emojiList = emojiList[:opt.keep]
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    80
	}
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    81
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    82
	obj = emojiList
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    83
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    84
	if err != nil {
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    85
		errPrint("Error: %s", err.Error())
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    86
		os.Exit(1)
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    87
	}
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    88
	if obj == nil {
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    89
		return nil
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    90
	}
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    91
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    92
	p, err := getPrinter()
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    93
	if err != nil {
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    94
		errPrint("Error: %v", err)
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    95
		os.Exit(1)
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    96
	}
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    97
	return p.printObj(obj)
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    98
}