package internal import ( "github.com/robfig/cron/v3" "github.com/dimaskiddo/go-whatsapp-multidevice-rest/pkg/log" pkgWhatsApp "github.com/dimaskiddo/go-whatsapp-multidevice-rest/pkg/whatsapp" ) func Routines(cron *cron.Cron) { log.Print(nil).Info("Running Routine Tasks") cron.AddFunc("0 * * * * *", func() { // If WhatsAppClient Connection is more than 0 if len(pkgWhatsApp.WhatsAppClient) > 0 { // Check Every Authenticated MSISDN for jid, client := range pkgWhatsApp.WhatsAppClient { // Get Real JID from Datastore realJID := client.Store.ID.User // Mask JID for Logging Information maskJID := realJID[0:len(realJID)-4] + "xxxx" // Print Log Show Information of Device Chenking log.Print(nil).Info("Checking WhatsApp Client for " + maskJID) // Check WhatsAppClient Registered JID with Authenticated MSISDN if jid != realJID { // Print Log Show Information to Force Log-out Device log.Print(nil).Info("Logging out WhatsApp Client for " + maskJID + " Due to Missmatch Authentication") // Logout WhatsAppClient Device _ = pkgWhatsApp.WhatsAppLogout(jid) delete(pkgWhatsApp.WhatsAppClient, jid) } } } }) cron.Start() }