fix: traffic strategy

This commit is contained in:
3252a8
2026-04-30 07:57:14 +03:00
parent 3d5998b8fb
commit 16b11327ee
4 changed files with 15 additions and 1 deletions
+1 -1
View File
@@ -2137,7 +2137,7 @@ async def _build_user_payload(request: web.Request, user_id: int) -> Dict[str, A
"trial_available": trial_available,
"trial_duration_days": int(settings.TRIAL_DURATION_DAYS or 0),
"trial_traffic_limit_gb": float(settings.TRIAL_TRAFFIC_LIMIT_GB or 0),
"trial_traffic_strategy": settings.TRIAL_TRAFFIC_STRATEGY,
"trial_traffic_strategy": getattr(settings, "TRIAL_TRAFFIC_STRATEGY", "NO_RESET"),
"email_auth_enabled": settings.email_auth_configured,
},
}
+2
View File
@@ -427,6 +427,7 @@ class SubscriptionService:
"is_active": True,
"status_from_panel": "TRIAL",
"traffic_limit_bytes": self.settings.trial_traffic_limit_bytes,
"traffic_limit_strategy": self.settings.TRIAL_TRAFFIC_STRATEGY,
"auto_renew_enabled": False,
}
try:
@@ -448,6 +449,7 @@ class SubscriptionService:
expire_at=end_date,
status="ACTIVE",
traffic_limit_bytes=self.settings.trial_traffic_limit_bytes,
traffic_limit_strategy=self.settings.TRIAL_TRAFFIC_STRATEGY,
)
panel_update_payload.update(self._panel_identity_payload_for_user(db_user))
+1
View File
@@ -314,6 +314,7 @@ class Settings(BaseSettings):
TRIAL_ENABLED: bool = Field(default=True)
TRIAL_DURATION_DAYS: int = Field(default=3)
TRIAL_TRAFFIC_LIMIT_GB: Optional[float] = Field(default=5.0)
TRIAL_TRAFFIC_STRATEGY: str = Field(default="NO_RESET")
CRYPT4_ENABLED: bool = Field(default=False, description="Enable happ crypt4 encryption for subscription URLs")
CRYPT4_REDIRECT_URL: Optional[str] = Field(default=None, description="Base redirect URL used for the connect button when crypt4 is enabled")
+11
View File
@@ -26,3 +26,14 @@ class SettingsTests(unittest.TestCase):
self.assertTrue(settings.WEBAPP_SESSION_SECRET)
self.assertTrue(settings.WEBHOOK_SECRET_TOKEN)
self.assertEqual(settings.WEBAPP_SESSION_TTL_SECONDS, 86400)
def test_trial_traffic_strategy_is_available(self):
settings = Settings(
_env_file=None,
BOT_TOKEN="token",
POSTGRES_USER="app_user",
POSTGRES_PASSWORD="app_password",
TRIAL_TRAFFIC_STRATEGY="WEEK",
)
self.assertEqual(settings.TRIAL_TRAFFIC_STRATEGY, "WEEK")