X-Git-Url: https://git.giacomolli.uk/onechat/blobdiff_plain/522d7fd117285e4e4ce3ea5ec9b5a1722521b681..b1be0ee8530df5db8973bfe355f2f6d3149383a0:/whatsapp_groups.go?ds=sidebyside diff --git a/whatsapp_groups.go b/whatsapp_groups.go index 56676e5..6e9bed3 100644 --- a/whatsapp_groups.go +++ b/whatsapp_groups.go @@ -2,13 +2,17 @@ package main import ( "context" - "log" + "log/slog" "maps" "sync" "time" ) const ( + // whatsappGroupLookupTimeout is the longest time of a read of group + // names. + whatsappGroupLookupTimeout = 10 * time.Second + // whatsappGroupsRefresh is the shortest time between two reads of the // groups from WhatsApp for a group with no name. whatsappGroupsRefresh = time.Minute @@ -23,7 +27,7 @@ const ( // newWhatsAppGroups returns the names of the groups with no names yet. logger // gets the failures of a read. -func newWhatsAppGroups(logger *log.Logger) *WhatsAppGroups { +func newWhatsAppGroups(logger *slog.Logger) *WhatsAppGroups { return &WhatsAppGroups{ logger: logger, names: make(map[string]string), @@ -36,7 +40,7 @@ func newWhatsAppGroups(logger *log.Logger) *WhatsAppGroups { // read, and readAt the time of the last read that succeeded. The mutex // protects all fields after logger. type WhatsAppGroups struct { - logger *log.Logger + logger *slog.Logger mutex sync.Mutex names map[string]string @@ -77,12 +81,12 @@ func (g *WhatsAppGroups) read(ctx context.Context, link WhatsAppLink) bool { return false } - ctx, cancel := context.WithTimeout(ctx, whatsappLookupTime) + ctx, cancel := context.WithTimeout(ctx, whatsappGroupLookupTimeout) defer cancel() groups, err := link.client.GetJoinedGroups(ctx) if err != nil { - g.logger.Printf("group list failed: %s", whatsappRedact(link.own, err.Error())) + g.logger.Warn("group list failed", "err", whatsappRedact(link.own, err.Error())) } g.mutex.Lock()