Documentation ¶
Index ¶
- Constants
- Variables
- func NewSNS(region string) *sns.SNS
- func Run(configFile string) error
- func RunIRCAgent(c *Config, ch chan IRCMessage)
- func RunMsgr(configFile string) error
- func RunSlackAgent(c *Config, ch chan SlackMessage)
- type Config
- type HttpNotification
- type IRCConfig
- type IRCMessage
- type IRCMessageChan
- type LocalStorage
- type MessageChan
- type S3Config
- type S3Storage
- type SlackAgent
- type SlackConfig
- type SlackMessage
- type SlackMessageChan
- type Storage
Constants ¶
View Source
const (
MsgBufferLen = 100
)
View Source
const MsgrRoot = "/irc-msgr"
View Source
const Root = "/np"
View Source
const SlackMaxBackOff = 3600
Variables ¶
View Source
var ( SlackThrottleWindow = 1 * time.Second SlackInitialBackOff = 30 Epoch = time.Unix(0, 0) )
View Source
var (
IRCThrottleWindow = 1 * time.Second
)
Functions ¶
func RunIRCAgent ¶
func RunIRCAgent(c *Config, ch chan IRCMessage)
func RunSlackAgent ¶ added in v0.0.5
func RunSlackAgent(c *Config, ch chan SlackMessage)
Types ¶
type Config ¶
type Config struct { BaseURL string `yaml:"base_url"` Listen string `yaml:"listen"` DataDir string `yaml:"data_dir"` S3 *S3Config `yaml:"s3"` IRC *IRCConfig `yaml:"irc"` Slack *SlackConfig `yaml:"slack"` Channels []string `yaml:"channels"` // contains filtered or unexported fields }
func LoadConfig ¶
func (*Config) AddChannel ¶
func (*Config) SetFilePath ¶
type HttpNotification ¶ added in v0.2.0
type HttpNotification struct { Type string `json:"Type"` MessageId string `json:"MessageId"` Token string `json:"Token" optional` // Only for subscribe and unsubscribe TopicArn string `json:"TopicArn"` Subject string `json:"Subject" optional` // Only for Notification Message string `json:"Message"` SubscribeURL string `json:"SubscribeURL" optional` // Only for subscribe and unsubscribe Timestamp time.Time `json:"Timestamp"` SignatureVersion string `json:"SignatureVersion"` Signature string `json:"Signature"` SigningCertURL string `json:"SigningCertURL"` UnsubscribeURL string `json:"UnsubscribeURL" optional` // Only for notifications }
type IRCMessage ¶
type IRCMessageChan ¶ added in v0.0.5
type IRCMessageChan chan IRCMessage
func (IRCMessageChan) PostMsgr ¶ added in v0.0.5
func (ch IRCMessageChan) PostMsgr(req *http.Request)
func (IRCMessageChan) PostNopaste ¶ added in v0.0.5
func (ch IRCMessageChan) PostNopaste(np nopasteContent, url string)
type LocalStorage ¶ added in v0.2.0
type LocalStorage struct {
DataDir string
}
func NewLocalStorage ¶ added in v0.2.0
func NewLocalStorage(datadir string) *LocalStorage
func (*LocalStorage) Load ¶ added in v0.2.0
func (s *LocalStorage) Load(name string) (io.ReadCloser, error)
type MessageChan ¶ added in v0.0.5
type S3Storage ¶ added in v0.2.0
func NewS3Storage ¶ added in v0.2.0
type SlackAgent ¶ added in v0.0.5
type SlackAgent struct { WebhookURL string // contains filtered or unexported fields }
func (*SlackAgent) Post ¶ added in v0.0.5
func (a *SlackAgent) Post(m SlackMessage) error
type SlackConfig ¶ added in v0.0.5
type SlackConfig struct {
WebhookURL string `yaml:"webhook_url"`
}
type SlackMessage ¶ added in v0.0.5
type SlackMessageChan ¶ added in v0.0.5
type SlackMessageChan chan SlackMessage
func (SlackMessageChan) PostMsgr ¶ added in v0.0.5
func (ch SlackMessageChan) PostMsgr(req *http.Request)
func (SlackMessageChan) PostNopaste ¶ added in v0.0.5
func (ch SlackMessageChan) PostNopaste(np nopasteContent, url string)
Source Files ¶
Click to show internal directories.
Click to hide internal directories.