X-Git-Url: https://git.giacomolli.uk/onechat/blobdiff_plain/b1be0ee8530df5db8973bfe355f2f6d3149383a0..7b8d8e8f4b57bd51fd6d0f0d926b821f06b0e1f0:/whatsapp_send.go diff --git a/whatsapp_send.go b/whatsapp_send.go index b95a82e..d3d3cbc 100644 --- a/whatsapp_send.go +++ b/whatsapp_send.go @@ -6,6 +6,7 @@ import ( "encoding/hex" "errors" "fmt" + "log/slog" "slices" "strings" "time" @@ -39,11 +40,11 @@ const ( // during the send gives an answer that the result is unknown, and not a second // send. A disconnected WhatsApp sends nothing and makes no record. link gives // the device, the client, and the own IDs, groups the names of the groups, and -// state the send records. The clock gives the times of the records and the time +// state the send records, and logger gets one line for each send. The clock gives the times of the records and the time // zone of the answer. Image names are checked before the record is written, and // uploads start only after the record is durable. Text-only records keep their // text digest. -func whatsappSend(ctx context.Context, link WhatsAppLink, groups *WhatsAppGroups, state *WhatsAppState, images *ImageStore, clock func() time.Time, id, chat, text, image string) (string, error) { +func whatsappSend(ctx context.Context, link WhatsAppLink, groups *WhatsAppGroups, state *WhatsAppState, images *ImageStore, logger *slog.Logger, clock func() time.Time, id, chat, text, image string) (string, error) { if !link.linked { return whatsappNotLinked, nil } @@ -113,7 +114,10 @@ func whatsappSend(ctx context.Context, link WhatsAppLink, groups *WhatsAppGroups if err != nil { record.State = whatsappFailed record.Answer = "The send failed: " + whatsappRedact(link.own, err.Error()) + "." + logger.Warn("message send failed", "chat", whatsappChatHash(jid), "image", image != "", "err", whatsappRedact(append(slices.Clone(link.own), jid.User), err.Error())) } else { + logger.Info("message sent", "chat", whatsappChatHash(jid), "image", image != "") + name := groups.name(ctx, link, jid.String()) if jid.Server != types.GroupServer { name = whatsappContactName(ctx, link.device, jid, "")