diff options
| author | Mistivia <i@mistivia.com> | 2025-11-02 15:27:18 +0800 |
|---|---|---|
| committer | Mistivia <i@mistivia.com> | 2025-11-02 15:27:18 +0800 |
| commit | e9c24f4af7ed56760f6db7941827d09f6db9020b (patch) | |
| tree | 62128c43b883ce5e3148113350978755779bb5de /teleirc/matterbridge/vendor/github.com/42wim/go-gitter/README.md | |
| parent | 58d5e7cfda4781d8a57ec52aefd02983835c301a (diff) | |
add matterbridge
Diffstat (limited to 'teleirc/matterbridge/vendor/github.com/42wim/go-gitter/README.md')
| -rw-r--r-- | teleirc/matterbridge/vendor/github.com/42wim/go-gitter/README.md | 154 |
1 files changed, 154 insertions, 0 deletions
diff --git a/teleirc/matterbridge/vendor/github.com/42wim/go-gitter/README.md b/teleirc/matterbridge/vendor/github.com/42wim/go-gitter/README.md new file mode 100644 index 0000000..5d58526 --- /dev/null +++ b/teleirc/matterbridge/vendor/github.com/42wim/go-gitter/README.md @@ -0,0 +1,154 @@ +# gitter +Gitter API in Go +https://developer.gitter.im + +#### Install + +`go get github.com/sromku/go-gitter` + +- [Initialize](#initialize) +- [Users](#users) +- [Rooms](#rooms) +- [Messages](#messages) +- [Stream](#stream) +- [Faye (Experimental)](#faye-experimental) +- [Debug](#debug) +- [App Engine](#app-engine) + +##### Initialize +``` Go +api := gitter.New("YOUR_ACCESS_TOKEN") +``` + +##### Users + +- Get current user + + ``` Go + user, err := api.GetUser() + ``` + +##### Rooms + +- Get all rooms + ``` Go + rooms, err := api.GetRooms() + ``` + +- Get room by id + ``` Go + room, err := api.GetRoom("roomID") + ``` + +- Get rooms of some user + ``` Go + rooms, err := api.GetRooms("userID") + ``` + +- Join room + ``` Go + room, err := api.JoinRoom("roomID", "userID") + ``` + +- Leave room + ``` Go + room, err := api.LeaveRoom("roomID", "userID") + ``` + +- Get room id + ``` Go + id, err := api.GetRoomId("room/uri") + ``` + +- Search gitter rooms + ``` Go + rooms, err := api.SearchRooms("search/string") + ``` +##### Messages + +- Get messages of room + ``` Go + messages, err := api.GetMessages("roomID", nil) + ``` + +- Get one message + ``` Go + message, err := api.GetMessage("roomID", "messageID") + ``` + +- Send message + ``` Go + err := api.SendMessage("roomID", "free chat text") + ``` + +##### Stream + +Create stream to the room and start listening to incoming messages + +``` Go +stream := api.Stream(room.Id) +go api.Listen(stream) + +for { + event := <-stream.Event + switch ev := event.Data.(type) { + case *gitter.MessageReceived: + fmt.Println(ev.Message.From.Username + ": " + ev.Message.Text) + case *gitter.GitterConnectionClosed: + // connection was closed + } +} +``` + +Close stream connection + +``` Go +stream.Close() +``` + +##### Faye (Experimental) + +``` Go +faye := api.Faye(room.ID) +go faye.Listen() + +for { + event := <-faye.Event + switch ev := event.Data.(type) { + case *gitter.MessageReceived: + fmt.Println(ev.Message.From.Username + ": " + ev.Message.Text) + case *gitter.GitterConnectionClosed: //this one is never called in Faye + // connection was closed + } +} +``` + +##### Debug + +You can print the internal errors by enabling debug to true + +``` Go +api.SetDebug(true, nil) +``` + +You can also define your own `io.Writer` in case you want to persist the logs somewhere. +For example keeping the errors on file + +``` Go +logFile, err := os.Create("gitter.log") +api.SetDebug(true, logFile) +``` + +##### App Engine + +Initialize app engine client and continue as usual + +``` Go +c := appengine.NewContext(r) +client := urlfetch.Client(c) + +api := gitter.New("YOUR_ACCESS_TOKEN") +api.SetClient(client) +``` + +[Documentation](https://godoc.org/github.com/sromku/go-gitter) |
