~kris/9p

disco

a36bee635f3b05b5f45570283acfba8bb679f42f — Sean Hinchee 8 years ago f35618b
fixing crashes; removed personal messages for later fix; update API compliance
7 files changed, 31 insertions(+), 23 deletions(-)

M DiscordState/session.go
M DiscordState/state.go
M DiscordState/struct.go
M commands.go
M events.go
M helper.go
M menu.go
M DiscordState/session.go => DiscordState/session.go +5 -4
@@ 4,7 4,7 @@ package DiscordState
import (
	"fmt"

	"bitbucket.org/henesy/disco/DiscordGo"
	"github.com/bwmarrin/discordgo"
)

//!----- Session -----!//


@@ 32,12 32,13 @@ func (Session *Session) Start() error {
	dg.Open()

	//Retrieve GuildID's from current User
	UserGuilds, err := dg.UserGuilds()
	//need index of Guilds[] rather than UserGuilds[] (maybe)
	Guilds, err := dg.UserGuilds(0, "", "")
	if err != nil {
		return err
	}

	Session.Guilds = UserGuilds
	Session.Guilds = Guilds

	Session.DiscordGo = dg



@@ 116,7 117,7 @@ func (Session *Session) NewState(GuildID string, MessageAmount int) (*State, err

//Update updates the session, this reloads the Guild list
func (Session *Session) Update() error {
	UserGuilds, err := Session.DiscordGo.UserGuilds()
	UserGuilds, err := Session.DiscordGo.UserGuilds(0, "", "")
	if err != nil {
		return err
	}

M DiscordState/state.go => DiscordState/state.go +2 -2
@@ 1,6 1,6 @@
package DiscordState

import "bitbucket.org/henesy/disco/DiscordGo"
import "github.com/bwmarrin/discordgo"

//SetChannel sets the channel of the current State
func (State *State) SetChannel(ID string) {


@@ 56,7 56,7 @@ func (State *State) DelMessage(Message *discordgo.Message) {

//RetrieveMessages retrieves last N Messages and puts it in state
func (State *State) RetrieveMessages(Amount int) error {
	Messages, err := State.Session.DiscordGo.ChannelMessages(State.Channel.ID, Amount, "", "")
	Messages, err := State.Session.DiscordGo.ChannelMessages(State.Channel.ID, Amount, "", "", "")
	if err != nil {
		return err
	}

M DiscordState/struct.go => DiscordState/struct.go +2 -2
@@ 1,6 1,6 @@
package DiscordState

import "bitbucket.org/henesy/disco/DiscordGo"
import "github.com/bwmarrin/discordgo"

//State is the current state of the attached client
type State struct {


@@ 22,5 22,5 @@ type Session struct {
	User      *discordgo.User
	Password  string
	DiscordGo *discordgo.Session
	Guilds    []*discordgo.Guild
	Guilds    []*discordgo.UserGuild
}

M commands.go => commands.go +4 -2
@@ 76,14 76,16 @@ func SelectChannel() {
//SelectPrivate a private channel
func SelectPrivate() {
	State.Enabled = false
	SelectPrivateMenu()
	/* FIXME -- PM's broken
	SelectPrivateMenu()*/
	State.Enabled = true
}

//SelectDeletePrivate a private channel
func SelectDeletePrivate() {
	State.Enabled = false
	SelectDeletePrivateMenu()
	/* FIXME -- PM's broken
	SelectDeletePrivateMenu()*/
	State.Enabled = true
	if State.Channel != nil {
		ShowContent()

M events.go => events.go +4 -4
@@ 3,14 3,14 @@ package main
import (
	"strings"

	"bitbucket.org/henesy/disco/DiscordGo"
	"github.com/bwmarrin/discordgo"
)

func removeReaction(s *discordgo.Session, r *discordgo.ReactionRemove) {
func removeReaction(s *discordgo.Session, r *discordgo.MessageReactionRemove) {

}

func newReaction(s *discordgo.Session, m *discordgo.ReactionAdd) {
func newReaction(s *discordgo.Session, m *discordgo.MessageReactionAdd) {
}

// This function will be called (due to AddHandler above) every time a new


@@ 34,7 34,7 @@ func newMessage(s *discordgo.Session, m *discordgo.MessageCreate) {
		Messages := ReceivingMessageParser(m.Message)

		for _, Msg := range Messages {
			MessagePrint(m.Timestamp, m.Author.Username, Msg)
			MessagePrint(string(m.Timestamp), m.Author.Username, Msg)
			//log.Printf("> %s > %s\n", UserName(m.Author.Username), Msg)
		}
	}

M helper.go => helper.go +5 -3
@@ 7,7 7,7 @@ import (
	"strings"
	"time"
	"fmt"
	"bitbucket.org/henesy/disco/DiscordGo"
	"github.com/bwmarrin/discordgo"
	"bufio"
)



@@ 26,11 26,13 @@ func Msg(MsgType, format string, a ...interface{}) {
//Header simply prints a header containing state/session information
func Header() {
	Msg(InfoMsg, "Welcome, %s!\n\n", State.Session.User.Username)
	/* FIXME -- PM's won't work
	if State.Channel.IsPrivate {
		Msg(InfoMsg, "Channel: %s\n", State.Channel.Recipient.Username)
	} else {
	*/
		Msg(InfoMsg, "Guild: %s, Channel: %s\n", State.Guild.Name, State.Channel.Name)
	}
	/*}*/
}

//ReceivingMessageParser parses receiving message for mentions, images and MultiLine and returns string array


@@ 56,7 58,7 @@ func PrintMessages(Amount int) {

			for _, Msg := range Messages {
				//log.Printf("> %s > %s\n", UserName(m.Author.Username), Msg)
				MessagePrint(m.Timestamp, m.Author.Username, Msg)
				MessagePrint(string(m.Timestamp), m.Author.Username, Msg)

			}
		}

M menu.go => menu.go +9 -6
@@ 7,7 7,7 @@ import (
	"bufio"
	"os"
)

/* FIXME -- PM's broken
//SelectPrivateMenu is a menu item that changes to a private channel
func SelectPrivateMenu() {



@@ 78,8 78,9 @@ Start:
	State.Channel = UserChannels[ResponseInteger]
	ShowContent()
End:
}
}*/

/* FIXME -- PM's broken
//SelectDeletePrivateMenu deletes a user channel
func SelectDeletePrivateMenu() {



@@ 117,7 118,7 @@ Start:

	Session.DiscordGo.ChannelDelete(UserChannels[ResponseInteger].ID)

}
} */

//SelectGuildMenu is a menu item that creates a new State on basis of Guild selection
func SelectGuildMenu() {


@@ 183,7 184,8 @@ Start:
	SelectID := 0

	for _, channel := range State.Channels {
		if channel.Type == "text" {
		// 0 is ChannelTypeGuildText ChannelType = iota
		if channel.Type == 0 {
			SelectMap[SelectID] = channel.ID
			Msg(TextMsg, "[%d] %s\n", SelectID, channel.Name)
			SelectID++


@@ 278,9 280,10 @@ func ExtraPrivateMenuOptions() {

//AddUserChannelMenu takes a user from the current guild and adds them to a private message. WILL RETURN ERROR IF IN USER CHANNEL.
func AddUserChannelMenu() {
	/* FIXME -- PM's broken
	if State.Channel.IsPrivate {
		Msg(ErrorMsg, "Currently in a user channel, move to a guild with :g\n")
	} else {
	} else {*/
		SelectMap := make(map[int]string)
	Start:
		SelectID := 0


@@ 314,7 317,7 @@ func AddUserChannelMenu() {
			Session.DiscordGo.ChannelMessageSend(Chan.ID, "Test")
		}
		State.Channel = Chan
	}
	/*}*/
}

//LeaveServerMenu is a copy of SelectGuildMenu that leaves instead of selects