initial commit

This commit is contained in:
Alireza Ahmadi
2024-02-13 01:17:03 +01:00
commit f40b27fd8b
136 changed files with 16023 additions and 0 deletions
+37
View File
@@ -0,0 +1,37 @@
package cronjob
import (
"time"
"github.com/robfig/cron/v3"
)
type CronJob struct {
cron *cron.Cron
}
func NewCronJob() *CronJob {
return &CronJob{}
}
func (c *CronJob) Start(loc *time.Location) error {
c.cron = cron.New(cron.WithLocation(loc), cron.WithSeconds())
c.cron.Start()
go func() {
// Start stats job
c.cron.AddJob("@every 10s", NewStatsJob())
// Start expiry job
c.cron.AddJob("@every 1m", NewDepleteJob())
// Start deleting old stats
c.cron.AddJob("@daily", NewDelStatsJob())
}()
return nil
}
func (c *CronJob) Stop() {
if c.cron != nil {
c.cron.Stop()
}
}
+22
View File
@@ -0,0 +1,22 @@
package cronjob
import (
"s-ui/logger"
"s-ui/service"
)
type DelStatsJob struct {
service.StatsService
}
func NewDelStatsJob() *DelStatsJob {
return &DelStatsJob{}
}
func (s *DelStatsJob) Run() {
err := s.StatsService.DelOldStats(30)
if err != nil {
logger.Warning("Deleting old statistics failed: ", err)
return
}
}
+22
View File
@@ -0,0 +1,22 @@
package cronjob
import (
"s-ui/logger"
"s-ui/service"
)
type DepleteJob struct {
service.ConfigService
}
func NewDepleteJob() *DepleteJob {
return new(DepleteJob)
}
func (s *DepleteJob) Run() {
err := s.ConfigService.DepleteClients()
if err != nil {
logger.Warning("Disable depleted users failed: ", err)
return
}
}
+22
View File
@@ -0,0 +1,22 @@
package cronjob
import (
"s-ui/logger"
"s-ui/service"
)
type StatsJob struct {
service.SingBoxService
}
func NewStatsJob() *StatsJob {
return new(StatsJob)
}
func (s *StatsJob) Run() {
err := s.SingBoxService.GetStats()
if err != nil {
logger.Warning("Get stats failed: ", err)
return
}
}