cmd/emoji.go
author Mikael Berthe <mikael@lilotux.net>
Mon, 19 Mar 2018 23:51:45 +0100
changeset 187 63d1e5751300
permissions -rw-r--r--
Add "madonctl emoji list"
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{
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    25
	Use:     "emoji",
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    26
	Aliases: []string{"emojis"},
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    27
	Short:   "Display server emojis",
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    28
}
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
func init() {
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    31
	RootCmd.AddCommand(emojiCmd)
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    32
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    33
	// Subcommands
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    34
	emojiCmd.AddCommand(emojiSubcommands...)
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    35
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    36
	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
    37
	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
    38
	emojiGetCustomSubcommand.Flags().BoolVar(&emojiOpts.all, "all", false, "Fetch all results")
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    39
}
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
var emojiSubcommands = []*cobra.Command{
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    42
	emojiGetCustomSubcommand,
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    43
}
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
var emojiGetCustomSubcommand = &cobra.Command{
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    46
	Use:     "list",
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    47
	Short:   "Display the custom emojis",
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    48
	Long:    `Display the list of custom emojis of the instance.`,
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    49
	Aliases: []string{"get", "display", "show"},
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    50
	RunE:    emojiGetRunE,
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    51
}
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
func emojiGetRunE(cmd *cobra.Command, args []string) error {
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    54
	opt := emojiOpts
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    55
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    56
	// Set up LimitParams
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    57
	var limOpts *madon.LimitParams
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    58
	if opt.all || opt.limit > 0 {
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    59
		limOpts = new(madon.LimitParams)
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    60
		limOpts.All = opt.all
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    61
	}
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    62
	if opt.limit > 0 {
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    63
		limOpts.Limit = int(opt.limit)
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    64
	}
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
	// We don't have to log in
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    67
	if err := madonInit(false); err != nil {
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    68
		return err
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    69
	}
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
	var obj interface{}
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    72
	var err error
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    73
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    74
	var emojiList []madon.Emoji
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    75
	emojiList, err = gClient.GetCustomEmojis(limOpts)
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    76
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    77
	if opt.keep > 0 && len(emojiList) > int(opt.keep) {
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    78
		emojiList = emojiList[:opt.keep]
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    79
	}
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
	obj = emojiList
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    82
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    83
	if err != nil {
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    84
		errPrint("Error: %s", err.Error())
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    85
		os.Exit(1)
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    86
	}
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    87
	if obj == nil {
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    88
		return nil
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    89
	}
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
	p, err := getPrinter()
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    92
	if err != nil {
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    93
		errPrint("Error: %v", err)
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    94
		os.Exit(1)
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    95
	}
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    96
	return p.printObj(obj)
63d1e5751300 Add "madonctl emoji list"
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    97
}