Add agent => bot
This commit is contained in:
		
							
								
								
									
										55
									
								
								agent/input/input.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								agent/input/input.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,55 @@ | ||||
| // Package input is an interface for bot inputs | ||||
| package input | ||||
|  | ||||
| import ( | ||||
| 	"github.com/micro/cli" | ||||
| ) | ||||
|  | ||||
| type EventType string | ||||
|  | ||||
| const ( | ||||
| 	TextEvent EventType = "text" | ||||
| ) | ||||
|  | ||||
| var ( | ||||
| 	// Inputs keyed by name | ||||
| 	// Example slack or hipchat | ||||
| 	Inputs = map[string]Input{} | ||||
| ) | ||||
|  | ||||
| // Event is the unit sent and received | ||||
| type Event struct { | ||||
| 	Type EventType | ||||
| 	From string | ||||
| 	To   string | ||||
| 	Data []byte | ||||
| 	Meta map[string]interface{} | ||||
| } | ||||
|  | ||||
| // Input is an interface for sources which | ||||
| // provide a way to communicate with the bot. | ||||
| // Slack, HipChat, XMPP, etc. | ||||
| type Input interface { | ||||
| 	// Provide cli flags | ||||
| 	Flags() []cli.Flag | ||||
| 	// Initialise input using cli context | ||||
| 	Init(*cli.Context) error | ||||
| 	// Stream events from the input | ||||
| 	Stream() (Conn, error) | ||||
| 	// Start the input | ||||
| 	Start() error | ||||
| 	// Stop the input | ||||
| 	Stop() error | ||||
| 	// name of the input | ||||
| 	String() string | ||||
| } | ||||
|  | ||||
| // Conn interface provides a way to | ||||
| // send and receive events. Send and | ||||
| // Recv both block until succeeding | ||||
| // or failing. | ||||
| type Conn interface { | ||||
| 	Close() error | ||||
| 	Recv(*Event) error | ||||
| 	Send(*Event) error | ||||
| } | ||||
		Reference in New Issue
	
	Block a user