コード例 #1
0
ファイル: slackRealtime.go プロジェクト: ereyes01/victor
// init registers SlackAdapter to the victor chat framework.
func init() {
	chat.Register(AdapterName, func(r chat.Robot) chat.Adapter {
		config, configSet := r.AdapterConfig()
		if !configSet {
			log.Println("A configuration struct implementing the SlackConfig interface must be set.")
			os.Exit(1)
		}
		sConfig, ok := config.(Config)
		if !ok {
			log.Println("The bot's config must implement the SlackConfig interface.")
			os.Exit(1)
		}
		return &SlackAdapter{
			robot:           r,
			chReceiver:      make(chan slack.SlackEvent),
			token:           sConfig.Token(),
			channelInfo:     make(map[string]channelGroupInfo),
			directMessageID: make(map[string]string),
			userInfo:        make(map[string]slack.User),
			mutex:           &sync.RWMutex{},
			botUser: &chat.BaseUser{
				UserName:  "******", // We don't know our username until the adapter is started
				UserIsBot: true,
			},
		}
	})
}
コード例 #2
0
ファイル: mockAdapter.go プロジェクト: ereyes01/victor
// init Registers the mockAdapter with the victor framework under the chat
// adapter name "mockAdapter".
func init() {
	chat.Register("mockAdapter", func(r chat.Robot) chat.Adapter {
		nextIDMutex.Lock()
		id := strconv.Itoa(nextID)
		nextID++
		nextIDMutex.Unlock()
		return &MockChatAdapter{
			robot:                 r,
			id:                    id,
			Sent:                  make([]MockMessagePair, 0, 10),
			SentPublic:            make([]MockMessagePair, 0, 10),
			SentDirect:            make([]MockMessagePair, 0, 10),
			IsPotentialUserRet:    true,
			IsPotentialChannelRet: true,
			UserRet:               defaultUserRet,
			ChannelRet:            defaultChannelRet,
			GeneralChannelRet:     defaultChannelRet,
			AllUsersRet:           []chat.User{defaultUserRet},
			PublicChannelsRet:     []chat.Channel{defaultChannelRet},
			NameRet:               "Mock Adapter",
			MaxLengthRet:          -1,
			BotUserRet: &chat.BaseUser{
				UserID:    id,
				UserName:  r.Name(),
				UserIsBot: true,
			},
		}
	})
}
コード例 #3
0
ファイル: shell.go プロジェクト: ereyes01/victor
func init() {
	chat.Register("shell", func(r chat.Robot) chat.Adapter {
		nextIDMutex.Lock()
		id := strconv.Itoa(nextID)
		nextID++
		nextIDMutex.Unlock()
		return &Adapter{
			robot: r,
			stop:  make(chan bool),
			id:    id,
			lines: make(chan string),
			botUser: &chat.BaseUser{
				UserID:    id,
				UserName:  r.Name(),
				UserIsBot: true,
			},
		}
	})
}