package server import ( "encoding/json" "github.com/khlieng/dispatch/storage" ) type WSRequest struct { Type string `json:"type"` Data json.RawMessage `json:"data"` } type WSResponse struct { Type string `json:"type"` Data interface{} `json:"data"` } type Connect struct { Name string `json:"name"` Server string `json:"server"` TLS bool `json:"tls"` Password string `json:"password"` Nick string `json:"nick"` Username string `json:"username"` Realname string `json:"realname"` } type Nick struct { Server string `json:"server"` Old string `json:"oldNick"` New string `json:"newNick"` } type NickFail struct { Server string `json:"server"` } type Join struct { Server string `json:"server"` User string `json:"user"` Channels []string `json:"channels"` } type Part struct { Server string `json:"server"` User string `json:"user"` Channel string `json:"channel,omitempty"` Channels []string `json:"channels,omitempty"` Reason string `json:"reason,omitempty"` } type Mode struct { Server string `json:"server"` Channel string `json:"channel"` User string `json:"user"` Add string `json:"add"` Remove string `json:"remove"` } type Quit struct { Server string `json:"server"` User string `json:"user"` Reason string `json:"reason,omitempty"` } type Message struct { ID string `json:"id,omitempty"` Server string `json:"server,omitempty"` From string `json:"from,omitempty"` To string `json:"to,omitempty"` Content string `json:"content"` Type string `json:"type,omitempty"` } type Messages struct { Server string `json:"server"` To string `json:"to"` Messages []storage.Message `json:"messages"` Prepend bool `json:"prepend,omitempty"` Next string `json:"next,omitempty"` } type Topic struct { Server string `json:"server"` Channel string `json:"channel"` Topic string `json:"topic,omitempty"` Nick string `json:"nick,omitempty"` } type Userlist struct { Server string `json:"server"` Channel string `json:"channel"` Users []string `json:"users"` } type MOTD struct { Server string `json:"server"` Title string `json:"title"` Content []string `json:"content"` } type Invite struct { Server string `json:"server"` Channel string `json:"channel"` User string `json:"user"` } type Kick struct { Server string `json:"server"` Channel string `json:"channel"` User string `json:"user"` } type Whois struct { Server string `json:"server"` User string `json:"user"` } type WhoisReply struct { Nick string `json:"nick"` Username string `json:"username"` Host string `json:"host"` Realname string `json:"realname"` Server string `json:"server"` Channels []string `json:"channels"` } type Away struct { Server string `json:"server"` Message string `json:"message"` } type Raw struct { Server string `json:"server"` Message string `json:"message"` } type SearchRequest struct { Server string `json:"server"` Channel string `json:"channel"` Phrase string `json:"phrase"` } type SearchResult struct { Server string `json:"server"` Channel string `json:"channel"` Results []storage.Message `json:"results"` } type ClientCert struct { Cert []byte `json:"cert"` Key []byte `json:"key"` } type FetchMessages struct { Server string `json:"server"` Channel string `json:"channel"` Next string `json:"next"` } type Error struct { Server string `json:"server"` Message string `json:"message"` }