experiment (#12)

Reviewed-on: #12
Co-authored-by: phoenix <kundeng00@pm.me>
Co-committed-by: phoenix <kundeng00@pm.me>
This commit is contained in:
phoenix
2025-11-14 22:09:08 +00:00
committed by phoenix
parent 59362806e5
commit a1c197cb06
9 changed files with 143 additions and 109 deletions
+15 -32
View File
@@ -5,58 +5,41 @@ import (
"fmt"
"time"
"github.com/twilio/twilio-go"
twilioApi "github.com/twilio/twilio-go/rest/api/v2010"
"git.kundeng.us/phoenix/sender/models"
"git.kundeng.us/phoenix/swoosh/swoop/send"
cnfg "git.kundeng.us/phoenix/textsender-models/pkg/config"
"git.kundeng.us/phoenix/textsender-models/pkg/contact"
msg "git.kundeng.us/phoenix/textsender-models/pkg/message"
)
func SendMessages(config models.TwiloDetails, numbers [](models.Number), message models.Message, secondInterval int) {
func SendMessages(config cnfg.TwiloConfig, numbers [](contact.Contact), message msg.Message, secondInterval int) {
fmt.Println("Sending message")
longSleepLimit := 5
count := 0
client := initClient(config)
var snr send.MessageSender
snr.Config = config
for _, number := range numbers {
numberToSend := number
if numberToSend.IsEmpty() {
fmt.Println("Empty number")
continue
}
fmt.Println(numberToSend)
params := &twilioApi.CreateMessageParams{}
params.SetTo(numberToSend.PhoneNumber)
params.SetFrom(config.Number)
params.SetBody(message.Text)
fmt.Println("Sending to: " + numberToSend.PhoneNumber)
resp, err := client.Api.CreateMessage(params)
if err != nil {
fmt.Println("Error sending SMS message: " + err.Error())
if resp, err := snr.Send(message, number, nil); err != nil {
fmt.Println("Error sending:", err)
} else {
response, _ := json.Marshal(*resp)
fmt.Println("Response: " + string(response))
if response, err := json.Marshal(*resp); err != nil {
fmt.Println("Error parsing:", err)
} else {
fmt.Println("Response:", string(response))
}
}
if count%longSleepLimit == 0 {
// sleep for X seconds
tme := 5 * time.Second
tme := 1 * time.Second
time.Sleep(tme)
} else {
time.Sleep(time.Second)
}
}
}
func initClient(config models.TwiloDetails) *twilio.RestClient {
return twilio.NewRestClientWithParams(twilio.ClientParams{
Username: config.AccountSID,
Password: config.AuthToken,
})
}