diff --git a/bernie.jpg b/bernie.jpg new file mode 100644 index 0000000..9ea2415 Binary files /dev/null and b/bernie.jpg differ diff --git a/embed.go b/embed.go index 5f5bafe..a5e365a 100644 --- a/embed.go +++ b/embed.go @@ -4,3 +4,6 @@ import _ "embed" //go:embed message.md var AutoResponderMessage string + +//go:embed bernie.jpg +var Bernie []byte diff --git a/internal/client.go b/internal/client.go index ff35bcb..8742c4f 100644 --- a/internal/client.go +++ b/internal/client.go @@ -131,7 +131,7 @@ func (client *Client) hasAutoRespondedWithinSameDay(userId string) bool { func (client *Client) updateAutoResponseTime(userId string) { client.autoResponseTimeMap[userId] = time.Now().Format(time.RFC3339) - bytes, err := json.Marshal(client.autoResponseTimeMap) + bytes, err := json.MarshalIndent(client.autoResponseTimeMap, "", " ") if err != nil { panic(err) @@ -173,13 +173,36 @@ func (client *Client) eventHandler(evt interface{}) { time.Sleep(2 * time.Duration(rand.IntN(3)) * time.Second) - client.WAClient.SendMessage( - context.Background(), - v.Info.Chat, - &waE2E.Message{ - Conversation: proto.String(client.message + "\n\nIgnore this random number: `" + strconv.FormatInt(time.Now().UnixMilli(), 10) + "`"), - }, - ) + msg := proto.String(client.message + "\n\nIgnore this random number: `" + strconv.FormatInt(time.Now().UnixMilli(), 10) + "`") + + imageResp, err := client.WAClient.Upload(context.Background(), waautoresponder.Bernie, whatsmeow.MediaImage) + + if err == nil { + client.WAClient.SendMessage( + context.Background(), + v.Info.Chat, + &waE2E.Message{ + ImageMessage: &waE2E.ImageMessage{ + Caption: msg, + Mimetype: proto.String("image/jpeg"), + + URL: &imageResp.URL, + DirectPath: &imageResp.DirectPath, + MediaKey: imageResp.MediaKey, + FileEncSHA256: imageResp.FileEncSHA256, + FileSHA256: imageResp.FileSHA256, + FileLength: &imageResp.FileLength, + }, + }) + } else { + client.WAClient.SendMessage( + context.Background(), + v.Info.Chat, + &waE2E.Message{ + Conversation: msg, + }, + ) + } client.WAClient.SendChatPresence(v.Info.Chat, types.ChatPresencePaused, types.ChatPresenceMediaText)