mirror of
https://github.com/cwinfo/matterbridge.git
synced 2025-07-04 10:07:44 +00:00
Use upstream slack-go/slack again (#1018)
This commit is contained in:
62
vendor/github.com/slack-go/slack/slackutilsx/slackutilsx.go
generated
vendored
Normal file
62
vendor/github.com/slack-go/slack/slackutilsx/slackutilsx.go
generated
vendored
Normal file
@ -0,0 +1,62 @@
|
||||
// Package slackutilsx is a utility package that doesn't promise API stability.
|
||||
// its for experimental functionality and utilities.
|
||||
package slackutilsx
|
||||
|
||||
import (
|
||||
"strings"
|
||||
"unicode/utf8"
|
||||
)
|
||||
|
||||
// ChannelType the type of channel based on the channelID
|
||||
type ChannelType int
|
||||
|
||||
func (t ChannelType) String() string {
|
||||
switch t {
|
||||
case CTypeDM:
|
||||
return "Direct"
|
||||
case CTypeGroup:
|
||||
return "Group"
|
||||
case CTypeChannel:
|
||||
return "Channel"
|
||||
default:
|
||||
return "Unknown"
|
||||
}
|
||||
}
|
||||
|
||||
const (
|
||||
// CTypeUnknown represents channels we cannot properly detect.
|
||||
CTypeUnknown ChannelType = iota
|
||||
// CTypeDM is a private channel between two slack users.
|
||||
CTypeDM
|
||||
// CTypeGroup is a group channel.
|
||||
CTypeGroup
|
||||
// CTypeChannel is a public channel.
|
||||
CTypeChannel
|
||||
)
|
||||
|
||||
// DetectChannelType converts a channelID to a ChannelType.
|
||||
// channelID must not be empty. However, if it is empty, the channel type will default to Unknown.
|
||||
func DetectChannelType(channelID string) ChannelType {
|
||||
// intentionally ignore the error and just default to CTypeUnknown
|
||||
switch r, _ := utf8.DecodeRuneInString(channelID); r {
|
||||
case 'C':
|
||||
return CTypeChannel
|
||||
case 'G':
|
||||
return CTypeGroup
|
||||
case 'D':
|
||||
return CTypeDM
|
||||
default:
|
||||
return CTypeUnknown
|
||||
}
|
||||
}
|
||||
|
||||
// EscapeMessage text
|
||||
func EscapeMessage(message string) string {
|
||||
replacer := strings.NewReplacer("&", "&", "<", "<", ">", ">")
|
||||
return replacer.Replace(message)
|
||||
}
|
||||
|
||||
// Retryable errors return true.
|
||||
type Retryable interface {
|
||||
Retryable() bool
|
||||
}
|
Reference in New Issue
Block a user