Documentation
¶
Index ¶
- Constants
- func ChunkSplit(body string, limit int) []string
- func SetupLogging(loglevel string)
- type Broker
- type BrokerConfig
- type CentralDispatch
- type Command
- type Config
- type ContentType
- type Dispatcher
- type Event
- type EventBlock
- type HelperPattern
- type IrcBroker
- type JsonBlock
- type JsonResponse
- type LocalCmdBroker
- func (lcb *LocalCmdBroker) Activate(dis Dispatcher)
- func (lcb *LocalCmdBroker) Deactivate()
- func (lcb *LocalCmdBroker) HandleEvent(ev *Event, dis Dispatcher)
- func (lcb *LocalCmdBroker) Name() string
- func (lcb *LocalCmdBroker) NewEvent(oldEvent *Event) *Event
- func (lcb *LocalCmdBroker) Setup(args ...string)
- type Logger
- type MetaPattern
- type NamedGroups
- type Pattern
- type PatternConfig
- type PatternRoutingBroker
- func (prb *PatternRoutingBroker) Activate(dis Dispatcher)
- func (prb *PatternRoutingBroker) AddPattern(newp MetaPattern)
- func (prb *PatternRoutingBroker) Deactivate()
- func (prb *PatternRoutingBroker) HandleEvent(ev *Event, dis Dispatcher)
- func (prb *PatternRoutingBroker) HelpText() string
- func (prb *PatternRoutingBroker) Name() string
- func (prb *PatternRoutingBroker) Setup(args ...string)
- type SlackBroker
- func (sb *SlackBroker) Activate(dis Dispatcher)
- func (sb *SlackBroker) ConvertRefsToUsers(s string, cacheOnly bool) string
- func (sb *SlackBroker) ConvertUsersToRefs(s string, cacheOnly bool) string
- func (sb *SlackBroker) Deactivate()
- func (sb *SlackBroker) HandleEvent(ev *Event, dis Dispatcher)
- func (sb *SlackBroker) Name() string
- func (sb *SlackBroker) ParseToEvent(e *libsl.MessageEvent) *Event
- func (sb *SlackBroker) SendComplexMsg(dest string, text string, ev *Event)
- func (sb *SlackBroker) Setup(args ...string)
- func (sb *SlackBroker) SetupInternals()
- func (sb *SlackBroker) SimplifyParse(s string) string
- type SlackLogger
- type SlackUser
- type SlackUserCache
- func (suc *SlackUserCache) CacheUser(user *SlackUser)
- func (suc *SlackUserCache) PopulateCache(sb *SlackBroker, mems []string)
- func (suc *SlackUserCache) Setup()
- func (suc *SlackUserCache) UserFromAPI(sb *SlackBroker, ukey string) (*SlackUser, error)
- func (suc *SlackUserCache) UserId(sb *SlackBroker, nick string, cacheOnly bool) string
- func (suc *SlackUserCache) UserNick(sb *SlackBroker, ukey string, cacheOnly bool) string
- type VersionCommand
Constants ¶
View Source
const ( CONTENT_DISPLAY = iota CONTENT_META = iota )
View Source
const Prefix = ".."
Variables ¶
This section is empty.
Functions ¶
func ChunkSplit ¶
func SetupLogging ¶
func SetupLogging(loglevel string)
Types ¶
type Broker ¶
type Broker interface { Name() string HandleEvent(*Event, Dispatcher) Setup(...string) // at the end of this func, the broker should be able to // Handle(event) as needed, whether that is a queue until // Activate() is called by dispatcher.AddBroker Activate(Dispatcher) // this will setup a runloop if needed for the broker Deactivate() // must not return anything, will be called during destruction }
type BrokerConfig ¶
type BrokerConfig struct { Type string `yaml:"type"` Server string `yaml:"server" envcfg:"SERVER"` ApiToken string `yaml:"token" envcfg:"APITOKEN"` UseSSL bool `yaml:"ssl" envcfg:"SSL"` Nick string `yaml:"nick" envcfg:"NICK"` Channel string `yaml:"channel" envcfg:"CHANNEL"` Patterns []PatternConfig `yaml:"patterns"` }
NOTE this is a super set of broker config needs. not all brokers will use every member of this Config however, doing it this way allows the yaml unmarshal to Just Work(TM)
type CentralDispatch ¶
type CentralDispatch struct {
// contains filtered or unexported fields
}
func NewCentralDispatch ¶
func NewCentralDispatch() *CentralDispatch
func (*CentralDispatch) AddBroker ¶
func (cd *CentralDispatch) AddBroker(b Broker)
func (*CentralDispatch) Broadcast ¶
func (cd *CentralDispatch) Broadcast(ev *Event)
func (*CentralDispatch) NumBrokers ¶
func (cd *CentralDispatch) NumBrokers() int
func (*CentralDispatch) RemoveBroker ¶
func (cd *CentralDispatch) RemoveBroker(b Broker) error
type Config ¶
type Config struct { ActiveBrokers []string `yaml:"active-brokers"` Brokers map[string]*BrokerConfig `yaml:"brokers"` }
func LoadConfig ¶
type ContentType ¶
type ContentType int
func (ContentType) String ¶
func (c ContentType) String() string
type Dispatcher ¶
type Event ¶
type Event struct { IsCmdOutput bool Origin Broker ReplyBroker Broker // all brokers will see message but may choose to ignore // unless beneficial (bot handlers, etc) ReplyTarget string // replyBroker will use this to target a specific user // either privately or some other mechanism. this should // not be changed once set by the originating event as it // may specific to a given broker's format Actor string Avatar string Text string RawText string ContentBlocks []*EventBlock // contains filtered or unexported fields }
type EventBlock ¶
type EventBlock struct { // some event displays could use a bit more layout control Title string Text string ImgUrl string Type ContentType }
type HelperPattern ¶
type HelperPattern struct {
// contains filtered or unexported fields
}
func (*HelperPattern) Handle ¶
func (hp *HelperPattern) Handle(ev *Event, feedback chan *Event) bool
func (*HelperPattern) HelpText ¶
func (hp *HelperPattern) HelpText() string
type IrcBroker ¶
type IrcBroker struct {
// contains filtered or unexported fields
}
func (*IrcBroker) Activate ¶
func (ib *IrcBroker) Activate(dis Dispatcher)
func (*IrcBroker) Deactivate ¶
func (ib *IrcBroker) Deactivate()
func (*IrcBroker) HandleEvent ¶
func (ib *IrcBroker) HandleEvent(ev *Event, dis Dispatcher)
type JsonResponse ¶
type LocalCmdBroker ¶
type LocalCmdBroker struct {
// contains filtered or unexported fields
}
func (*LocalCmdBroker) Activate ¶
func (lcb *LocalCmdBroker) Activate(dis Dispatcher)
func (*LocalCmdBroker) Deactivate ¶
func (lcb *LocalCmdBroker) Deactivate()
func (*LocalCmdBroker) HandleEvent ¶
func (lcb *LocalCmdBroker) HandleEvent(ev *Event, dis Dispatcher)
func (*LocalCmdBroker) Name ¶
func (lcb *LocalCmdBroker) Name() string
func (*LocalCmdBroker) NewEvent ¶
func (lcb *LocalCmdBroker) NewEvent(oldEvent *Event) *Event
func (*LocalCmdBroker) Setup ¶
func (lcb *LocalCmdBroker) Setup(args ...string)
args [botnick, botavatar, version string]
type MetaPattern ¶
type Pattern ¶
type Pattern struct {
// contains filtered or unexported fields
}
func NewExtendedPattern ¶
func (*Pattern) ExtractMatches ¶
func (p *Pattern) ExtractMatches(text string) ([]string, NamedGroups)
type PatternConfig ¶
type PatternRoutingBroker ¶
type PatternRoutingBroker struct {
// contains filtered or unexported fields
}
func (*PatternRoutingBroker) Activate ¶
func (prb *PatternRoutingBroker) Activate(dis Dispatcher)
func (*PatternRoutingBroker) AddPattern ¶
func (prb *PatternRoutingBroker) AddPattern(newp MetaPattern)
func (*PatternRoutingBroker) Deactivate ¶
func (prb *PatternRoutingBroker) Deactivate()
func (*PatternRoutingBroker) HandleEvent ¶
func (prb *PatternRoutingBroker) HandleEvent(ev *Event, dis Dispatcher)
func (*PatternRoutingBroker) HelpText ¶
func (prb *PatternRoutingBroker) HelpText() string
func (*PatternRoutingBroker) Name ¶
func (prb *PatternRoutingBroker) Name() string
func (*PatternRoutingBroker) Setup ¶
func (prb *PatternRoutingBroker) Setup(args ...string)
args [regex,apiurl,method,headers]
type SlackBroker ¶
type SlackBroker struct {
// contains filtered or unexported fields
}
func (*SlackBroker) Activate ¶
func (sb *SlackBroker) Activate(dis Dispatcher)
func (*SlackBroker) ConvertRefsToUsers ¶
func (sb *SlackBroker) ConvertRefsToUsers(s string, cacheOnly bool) string
func (*SlackBroker) ConvertUsersToRefs ¶
func (sb *SlackBroker) ConvertUsersToRefs(s string, cacheOnly bool) string
func (*SlackBroker) Deactivate ¶
func (sb *SlackBroker) Deactivate()
func (*SlackBroker) HandleEvent ¶
func (sb *SlackBroker) HandleEvent(ev *Event, dis Dispatcher)
func (*SlackBroker) Name ¶
func (sb *SlackBroker) Name() string
func (*SlackBroker) ParseToEvent ¶
func (sb *SlackBroker) ParseToEvent(e *libsl.MessageEvent) *Event
func (*SlackBroker) SendComplexMsg ¶
func (sb *SlackBroker) SendComplexMsg(dest string, text string, ev *Event)
func (*SlackBroker) SetupInternals ¶
func (sb *SlackBroker) SetupInternals()
allows us to setup internal members without hitting the api let's us do certain tests that don't require api
func (*SlackBroker) SimplifyParse ¶
func (sb *SlackBroker) SimplifyParse(s string) string
accept a slack string and simplify it - replace html entities (< should be <) - remove urls in favor of url descr where available
type SlackLogger ¶
type SlackLogger struct {
*Logger
}
type SlackUserCache ¶
type SlackUserCache struct {
// contains filtered or unexported fields
}
func (*SlackUserCache) CacheUser ¶
func (suc *SlackUserCache) CacheUser(user *SlackUser)
func (*SlackUserCache) PopulateCache ¶
func (suc *SlackUserCache) PopulateCache(sb *SlackBroker, mems []string)
func (*SlackUserCache) Setup ¶
func (suc *SlackUserCache) Setup()
func (*SlackUserCache) UserFromAPI ¶
func (suc *SlackUserCache) UserFromAPI( sb *SlackBroker, ukey string) (*SlackUser, error)
func (*SlackUserCache) UserId ¶
func (suc *SlackUserCache) UserId( sb *SlackBroker, nick string, cacheOnly bool) string
func (*SlackUserCache) UserNick ¶
func (suc *SlackUserCache) UserNick( sb *SlackBroker, ukey string, cacheOnly bool) string
type VersionCommand ¶
type VersionCommand struct { Version string // contains filtered or unexported fields }
Click to show internal directories.
Click to hide internal directories.