From 74583aa1aaeea69ba0a4f923bf8d6d7821bcb1ec Mon Sep 17 00:00:00 2001 From: zhengkunwang <31820853+zhengkunwang223@users.noreply.github.com> Date: Wed, 5 Feb 2025 18:07:16 +0800 Subject: [PATCH] feat: fix anti-leech is not work on proxy website (#7801) Refs https://github.com/1Panel-dev/1Panel/issues/7752 --- backend/app/service/website.go | 16 +++++++++++++++- frontend/src/utils/util.ts | 6 +++--- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/backend/app/service/website.go b/backend/app/service/website.go index becb5687f..841bbbcaa 100644 --- a/backend/app/service/website.go +++ b/backend/app/service/website.go @@ -95,8 +95,10 @@ type IWebsiteService interface { GetAuthBasics(req request.NginxAuthReq) (res response.NginxAuthRes, err error) UpdateAuthBasic(req request.NginxAuthUpdate) (err error) + GetAntiLeech(id uint) (*response.NginxAntiLeechRes, error) UpdateAntiLeech(req request.NginxAntiLeechUpdate) (err error) + OperateRedirect(req request.NginxRedirectReq) (err error) GetRedirect(id uint) (res []response.NginxRedirectConfig, err error) UpdateRedirectFile(req request.NginxRedirectUpdate) (err error) @@ -2069,7 +2071,19 @@ func (w WebsiteService) UpdateAntiLeech(req request.NginxAntiLeechUpdate) (err e } newBlock.Directives = append(newBlock.Directives, ifDir) newDirective.Block = newBlock - block.Directives = append(block.Directives, &newDirective) + + index := -1 + for i, directive := range block.Directives { + if directive.GetName() == "include" { + index = i + break + } + } + if index != -1 { + block.Directives = append(block.Directives[:index], append([]components.IDirective{&newDirective}, block.Directives[index:]...)...) + } else { + block.Directives = append(block.Directives, &newDirective) + } } if err = nginx.WriteConfig(nginxFull.SiteConfig.Config, nginx.IndentedStyle); err != nil { diff --git a/frontend/src/utils/util.ts b/frontend/src/utils/util.ts index 475adc279..2f796e675 100644 --- a/frontend/src/utils/util.ts +++ b/frontend/src/utils/util.ts @@ -450,17 +450,17 @@ export function getAge(d1: string): string { let res = ''; if (dayDiff > 0) { - res += String(dayDiff) + i18n.global.t('commons.units.day', dayDiff); + res += String(dayDiff) + ' ' + i18n.global.t('commons.units.day', dayDiff) + ' '; if (hours <= 0) { return res; } } if (hours > 0) { - res += String(hours) + i18n.global.t('commons.units.hour', hours); + res += String(hours) + ' ' + i18n.global.t('commons.units.hour', hours) + ' '; return res; } if (minutes > 0) { - res += String(minutes) + i18n.global.t('commons.units.minute', minutes); + res += String(minutes) + ' ' + i18n.global.t('commons.units.minute', minutes); return res; } return i18n.global.t('app.less1Minute');