mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-04-22 15:35:52 +00:00
Add new hourly reset traffic (#3966)
* Add new hourly reset traffic * fix
This commit is contained in:
parent
7466916e02
commit
e986a133f8
17 changed files with 28 additions and 1 deletions
|
|
@ -73,6 +73,8 @@
|
||||||
:dropdown-class-name="themeSwitcher.currentTheme">
|
:dropdown-class-name="themeSwitcher.currentTheme">
|
||||||
<a-select-option value="never">{{ i18n
|
<a-select-option value="never">{{ i18n
|
||||||
"pages.inbounds.periodicTrafficReset.never" }}</a-select-option>
|
"pages.inbounds.periodicTrafficReset.never" }}</a-select-option>
|
||||||
|
<a-select-option value="hourly">{{ i18n
|
||||||
|
"pages.inbounds.periodicTrafficReset.hourly" }}</a-select-option>
|
||||||
<a-select-option value="daily">{{ i18n
|
<a-select-option value="daily">{{ i18n
|
||||||
"pages.inbounds.periodicTrafficReset.daily" }}</a-select-option>
|
"pages.inbounds.periodicTrafficReset.daily" }}</a-select-option>
|
||||||
<a-select-option value="weekly">{{ i18n
|
<a-select-option value="weekly">{{ i18n
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@ func (j *PeriodicTrafficResetJob) Run() {
|
||||||
resetCount := 0
|
resetCount := 0
|
||||||
|
|
||||||
for _, inbound := range inbounds {
|
for _, inbound := range inbounds {
|
||||||
resetInboundErr := j.inboundService.ResetAllTraffics()
|
resetInboundErr := j.inboundService.ResetInboundTraffic(inbound.Id)
|
||||||
if resetInboundErr != nil {
|
if resetInboundErr != nil {
|
||||||
logger.Warning("Failed to reset traffic for inbound", inbound.Id, ":", resetInboundErr)
|
logger.Warning("Failed to reset traffic for inbound", inbound.Id, ":", resetInboundErr)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1891,6 +1891,16 @@ func (s *InboundService) ResetAllTraffics() error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *InboundService) ResetInboundTraffic(id int) error {
|
||||||
|
db := database.GetDB()
|
||||||
|
|
||||||
|
result := db.Model(model.Inbound{}).
|
||||||
|
Where("id = ?", id).
|
||||||
|
Updates(map[string]any{"up": 0, "down": 0})
|
||||||
|
|
||||||
|
return result.Error
|
||||||
|
}
|
||||||
|
|
||||||
func (s *InboundService) DelDepletedClients(id int) (err error) {
|
func (s *InboundService) DelDepletedClients(id int) (err error) {
|
||||||
db := database.GetDB()
|
db := database.GetDB()
|
||||||
tx := db.Begin()
|
tx := db.Begin()
|
||||||
|
|
|
||||||
|
|
@ -312,6 +312,7 @@
|
||||||
"daily" = "يومياً"
|
"daily" = "يومياً"
|
||||||
"weekly" = "أسبوعياً"
|
"weekly" = "أسبوعياً"
|
||||||
"monthly" = "شهرياً"
|
"monthly" = "شهرياً"
|
||||||
|
"hourly" = "كل ساعة"
|
||||||
|
|
||||||
[pages.inbounds.toasts]
|
[pages.inbounds.toasts]
|
||||||
"obtain" = "تم الحصول عليه"
|
"obtain" = "تم الحصول عليه"
|
||||||
|
|
|
||||||
|
|
@ -312,6 +312,7 @@
|
||||||
"daily" = "Daily"
|
"daily" = "Daily"
|
||||||
"weekly" = "Weekly"
|
"weekly" = "Weekly"
|
||||||
"monthly" = "Monthly"
|
"monthly" = "Monthly"
|
||||||
|
"hourly" = "Hourly"
|
||||||
|
|
||||||
[pages.inbounds.toasts]
|
[pages.inbounds.toasts]
|
||||||
"obtain" = "Obtain"
|
"obtain" = "Obtain"
|
||||||
|
|
|
||||||
|
|
@ -312,6 +312,7 @@
|
||||||
"daily" = "Diariamente"
|
"daily" = "Diariamente"
|
||||||
"weekly" = "Semanalmente"
|
"weekly" = "Semanalmente"
|
||||||
"monthly" = "Mensualmente"
|
"monthly" = "Mensualmente"
|
||||||
|
"hourly" = "Cada hora"
|
||||||
|
|
||||||
[pages.inbounds.toasts]
|
[pages.inbounds.toasts]
|
||||||
"obtain" = "Recibir"
|
"obtain" = "Recibir"
|
||||||
|
|
|
||||||
|
|
@ -312,6 +312,7 @@
|
||||||
"daily" = "روزانه"
|
"daily" = "روزانه"
|
||||||
"weekly" = "هفتگی"
|
"weekly" = "هفتگی"
|
||||||
"monthly" = "ماهانه"
|
"monthly" = "ماهانه"
|
||||||
|
"hourly" = "هر ساعت"
|
||||||
|
|
||||||
[pages.inbounds.toasts]
|
[pages.inbounds.toasts]
|
||||||
"obtain" = "فراهمسازی"
|
"obtain" = "فراهمسازی"
|
||||||
|
|
|
||||||
|
|
@ -312,6 +312,7 @@
|
||||||
"daily" = "Harian"
|
"daily" = "Harian"
|
||||||
"weekly" = "Mingguan"
|
"weekly" = "Mingguan"
|
||||||
"monthly" = "Bulanan"
|
"monthly" = "Bulanan"
|
||||||
|
"hourly" = "Setiap jam"
|
||||||
|
|
||||||
[pages.inbounds.toasts]
|
[pages.inbounds.toasts]
|
||||||
"obtain" = "Dapatkan"
|
"obtain" = "Dapatkan"
|
||||||
|
|
|
||||||
|
|
@ -312,6 +312,7 @@
|
||||||
"daily" = "毎日"
|
"daily" = "毎日"
|
||||||
"weekly" = "毎週"
|
"weekly" = "毎週"
|
||||||
"monthly" = "毎月"
|
"monthly" = "毎月"
|
||||||
|
"hourly" = "毎時"
|
||||||
|
|
||||||
[pages.inbounds.toasts]
|
[pages.inbounds.toasts]
|
||||||
"obtain" = "取得"
|
"obtain" = "取得"
|
||||||
|
|
|
||||||
|
|
@ -312,6 +312,7 @@
|
||||||
"daily" = "Diariamente"
|
"daily" = "Diariamente"
|
||||||
"weekly" = "Semanalmente"
|
"weekly" = "Semanalmente"
|
||||||
"monthly" = "Mensalmente"
|
"monthly" = "Mensalmente"
|
||||||
|
"hourly" = "A cada hora"
|
||||||
|
|
||||||
[pages.inbounds.toasts]
|
[pages.inbounds.toasts]
|
||||||
"obtain" = "Obter"
|
"obtain" = "Obter"
|
||||||
|
|
|
||||||
|
|
@ -312,6 +312,7 @@
|
||||||
"daily" = "Ежедневно"
|
"daily" = "Ежедневно"
|
||||||
"weekly" = "Еженедельно"
|
"weekly" = "Еженедельно"
|
||||||
"monthly" = "Ежемесячно"
|
"monthly" = "Ежемесячно"
|
||||||
|
"hourly" = "Ежечасно"
|
||||||
|
|
||||||
[pages.inbounds.toasts]
|
[pages.inbounds.toasts]
|
||||||
"obtain" = "Получить"
|
"obtain" = "Получить"
|
||||||
|
|
|
||||||
|
|
@ -312,6 +312,7 @@
|
||||||
"daily" = "Günlük"
|
"daily" = "Günlük"
|
||||||
"weekly" = "Haftalık"
|
"weekly" = "Haftalık"
|
||||||
"monthly" = "Aylık"
|
"monthly" = "Aylık"
|
||||||
|
"hourly" = "Saatlik"
|
||||||
|
|
||||||
[pages.inbounds.toasts]
|
[pages.inbounds.toasts]
|
||||||
"obtain" = "Elde Et"
|
"obtain" = "Elde Et"
|
||||||
|
|
|
||||||
|
|
@ -312,6 +312,7 @@
|
||||||
"daily" = "Щодня"
|
"daily" = "Щодня"
|
||||||
"weekly" = "Щотижня"
|
"weekly" = "Щотижня"
|
||||||
"monthly" = "Щомісяця"
|
"monthly" = "Щомісяця"
|
||||||
|
"hourly" = "Щогодини"
|
||||||
|
|
||||||
[pages.inbounds.toasts]
|
[pages.inbounds.toasts]
|
||||||
"obtain" = "Отримати"
|
"obtain" = "Отримати"
|
||||||
|
|
|
||||||
|
|
@ -312,6 +312,7 @@
|
||||||
"daily" = "Hàng ngày"
|
"daily" = "Hàng ngày"
|
||||||
"weekly" = "Hàng tuần"
|
"weekly" = "Hàng tuần"
|
||||||
"monthly" = "Hàng tháng"
|
"monthly" = "Hàng tháng"
|
||||||
|
"hourly" = "Hàng giờ"
|
||||||
|
|
||||||
[pages.inbounds.toasts]
|
[pages.inbounds.toasts]
|
||||||
"obtain" = "Nhận"
|
"obtain" = "Nhận"
|
||||||
|
|
|
||||||
|
|
@ -312,6 +312,7 @@
|
||||||
"daily" = "每日"
|
"daily" = "每日"
|
||||||
"weekly" = "每周"
|
"weekly" = "每周"
|
||||||
"monthly" = "每月"
|
"monthly" = "每月"
|
||||||
|
"hourly" = "每小时"
|
||||||
|
|
||||||
[pages.inbounds.toasts]
|
[pages.inbounds.toasts]
|
||||||
"obtain" = "获取"
|
"obtain" = "获取"
|
||||||
|
|
|
||||||
|
|
@ -312,6 +312,7 @@
|
||||||
"daily" = "每日"
|
"daily" = "每日"
|
||||||
"weekly" = "每週"
|
"weekly" = "每週"
|
||||||
"monthly" = "每月"
|
"monthly" = "每月"
|
||||||
|
"hourly" = "每小時"
|
||||||
|
|
||||||
[pages.inbounds.toasts]
|
[pages.inbounds.toasts]
|
||||||
"obtain" = "獲取"
|
"obtain" = "獲取"
|
||||||
|
|
|
||||||
|
|
@ -327,6 +327,8 @@ func (s *Server) startTask() {
|
||||||
s.cron.AddJob("@daily", job.NewClearLogsJob())
|
s.cron.AddJob("@daily", job.NewClearLogsJob())
|
||||||
|
|
||||||
// Inbound traffic reset jobs
|
// Inbound traffic reset jobs
|
||||||
|
// Run every hour
|
||||||
|
s.cron.AddJob("@hourly", job.NewPeriodicTrafficResetJob("hourly"))
|
||||||
// Run once a day, midnight
|
// Run once a day, midnight
|
||||||
s.cron.AddJob("@daily", job.NewPeriodicTrafficResetJob("daily"))
|
s.cron.AddJob("@daily", job.NewPeriodicTrafficResetJob("daily"))
|
||||||
// Run once a week, midnight between Sat/Sun
|
// Run once a week, midnight between Sat/Sun
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue