本文整理汇总了Golang中github.com/wcharczuk/jarvis/jarvis/core.Bot.Configuration方法的典型用法代码示例。如果您正苦于以下问题:Golang Bot.Configuration方法的具体用法?Golang Bot.Configuration怎么用?Golang Bot.Configuration使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/wcharczuk/jarvis/jarvis/core.Bot
的用法示例。
在下文中一共展示了Bot.Configuration方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: fetchJiraIssues
func (j *Jira) fetchJiraIssues(b core.Bot, issueIds []string) ([]*external.JiraIssue, error) {
issues := []*external.JiraIssue{}
credentials, hasCredentials := b.Configuration()[ConfigJiraCredentials]
if !hasCredentials {
return issues, exception.New("Jarvis is not configured with Jira credentials.")
}
credentialPieces := strings.Split(credentials, ":")
if len(credentialPieces) != 2 {
return issues, exception.New("Jira credentials are not formatted correctly.")
}
jiraUser := credentialPieces[0]
jiraPassword := credentialPieces[1]
jiraHost, hasJiraHost := b.Configuration()[ConfigJiraHost]
if !hasJiraHost {
return issues, exception.New("Jarvis is not configured with a Jira host.")
}
var err error
var issue *external.JiraIssue
for _, issueID := range issueIds {
issue, err = external.GetJiraIssue(jiraUser, jiraPassword, jiraHost, issueID)
if err == nil {
issues = append(issues, issue)
} else {
return issues, err
}
}
return issues, nil
}
示例2: handleConfig
func (c *Config) handleConfig(b core.Bot, m *slack.Message) error {
configText := "current config:\n"
for key, value := range b.Configuration() {
if strings.HasPrefix(key, "option.") {
configText = configText + fmt.Sprintf("> `%s` = %s\n", key, value)
}
}
return b.Say(m.Channel, configText)
}
示例3: handlePassiveCatchAll
func (c *Core) handlePassiveCatchAll(b core.Bot, m *slack.Message) error {
message := util.TrimWhitespace(core.LessMentions(m.Text))
if optionValue, hasOption := b.Configuration()[ConfigOptionPassiveCatchAll]; hasOption && optionValue == "true" {
if core.IsAngry(message) {
user := b.FindUser(m.User)
response := []string{"slow down %s", "maybe calm down %s", "%s you should really relax", "chill %s", "it's ok %s, let it out"}
return b.Sayf(m.Channel, core.Random(response), strings.ToLower(user.Profile.FirstName))
}
}
return nil
}
示例4: handleConfigGet
func (c *Config) handleConfigGet(b core.Bot, m *slack.Message) error {
messageWithoutMentions := util.TrimWhitespace(core.LessMentions(m.Text))
parts := core.ExtractSubMatches(messageWithoutMentions, "^config:(.+)")
if len(parts) < 2 {
return exception.Newf("malformed message for `%s`", ActionConfigGet)
}
key := parts[1]
value := b.Configuration()[key]
return b.Sayf(m.Channel, "> %s: `%s` = %s", ActionConfigGet, key, value)
}
示例5: handleJira
func (j *Jira) handleJira(b core.Bot, m *slack.Message) error {
text := core.LessMentions(m.Text)
issueIds := j.extractJiraIssues(text)
if len(issueIds) == 0 {
return nil
}
issues, err := j.fetchJiraIssues(b, issueIds)
if err != nil {
return err
}
if len(issues) == 0 {
return nil
}
user := b.FindUser(m.User)
leadText := fmt.Sprintf("*%s* has mentioned the following jira issues (%d): ", user.Profile.FirstName, len(issues))
message := slack.NewChatMessage(m.Channel, leadText)
message.AsUser = slack.OptionalBool(true)
message.UnfurlLinks = slack.OptionalBool(false)
for _, issue := range issues {
if !util.IsEmpty(issue.Key) {
var itemText string
if issue.Fields != nil {
assignee := "Unassigned"
if issue.Fields.Assignee != nil {
assignee = issue.Fields.Assignee.DisplayName
}
itemText = fmt.Sprintf("%s %s\nAssigned To: %s",
fmt.Sprintf("https://%s/browse/%s", b.Configuration()[ConfigJiraHost], issue.Key),
issue.Fields.Summary,
assignee,
)
} else {
itemText = fmt.Sprintf("%s\n%s", issue.Key, fmt.Sprintf("https://%s/browse/%s", b.Configuration()[ConfigJiraHost], issue.Key))
}
item := slack.ChatMessageAttachment{
Color: slack.OptionalString("#3572b0"),
Text: slack.OptionalString(itemText),
}
message.Attachments = append(message.Attachments, item)
}
}
_, err = b.Client().ChatPostMessage(message)
if err != nil {
fmt.Printf("issue posting message: %v\n", err)
}
return err
}
示例6: handleConfigSet
func (c *Config) handleConfigSet(b core.Bot, m *slack.Message) error {
messageWithoutMentions := util.TrimWhitespace(core.LessMentions(m.Text))
parts := core.ExtractSubMatches(messageWithoutMentions, "^config:(.+) (.+)")
if len(parts) < 3 {
return exception.Newf("malformed message for `%s`", ActionConfigSet)
}
key := parts[1]
value := parts[2]
setting := value
if core.LikeAny(value, "true", "yes", "on", "1") {
setting = "true"
} else if core.LikeAny(value, "false", "off", "0") {
setting = "false"
}
b.Configuration()[key] = setting
return b.Sayf(m.Channel, "> %s: `%s` = %s", ActionConfigSet, key, setting)
}
示例7: Init
// Init for this module does nothing.
func (j *Jira) Init(b core.Bot) error {
if _, hasEntry := b.Configuration()[ConfigJiraCredentials]; !hasEntry {
envCredentials := os.Getenv(EnvironmentJiraCredentials)
if len(envCredentials) != 0 {
b.Configuration()[ConfigJiraCredentials] = envCredentials
} else {
b.Logf("No `%s` provided, module `%s` cannot load.", EnvironmentJiraHost, ModuleJira)
return nil
}
}
if _, hasEntry := b.Configuration()[ConfigJiraHost]; !hasEntry {
envHost := os.Getenv(EnvironmentJiraHost)
if len(envHost) != 0 {
b.Configuration()[ConfigJiraHost] = envHost
} else {
b.Logf("No `%s` provided, module `%s` cannot load.", EnvironmentJiraHost, ModuleJira)
return nil
}
}
return nil
}
示例8: Init
// Init for this module does nothing.
func (c *Config) Init(b core.Bot) error {
b.Configuration()[ConfigOptionPassive] = "true"
return nil
}