diff --git a/go.mod b/go.mod index da7176e..a0551e6 100644 --- a/go.mod +++ b/go.mod @@ -7,6 +7,7 @@ require ( github.com/bwmarrin/discordgo v0.19.0 github.com/jmoiron/sqlx v1.2.0 github.com/lib/pq v1.1.1 + golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3 // indirect google.golang.org/appengine v1.6.1 // indirect gopkg.in/yaml.v2 v2.2.2 ) diff --git a/go.sum b/go.sum index fdc25e0..bbe42ba 100644 --- a/go.sum +++ b/go.sum @@ -21,15 +21,19 @@ golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5 h1:58fnuSXlxZmFdJyvtTFVmV golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65 h1:+rhAzEzT3f4JtomfC371qB+0Ola2caSKcY69NUBZrRQ= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c h1:+EXw7AwNOKzPFXMZ1yNjO40aWCh3PIquJB2fYlv9wcs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3 h1:4y9KwBHBgBNwDbtu44R5o1fdOCQUEXhbk/P4A9WmJq0= +golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b h1:mSUCVIwDx4hfXJfWsOPfdzEHxzb2Xjl6BQ8YgPnazQA= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= google.golang.org/appengine v1.6.1 h1:QzqyMA1tlu6CgqCDUtU9V+ZKhLFT2dkJuANu5QaxI3I= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= diff --git a/models/discord/channel.go b/models/discord/channel.go index 507c915..0f1ac72 100644 --- a/models/discord/channel.go +++ b/models/discord/channel.go @@ -133,3 +133,8 @@ func (p *ChannelModel) GetFacebookPageTmpl(fbid string) (tmpl string, err error) rt = nil return tmpl, nil } + +// DeleteFacebookPage - +func (p *ChannelModel) DeleteFacebookPage(fbid string) (err error) { + return DeleteFacebookRT(p.ID, fbid) +} diff --git a/models/discord/rt_table.go b/models/discord/rt_table.go index f86cb53..d78a6cb 100644 --- a/models/discord/rt_table.go +++ b/models/discord/rt_table.go @@ -87,3 +87,19 @@ func (p *ChannelFacebookRT) Write() (err error) { } return } + +// DeleteFacebookRT - +func DeleteFacebookRT(channel, facebook string) (err error) { + if len(channel) == 0 || len(facebook) == 0 { + return errors.New("channel or fbid is empty") + } + + db := models.GetConn() + + query := `delete from "discord"."channel_facebook_rt" where "channel" = $1 and "facebook" = $2` + _, err = db.Exec(query, channel, facebook) + if err != nil { + return err + } + return +} diff --git a/pkg/svc/discord/actions.go b/pkg/svc/discord/actions.go index 0cdfc68..e416653 100644 --- a/pkg/svc/discord/actions.go +++ b/pkg/svc/discord/actions.go @@ -81,3 +81,17 @@ func addFacebookPage(info EvtInfo, fbid, tmpl string) string { } return "Success" } + +func delFacebookPage(info EvtInfo, fbid string) string { + ch, err := dsmodel.GetChannelByID(info.Channel) + if err != nil { + return "" + } + + err = ch.DeleteFacebookPage(fbid) + if err != nil { + return "delete facebook page fail" + } + + return "Success" +} diff --git a/pkg/svc/discord/parser.go b/pkg/svc/discord/parser.go index 0e92657..d7fd3a3 100644 --- a/pkg/svc/discord/parser.go +++ b/pkg/svc/discord/parser.go @@ -149,10 +149,13 @@ func parseTextMessage(msg string) (cmd string, keyword bool, payload string) { return } -func selectAction(info EvtInfo, key, value, payload string) string { - switch key { +func selectAction(info EvtInfo, cmdKey, cmdValue, payload string) string { + switch cmdKey { case "ds_addserver": return addServer(info, payload) + case "ds_addfacebook": + strs := strings.Split(payload, " ") + return addFacebookPage(info, strs[0], strings.Join(strs[1:], " ")) } return ""