chore: update example and main
All checks were successful
CI / test (pull_request) Successful in 1m3s

This commit is contained in:
2024-12-23 14:13:29 +01:00
parent 9478149a20
commit ed1f9c3ed1
2 changed files with 20 additions and 23 deletions

View File

@@ -2,7 +2,7 @@
ip_provider:
type: plain
config:
url: https://ifconfig.me
url: https://api.ipify.org
dns_provider:
type: ionos
config:
@@ -20,3 +20,4 @@ domains:
- "@"
- www
check_interval: 0 0 0/6 * * * *
mode: Scheduled

40
main.go
View File

@@ -2,9 +2,7 @@ package main
import (
"fmt"
"time"
"realdnydns/pkg/changeDetector"
"realdnydns/pkg/config"
"realdnydns/pkg/dnsProvider"
ionos "realdnydns/pkg/dnsProvider/ionos"
@@ -13,8 +11,7 @@ import (
"realdnydns/pkg/notificationProvider"
notificationProviderConsole "realdnydns/pkg/notificationProvider/console"
gotify "realdnydns/pkg/notificationProvider/gotify"
"github.com/go-co-op/gocron"
"realdnydns/pkg/realDynDns"
)
func main() {
@@ -71,27 +68,26 @@ func main() {
panic(err)
}
default:
// Use default console notification provider
notificationProvider = notificationProviderConsole.New()
}
changeDetector := changeDetector.New(externalIpProvider, dnsProvider, notificationProvider, configClient.Domains)
rdd := realDynDns.New(externalIpProvider, dnsProvider, notificationProvider, configClient.Domains)
s := gocron.NewScheduler(time.UTC)
s.SingletonMode()
job, err := s.CronWithSeconds(configClient.CheckInterval).DoWithJobDetails(func(job gocron.Job) {
numberChanged, err := changeDetector.DetectAndApplyChanges()
if err != nil {
panic(err)
}
fmt.Printf("Number of changes: %d\n", numberChanged)
fmt.Println("Next run:", job.NextRun())
})
if err != nil {
panic(err)
switch configClient.Mode {
case config.ScheduledMode:
schedule, job, err := rdd.RunWithSchedule(configClient.CheckInterval)
if err != nil {
panic(err)
}
fmt.Println("Starting scheduler")
fmt.Println("Next run:", job.NextRun())
schedule.StartBlocking()
case config.RunOnceMode:
numberOfChanges, err := rdd.RunOnce()
if err != nil {
panic(err)
}
fmt.Println("Number of changes:", numberOfChanges)
}
fmt.Println("Starting scheduler")
fmt.Println("Next run:", job.NextRun())
s.StartBlocking()
}