From 6d9d87c00b1ba244d0bb3fdc2ca6273f1786fd11 Mon Sep 17 00:00:00 2001 From: Evan Chen Date: Mon, 3 Jan 2022 00:47:25 +0800 Subject: [PATCH] update --- api_join.go | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++ deploy.sh | 2 +- setup_line.go | 56 +++++++++------------------------------------------ 3 files changed, 66 insertions(+), 47 deletions(-) create mode 100644 api_join.go diff --git a/api_join.go b/api_join.go new file mode 100644 index 0000000..e6882f1 --- /dev/null +++ b/api_join.go @@ -0,0 +1,55 @@ +package main + +import ( + "github.com/line/line-bot-sdk-go/v7/linebot" + "github.com/rs/zerolog/log" +) + +func Follow(event *linebot.Event) { + // add user + uid := event.Source.UserID + usr := &User{ + ID: uid, + } + Hit("加入", uid) + + reply := event.ReplyToken + + row := DB.Exec("select id from users where id = ?", uid).RowsAffected + if row == 0 { + // 新用戶 + if err := DB.Create(usr).Error; err != nil { + log.Error().Err(err).Msg("Follow error.") + return + } + + // 舊用戶 + log.Debug().Str("user", uid).Msg("New user.") + msg := linebot.NewTextMessage("你好!") + if reply != "" { + if _, err := bot.ReplyMessage(reply, msg).Do(); err != nil { + log.Error().Err(err).Caller().Msg("reply error") + } + } else { + if _, err := bot.PushMessage(uid, msg).Do(); err != nil { + log.Error().Err(err).Caller().Msg("push error") + } + } + + } else { + // 舊用戶 + log.Debug().Str("user", uid).Msg("user unblocked.") + msg := linebot.NewTextMessage("歡迎回來!") + if reply != "" { + if _, err := bot.ReplyMessage(reply, msg).Do(); err != nil { + log.Error().Err(err).Caller().Msg("reply error") + } + } else { + if _, err := bot.PushMessage(uid, msg).Do(); err != nil { + log.Error().Err(err).Caller().Msg("push error") + } + } + } + + // Welcome and ask for +} diff --git a/deploy.sh b/deploy.sh index 10f88a3..414a59a 100644 --- a/deploy.sh +++ b/deploy.sh @@ -26,7 +26,7 @@ for PLATFORM in $PLATFORMS; do scp ${DIST}/${BIN_FILENAME} root@bot.ework.tw:~ ssh root@bot.ework.tw chmod +x talent ssh root@bot.ework.tw screen -X quit - ssh root@bot.ework.tw screen -d -m "./talent -dev -db-name talentdev > talent.log" + ssh root@bot.ework.tw screen -d -m bash -c './talent -dev -db-name talentdev | tee talent.log' done if [[ "${FAILURES}" != "" ]]; then diff --git a/setup_line.go b/setup_line.go index 150016b..fa05972 100644 --- a/setup_line.go +++ b/setup_line.go @@ -34,56 +34,20 @@ func webhook(c *gin.Context) { if event.Type == linebot.EventTypeFollow { Follow(event) } + if event.Type == linebot.EventTypeMessage { + controller(event) + } } OK(c, "ok") } -func Follow(event *linebot.Event) { - // add user - uid := event.Source.UserID - usr := &User{ - ID: uid, +func controller(event *linebot.Event) { + switch event.Source.Ty { + case "": + + default: + // route to watson + log.Error().Caller().Msg("NOT IMPLEMENTED") } - Hit("加入", uid) - - reply := event.ReplyToken - - row := DB.Exec("select id from users where id = ?", uid).RowsAffected - if row == 0 { - // 新用戶 - if err := DB.Create(usr).Error; err != nil { - log.Error().Err(err).Msg("Follow error.") - return - } - - // 舊用戶 - log.Debug().Str("user", uid).Msg("New user.") - msg := linebot.NewTextMessage("你好!") - if reply != "" { - if _, err := bot.ReplyMessage(reply, msg).Do(); err != nil { - log.Error().Err(err).Caller().Msg("reply error") - } - } else { - if _, err := bot.PushMessage(uid, msg).Do(); err != nil { - log.Error().Err(err).Caller().Msg("push error") - } - } - - } else { - // 舊用戶 - log.Debug().Str("user", uid).Msg("user unblocked.") - msg := linebot.NewTextMessage("歡迎回來!") - if reply != "" { - if _, err := bot.ReplyMessage(reply, msg).Do(); err != nil { - log.Error().Err(err).Caller().Msg("reply error") - } - } else { - if _, err := bot.PushMessage(uid, msg).Do(); err != nil { - log.Error().Err(err).Caller().Msg("push error") - } - } - } - - // Welcome and ask for }