fix all error and bug !!!!!!!!!!!!!
This commit is contained in:
@@ -63,6 +63,9 @@ func GetRes(name string, msg interface{}) *ResObject {
|
||||
case map[string]interface{}:
|
||||
resobj.Obj = msg
|
||||
break
|
||||
case map[string]string:
|
||||
resobj.Obj = msg
|
||||
break
|
||||
default:
|
||||
resobj.Obj = obj.Obj
|
||||
}
|
||||
|
||||
@@ -93,7 +93,6 @@ func PushMessage(target string, message interface{}) {
|
||||
body.Messages = append(body.Messages, message)
|
||||
dataByte, err := json.Marshal(body)
|
||||
if err != nil {
|
||||
fmt.Println("json encoding error")
|
||||
return
|
||||
}
|
||||
|
||||
@@ -101,7 +100,6 @@ func PushMessage(target string, message interface{}) {
|
||||
|
||||
apiURL, ok := getURL(urlPath)
|
||||
if !ok {
|
||||
fmt.Println("url parser fail")
|
||||
return
|
||||
}
|
||||
|
||||
@@ -119,7 +117,6 @@ func PushMessage(target string, message interface{}) {
|
||||
|
||||
_, err = http.DefaultClient.Do(req)
|
||||
if err != nil {
|
||||
fmt.Println("post api fail")
|
||||
return
|
||||
}
|
||||
}
|
||||
@@ -136,24 +133,24 @@ func ReplyMessage(replyToken string, message interface{}) {
|
||||
}
|
||||
|
||||
switch message.(type) {
|
||||
case ImageMessage:
|
||||
m := (message.(ImageMessage))
|
||||
case *ImageMessage:
|
||||
m := (message.(*ImageMessage))
|
||||
m.Type = "image"
|
||||
message = m
|
||||
break
|
||||
case TextMessage:
|
||||
m := (message.(TextMessage))
|
||||
case *TextMessage:
|
||||
m := (message.(*TextMessage))
|
||||
m.Type = "text"
|
||||
message = m
|
||||
break
|
||||
default:
|
||||
fmt.Println("input type error")
|
||||
return
|
||||
}
|
||||
|
||||
body.Messages = append(body.Messages, message)
|
||||
dataByte, err := json.Marshal(body)
|
||||
if err != nil {
|
||||
fmt.Println("json encoding error")
|
||||
return
|
||||
}
|
||||
|
||||
@@ -161,7 +158,6 @@ func ReplyMessage(replyToken string, message interface{}) {
|
||||
|
||||
apiURL, ok := getURL(urlPath)
|
||||
if !ok {
|
||||
fmt.Println("url parser fail")
|
||||
return
|
||||
}
|
||||
|
||||
@@ -179,7 +175,6 @@ func ReplyMessage(replyToken string, message interface{}) {
|
||||
|
||||
_, err = http.DefaultClient.Do(req)
|
||||
if err != nil {
|
||||
fmt.Println("post api fail")
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
@@ -238,11 +238,11 @@ func GetUserStreamStatus(ids []string) (info []*StreamInfo) {
|
||||
|
||||
// TwitchTokenData -
|
||||
type TwitchTokenData struct {
|
||||
AccessToken string `json:"access_token" cc:"access_token"`
|
||||
RefreshToken string `json:"refresh_token" cc:"refresh_token"`
|
||||
ExpiresIn int64 `json:"expires_in" cc:"expires_in"`
|
||||
Scope string `json:"scope" cc:"scope"`
|
||||
TokenType string `json:"token_type" cc:"token_type"`
|
||||
AccessToken string `json:"access_token" cc:"access_token"`
|
||||
RefreshToken string `json:"refresh_token" cc:"refresh_token"`
|
||||
ExpiresIn int64 `json:"expires_in" cc:"expires_in"`
|
||||
Scope []string `json:"scope" cc:"scope"`
|
||||
TokenType string `json:"token_type" cc:"token_type"`
|
||||
}
|
||||
|
||||
// GetTokenData -
|
||||
@@ -261,17 +261,17 @@ func GetTokenData(code string) (token *TwitchTokenData, err error) {
|
||||
qs.Add("grant_type", "authorization_code")
|
||||
qs.Add("redirect_uri", redirectTo)
|
||||
|
||||
u, err := url.Parse(twitchURL)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
u, err = u.Parse(qs.Encode())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
// u, err := url.Parse(twitchURL)
|
||||
// if err != nil {
|
||||
// return nil, err
|
||||
// }
|
||||
// u, err = u.Parse(qs.Encode())
|
||||
// if err != nil {
|
||||
// return nil, err
|
||||
// }
|
||||
|
||||
reqObj := apis.RequestObj{
|
||||
URL: u.String(),
|
||||
URL: twitchURL + "?" + qs.Encode(),
|
||||
Method: "POST",
|
||||
}
|
||||
req, err := apis.GetRequest(reqObj)
|
||||
@@ -285,15 +285,15 @@ func GetTokenData(code string) (token *TwitchTokenData, err error) {
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
|
||||
if resp.StatusCode != 200 || strings.HasPrefix(resp.Header.Get("Content-Type"), "application/json") {
|
||||
return nil, errors.New("api response error")
|
||||
}
|
||||
|
||||
bodyBytes, err := ioutil.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if resp.StatusCode != 200 || !strings.HasPrefix(resp.Header.Get("Content-Type"), "application/json") {
|
||||
return nil, errors.New("api response error")
|
||||
}
|
||||
|
||||
err = json.Unmarshal(bodyBytes, &token)
|
||||
|
||||
return
|
||||
|
||||
@@ -43,7 +43,6 @@ func readFacebookPage() {
|
||||
}
|
||||
|
||||
for _, v := range pages {
|
||||
fmt.Println("get facebook page ::: ", v.ID)
|
||||
go getPageHTML(v)
|
||||
}
|
||||
}
|
||||
@@ -51,8 +50,6 @@ func readFacebookPage() {
|
||||
func getPageHTML(page *model.FacebookPage) {
|
||||
err := page.GetGroups()
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
fmt.Println("get group fail")
|
||||
return
|
||||
}
|
||||
|
||||
@@ -71,12 +68,10 @@ func getPageHTML(page *model.FacebookPage) {
|
||||
timeEl := s.Find("abbr")
|
||||
time, timeExists := timeEl.Attr("data-utime")
|
||||
if !timeExists {
|
||||
fmt.Println("time not found")
|
||||
return
|
||||
}
|
||||
link, linkExists := timeEl.Parent().Attr("href")
|
||||
if !linkExists {
|
||||
fmt.Println("link not found")
|
||||
return
|
||||
}
|
||||
postContent := s.Find("div.userContent")
|
||||
@@ -93,16 +88,14 @@ func getPageHTML(page *model.FacebookPage) {
|
||||
}
|
||||
}
|
||||
if !idFlag {
|
||||
fmt.Println("id not found")
|
||||
return
|
||||
}
|
||||
}
|
||||
fmt.Printf("Time: %s / Text: %s / ID: %s \n", time, text, postID)
|
||||
// fmt.Printf("Time: %s / Text: %s / ID: %s \n", time, text, postID)
|
||||
|
||||
timeInt, err := strconv.ParseInt(time, 10, 32)
|
||||
|
||||
if err != nil {
|
||||
fmt.Println("convert time to int error")
|
||||
return
|
||||
}
|
||||
|
||||
@@ -120,7 +113,6 @@ func getPageHTML(page *model.FacebookPage) {
|
||||
})
|
||||
|
||||
if len(pageData) == 0 {
|
||||
fmt.Println("no data found")
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ package lineobj
|
||||
type EventObject struct {
|
||||
Source *SourceObject `json:"source" cc:"source"`
|
||||
Type string `json:"type" cc:"type"`
|
||||
Timestamp int32 `json:"timestamp" cc:"timestamp"`
|
||||
Timestamp int64 `json:"timestamp" cc:"timestamp"`
|
||||
ReplyToken string `json:"replyToken" cc:"replyToken"`
|
||||
Message map[string]interface{} `json:"message" cc:"message"`
|
||||
}
|
||||
|
||||
@@ -4,16 +4,16 @@ import (
|
||||
"fmt"
|
||||
|
||||
lineobj "git.trj.tw/golang/mtfosbot/module/line-message/line-object"
|
||||
"git.trj.tw/golang/mtfosbot/module/utils"
|
||||
)
|
||||
|
||||
// MessageEvent -
|
||||
func MessageEvent(e *lineobj.EventObject) {
|
||||
fmt.Println(utils.ToMap(e))
|
||||
|
||||
switch e.Type {
|
||||
case "message":
|
||||
messageType(e)
|
||||
break
|
||||
default:
|
||||
fmt.Println("line webhook type not match")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ func messageType(e *lineobj.EventObject) {
|
||||
if t, ok := mtype.(string); ok {
|
||||
switch t {
|
||||
case "text":
|
||||
textMsg(e)
|
||||
break
|
||||
case "image":
|
||||
break
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package msgcmd
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
@@ -23,6 +24,10 @@ func selectAct(cmd, sub, txt string, s *lineobj.SourceObject) (res string) {
|
||||
return delFacebookPage(sub, txt, s)
|
||||
case "deltwitch":
|
||||
return delTwitchChannel(sub, txt, s)
|
||||
case "image":
|
||||
return fmt.Sprintf("$image$%s", sub)
|
||||
case "hello":
|
||||
return "World!!"
|
||||
}
|
||||
return
|
||||
}
|
||||
@@ -181,7 +186,7 @@ func addTwitchChannel(sub, txt string, s *lineobj.SourceObject) (res string) {
|
||||
if ch == nil {
|
||||
ch = &model.TwitchChannel{
|
||||
ID: info.ID,
|
||||
Name: info.DisplayName,
|
||||
Name: info.Login,
|
||||
}
|
||||
err = ch.Add()
|
||||
if err != nil {
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
package msgcmd
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"regexp"
|
||||
"strings"
|
||||
|
||||
"git.trj.tw/golang/mtfosbot/module/utils"
|
||||
|
||||
"git.trj.tw/golang/mtfosbot/model"
|
||||
|
||||
"git.trj.tw/golang/mtfosbot/module/apis/line"
|
||||
@@ -23,10 +26,12 @@ func parseCMD(in string) (c [][]string) {
|
||||
|
||||
// ParseLineMsg -
|
||||
func ParseLineMsg(txt, replyToken string, source *lineobj.SourceObject) {
|
||||
fmt.Println("parse Line msg ;::: ", txt, utils.ToMap(source))
|
||||
if source.Type != "group" {
|
||||
return
|
||||
}
|
||||
strs := strings.Split(strings.Trim(txt, " "), " ")
|
||||
fmt.Println(strs)
|
||||
// skip empty string
|
||||
if len(strs[0]) == 0 {
|
||||
return
|
||||
@@ -35,27 +40,36 @@ func ParseLineMsg(txt, replyToken string, source *lineobj.SourceObject) {
|
||||
if strings.HasPrefix(strs[0], "!") || strings.HasPrefix(strs[0], "!") {
|
||||
// nor cmd
|
||||
cmd := strs[0][1:]
|
||||
fmt.Println(cmd)
|
||||
if len(cmd) == 0 {
|
||||
return
|
||||
}
|
||||
c, err := model.GetGroupCommand(cmd, source.GroupID)
|
||||
c, err := model.GetGroupCommand(strings.ToLower(cmd), source.GroupID)
|
||||
if err != nil || c == nil {
|
||||
fmt.Println("get command fail ", err)
|
||||
return
|
||||
}
|
||||
fmt.Println("get command ::::", utils.ToMap(c))
|
||||
|
||||
str := runCMD(strings.Join(strs[1:], " "), c.Message, source)
|
||||
fmt.Println("cmd result ::::::", str)
|
||||
m := parseResult(str)
|
||||
fmt.Println("parsed cmd result :::::", m)
|
||||
line.ReplyMessage(replyToken, m)
|
||||
|
||||
} else {
|
||||
// key cmd
|
||||
c, err := model.GetGroupKeyCommand(strs[0], source.GroupID)
|
||||
c, err := model.GetGroupKeyCommand(strings.ToLower(strs[0]), source.GroupID)
|
||||
if err != nil || c == nil {
|
||||
fmt.Println("get command fail::::", err)
|
||||
return
|
||||
}
|
||||
fmt.Println("get command ::::", utils.ToMap(c))
|
||||
|
||||
str := runCMD(strings.Join(strs[1:], " "), c.Message, source)
|
||||
fmt.Println("cmd result ::::", str)
|
||||
m := parseResult(str)
|
||||
fmt.Println("parsed cmd result :::::", m)
|
||||
line.ReplyMessage(replyToken, m)
|
||||
|
||||
}
|
||||
@@ -81,6 +95,7 @@ func parseResult(str string) interface{} {
|
||||
}
|
||||
|
||||
func runCMD(txt, c string, s *lineobj.SourceObject) (res string) {
|
||||
fmt.Println("run run run::::::", txt, c, s)
|
||||
cmdAct := parseCMD(c)
|
||||
if len(cmdAct) == 0 {
|
||||
return c
|
||||
@@ -94,8 +109,9 @@ func runCMD(txt, c string, s *lineobj.SourceObject) (res string) {
|
||||
if len(m) > 1 {
|
||||
sub = strings.Join(m[1:], " ")
|
||||
}
|
||||
fmt.Println("run ::::::::", m[0], sub, txt)
|
||||
cmdRes := selectAct(m[0], sub, txt, s)
|
||||
res = strings.Replace(res, v[1], cmdRes, 1)
|
||||
res = strings.Replace(res, v[0], cmdRes, 1)
|
||||
}
|
||||
}
|
||||
return
|
||||
|
||||
@@ -172,6 +172,15 @@ func runQueue() {
|
||||
|
||||
func ircHandle(c *irc.Client, m *irc.Message) {
|
||||
fmt.Println("> ", m.String())
|
||||
if m.Command == "PING" {
|
||||
tmp := &irc.Message{
|
||||
Command: "PONG",
|
||||
Params: []string{
|
||||
m.Params[0],
|
||||
},
|
||||
}
|
||||
client.WriteMessage(tmp)
|
||||
}
|
||||
}
|
||||
|
||||
func indexOf(c []string, data string) int {
|
||||
|
||||
Reference in New Issue
Block a user