123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- /******************************************************************************
- * A Discord API for Golang.
- */
- package discordgo
- import "github.com/gorilla/websocket"
- // A Session represents a connection to the Discord REST API.
- // token : The authentication token returned from Discord
- // Debug : If set to ture debug logging will be displayed.
- type Session struct {
- Token string // Authentication token for this session
- Gateway string // Websocket Gateway for this session
- Debug bool // Debug for printing JSON request/responses
- Cache int // number in X to cache some responses
- // Settable Callback functions for Websocket Events
- OnEvent func(*Session, Event) // should Event be *Event?
- OnReady func(*Session, Ready)
- OnMessageCreate func(*Session, Message)
- OnTypingStart func(*Session, Event)
- OnMessageAck func(*Session, Event)
- OnMessageUpdate func(*Session, Event)
- OnMessageDelete func(*Session, Event)
- OnPresenceUpdate func(*Session, Event)
- OnChannelCreate func(*Session, Event)
- OnChannelUpdate func(*Session, Event)
- OnChannelDelete func(*Session, Event)
- OnGuildCreate func(*Session, Event)
- OnGuildDelete func(*Session, Event)
- OnGuildMemberAdd func(*Session, Event)
- OnGuildMemberRemove func(*Session, Event)
- OnGuildMemberDelete func(*Session, Event) // which is it?
- OnGuildMemberUpdate func(*Session, Event)
- OnGuildRoleCreate func(*Session, Event)
- OnGuildRoleDelete func(*Session, Event)
- OnGuildIntegrationsUpdate func(*Session, Event)
- // OnMessageCreate func(Session, Event, Message)
- // ^^ Any value to passing session, event, message?
- // probably just the Message is all one would need.
- // but having the sessin could be handy?
- wsConn *websocket.Conn
- //TODO, add bools for like.
- // are we connnected to websocket?
- // have we authenticated to login?
- // lets put all the general session
- // tracking and infos here.. clearly
- }
- /******************************************************************************
- * The below functions are "shortcut" methods for functions in restapi.go
- * Reference the client.go file for more documentation.
- */
- func (session *Session) Login(email string, password string) (token string, err error) {
- token, err = Login(session, email, password)
- return
- }
- func (session *Session) Self() (user User, err error) {
- user, err = Users(session, "@me")
- return
- }
- func (session *Session) PrivateChannels() (channels []Channel, err error) {
- channels, err = PrivateChannels(session, "@me")
- return
- }
- func (session *Session) Servers() (servers []Server, err error) {
- servers, err = Servers(session, "@me")
- return
- }
- // Logout ends a session and logs out from the Discord REST API.
- func (session *Session) Logout() (err error) {
- err = Logout(session)
- return
- }
|