diff --git a/main.go b/main.go index db51ec9..dd26db7 100644 --- a/main.go +++ b/main.go @@ -405,7 +405,7 @@ func ListenGuild(c *tdlib.Client) { for _, line := range strings.Split(strings.TrimSuffix(txt, "\n"), "\n") { validID := regexp.MustCompile(`^/g_withdraw ([a-z0-9]+) ([0-9]+)$`) - if validID.MatchString(line) { + if validID.MatchString(line) && senderUserID != 121964035 { fmt.Println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! GUILD WITHDRAWAL SPOTTED !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!") t := regexp.MustCompile(`/g_withdraw (?P[a-z0-9]+) (?P[0-9]+)`) @@ -438,6 +438,36 @@ func ListenGuild(c *tdlib.Client) { } break } + if validID.MatchString(line) && senderUserID == 121964035 { + t := regexp.MustCompile(`/g_withdraw (?P[a-z0-9]+) (?P[0-9]+)`) + + if t.FindStringSubmatch(line) != nil { + size, _ = strconv.Atoi(t.ReplaceAllString(line, "${Quantity}")) + fmt.Printf("Withdrawing %s / %d\n", t.ReplaceAllString(line, "${Code}"), size) + m := ChatWarsWithdraw{ + Item: t.ReplaceAllString(line, "${Code}"), + Quantity: int64(size), + UserID64: int64(senderUserID), + Time: time.Now(), + } + msgText = fmt.Sprintf("At your command Milord.\n") + inputMsgTxt := tdlib.NewInputMessageText(tdlib.NewFormattedText(msgText, nil), true, true) + c.SendMessage(chat_guild, 0, false, false, nil, inputMsgTxt) + msgText = fmt.Sprintf("/g_withdraw %s %d\n", m.Item, m.Quantity) + inputMsgTxt := tdlib.NewInputMessageText(tdlib.NewFormattedText(msgText, nil), true, true) + msgMutex.Lock() + sendMsg, _ := c.SendMessage(user_chtwrsbot, 0, false, false, nil, inputMsgTxt) + msgID64 = sendMsg.ID + msgText = string("/g_withdraw") + msgUserID64 = m.UserID64 + fmt.Println("send msgID64 (g_withdraw) : ", msgID64) + } else { + fmt.Printf("Can't match withdrawing request.\n") + } + + break + + } validID = regexp.MustCompile(`^/withdraw_([ABCDEFGHIJKLMNOPQRSTUVWXYZ234567]{26})$`) if validID.MatchString(line) { fmt.Println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! GUILD WITHDRAW CONF SPOTTED !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!")