From fb4d7977aa2c558239053ba0dce18f4e7122bae7 Mon Sep 17 00:00:00 2001 From: Dustin Pianalto Date: Tue, 1 Sep 2020 21:36:14 -0800 Subject: [PATCH] Fix addtag removing newlines --- exts/tags.go | 23 ++++------------------- go.mod | 2 +- utils/postfixes.go | 21 +++++++++++++++++++++ 3 files changed, 26 insertions(+), 20 deletions(-) diff --git a/exts/tags.go b/exts/tags.go index 6839a7e..0d0ef91 100644 --- a/exts/tags.go +++ b/exts/tags.go @@ -8,31 +8,17 @@ import ( "github.com/dustinpianalto/disgoman" "github.com/dustinpianalto/goff/utils" - "github.com/kballard/go-shellquote" ) func addTagCommand(ctx disgoman.Context, input []string) { if len(input) >= 1 { - args, err := shellquote.Split(strings.Join(input, " ")) - if err != nil { - if strings.Contains(err.Error(), "Unterminated") { - args = strings.SplitN(strings.Join(args, " "), " ", 2) - } else { - ctx.ErrorChannel <- disgoman.CommandError{ - Context: ctx, - Message: "", - Error: err, - } - return - } - } queryString := `SELECT tags.id, tags.tag, tags.content from tags WHERE tags.guild_id = $1 AND tags.tag = $2;` - row := utils.Database.QueryRow(queryString, ctx.Guild.ID, args[0]) + row := utils.Database.QueryRow(queryString, ctx.Guild.ID, input[0]) var dest string if err := row.Scan(&dest); err != nil { - tag := args[0] + tag := input[0] if tag == "" { ctx.ErrorChannel <- disgoman.CommandError{ Context: ctx, @@ -41,7 +27,7 @@ func addTagCommand(ctx disgoman.Context, input []string) { } return } - if len(args) <= 1 { + if len(input) <= 1 { ctx.ErrorChannel <- disgoman.CommandError{ Context: ctx, Message: "I got a name but no value", @@ -49,7 +35,7 @@ func addTagCommand(ctx disgoman.Context, input []string) { } return } - value := args[1] + value := strings.Join(input[1:], " ") if value == "" { ctx.ErrorChannel <- disgoman.CommandError{ Context: ctx, @@ -61,7 +47,6 @@ func addTagCommand(ctx disgoman.Context, input []string) { queryString = `INSERT INTO tags (tag, content, creator, guild_id) VALUES ($1, $2, $3, $4);` _, err := utils.Database.Exec(queryString, tag, value, ctx.Message.Author.ID, ctx.Guild.ID) if err != nil { - ctx.Send(err.Error()) ctx.ErrorChannel <- disgoman.CommandError{ Context: ctx, Message: "", diff --git a/go.mod b/go.mod index 92010e8..8368764 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.14 require ( github.com/bwmarrin/discordgo v0.20.3-0.20200525154655-ca64123b05de - github.com/dustinpianalto/disgoman v0.0.10 + github.com/dustinpianalto/disgoman v0.0.12 github.com/dustinpianalto/rpnparse v1.0.1 github.com/emersion/go-imap v1.0.5 github.com/emersion/go-message v0.12.0 diff --git a/utils/postfixes.go b/utils/postfixes.go index 12d297a..659bd03 100644 --- a/utils/postfixes.go +++ b/utils/postfixes.go @@ -16,6 +16,10 @@ var postfixes = []postfix{ Name: "1_Update_X_Guild_Prefixes_to_add_ID", Invoke: updateXGuildPrefixesToAddID, }, + postfix{ + Name: "1_Update_Tags_Content_Length", + Invoke: updateTagsContentLength, + }, } func RunPostfixes() { @@ -75,3 +79,20 @@ func updateXGuildPrefixesToAddID(revert bool) error { } return nil } + +func updateTagsContentLength(revert bool) error { + var queryString string + if !revert { + queryString = `ALTER TABLE tags + ALTER COLUMN content TYPE varchar(2000)` + } else { + queryString = `ALTER TABLE tags + ALTER COLUMN content TYPE varchar(1000)` + } + _, err := Database.Exec(queryString) + if err != nil { + log.Println(err) + return err + } + return nil +}