|
|
|
package main
|
|
|
|
|
|
|
|
import "samhofi.us/x/keybase"
|
|
|
|
|
|
|
|
// Command outlines a command
|
|
|
|
type Command struct {
|
|
|
|
Cmd []string // Any aliases that trigger this command
|
|
|
|
Description string // A short description of the command
|
|
|
|
Help string // The full help text explaining how to use the command
|
|
|
|
Exec func([]string) // A function that takes the command (arg[0]) and any arguments (arg[1:]) as input
|
|
|
|
}
|
|
|
|
|
|
|
|
// TypeCommand outlines a command that reacts on message type
|
|
|
|
type TypeCommand struct {
|
|
|
|
Cmd []string // Message types that trigger this command
|
|
|
|
Name string // The name of this command
|
|
|
|
Description string // A short description of the command
|
|
|
|
Exec func(keybase.ChatAPI) // A function that takes a raw chat message as input
|
|
|
|
}
|
|
|
|
|
|
|
|
// Config holds user-configurable values
|
|
|
|
type Config struct {
|
|
|
|
filepath string `toml:"-"`
|
|
|
|
Basics Basics `toml:"basics"`
|
|
|
|
Formatting Formatting `toml:"formatting"`
|
|
|
|
Colors Colors `toml:"colors"`
|
|
|
|
}
|
|
|
|
|
|
|
|
type Basics struct {
|
|
|
|
DownloadPath string `toml:"downloadPath"`
|
|
|
|
Colorless bool `toml:"colorless"`
|
|
|
|
CmdPrefix string `toml:"cmdPrefix"`
|
|
|
|
}
|
|
|
|
|
|
|
|
type Formatting struct {
|
|
|
|
OutputFormat string `toml:"outputFormat"`
|
|
|
|
OutputStreamFormat string `toml:"outputStreamFormat"`
|
|
|
|
OutputMentionFormat string `toml:"outputMentionFormat"`
|
|
|
|
PMFormat string `toml:"pmFormat"`
|
|
|
|
DateFormat string `toml:"dateFormat"`
|
|
|
|
TimeFormat string `toml:"timeFormat"`
|
|
|
|
}
|
|
|
|
|
|
|
|
type Style struct {
|
|
|
|
Foreground string `toml:"foreground"`
|
|
|
|
Background string `toml:"background"`
|
|
|
|
Italic bool `toml:"italic"`
|
|
|
|
Bold bool `toml:"bold"`
|
|
|
|
Underline bool `toml:"underline"`
|
|
|
|
Strikethrough bool `toml:"strikethrough"`
|
|
|
|
Inverse bool `toml:"inverse"`
|
|
|
|
}
|
|
|
|
|
|
|
|
type Channels struct {
|
|
|
|
Basic Style `toml:"basic"`
|
|
|
|
Header Style `toml:"header"`
|
|
|
|
Unread Style `toml:"unread"`
|
|
|
|
}
|
|
|
|
|
|
|
|
type Message struct {
|
|
|
|
Body Style `toml:"body"`
|
|
|
|
Header Style `toml:"header"`
|
|
|
|
Mention Style `toml:"mention"`
|
|
|
|
ID Style `toml:"id"`
|
|
|
|
Time Style `toml:"time"`
|
|
|
|
SenderDefault Style `toml:"sender_default"`
|
|
|
|
SenderDevice Style `toml:"sender_device"`
|
|
|
|
Attachment Style `toml:"attachment"`
|
|
|
|
LinkURL Style `toml:"link_url"`
|
|
|
|
LinkKeybase Style `toml:"link_keybase"`
|
|
|
|
Reaction Style `toml:"reaction"`
|
|
|
|
Code Style `toml:"code"`
|
|
|
|
}
|
|
|
|
|
|
|
|
type Feed struct {
|
|
|
|
Basic Style `toml:"basic"`
|
|
|
|
Error Style `toml:"error"`
|
|
|
|
}
|
|
|
|
|
|
|
|
type Colors struct {
|
|
|
|
Channels Channels `toml:"channels"`
|
|
|
|
Message Message `toml:"message"`
|
|
|
|
Feed Feed `toml:"feed"`
|
|
|
|
}
|