fix: credit tracking, voice clone TTL, avatar upload ui, asset serving fallback, OAuth encryption, free plan video renders, backlink outreach sprint

This commit is contained in:
ajaysi
2026-05-25 17:07:35 +05:30
parent 090d69761f
commit 9b3bec698b
99 changed files with 15892 additions and 1278 deletions

View File

@@ -548,9 +548,11 @@ def validate_video_generation_operations(
def validate_scene_animation_operation(
pricing_service: PricingService,
user_id: str,
scene_count: int = 1,
) -> None:
"""
Validate the per-scene animation workflow before API calls.
Validates that the user has sufficient credits for *all* scenes in the batch.
"""
try:
operations_to_validate = [
@@ -560,6 +562,7 @@ def validate_scene_animation_operation(
'actual_provider_name': 'wavespeed',
'operation_type': 'scene_animation',
}
for _ in range(scene_count)
]
can_proceed, message, error_details = pricing_service.check_comprehensive_limits(
@@ -581,9 +584,8 @@ def validate_scene_animation_operation(
}
)
logger.info(f"[Pre-flight Validator] ✅ Scene animation validated for user {user_id}")
# Validation passed - no return needed (function raises HTTPException if validation fails)
logger.info(f"[Pre-flight Validator] ✅ Scene animation validated for user {user_id} ({scene_count} scene(s))")
except HTTPException:
raise
except Exception as e:
@@ -730,9 +732,11 @@ def validate_video_generation_operations(
def validate_scene_animation_operation(
pricing_service: PricingService,
user_id: str,
scene_count: int = 1,
) -> None:
"""
Validate the per-scene animation workflow before API calls.
Validates that the user has sufficient credits for *all* scenes in the batch.
"""
try:
operations_to_validate = [
@@ -742,6 +746,7 @@ def validate_scene_animation_operation(
'actual_provider_name': 'wavespeed',
'operation_type': 'scene_animation',
}
for _ in range(scene_count)
]
can_proceed, message, error_details = pricing_service.check_comprehensive_limits(
@@ -763,7 +768,7 @@ def validate_scene_animation_operation(
}
)
logger.info(f"[Pre-flight Validator] ✅ Scene animation validated for user {user_id}")
logger.info(f"[Pre-flight Validator] ✅ Scene animation validated for user {user_id} ({scene_count} scene(s))")
except HTTPException:
raise

View File

@@ -566,10 +566,10 @@ class PricingService:
"firecrawl_calls_limit": 0, # DISABLED: Firecrawl not in Free tier
"stability_calls_limit": 3, # 3 images - enough to try the product
"exa_calls_limit": 10, # 10 research queries - enough to try the product
"video_calls_limit": 0, # DISABLED: Video generation not in Free tier
"video_calls_limit": 2, # 2 video renders - try podcast video on Free
"image_edit_calls_limit": 5, # 5 image edits - enough to try the product
"audio_calls_limit": 5, # 5 audio clips - enough to try the product
"wavespeed_calls_limit": 0, # DISABLED: WaveSpeed not included in Free tier
"wavespeed_calls_limit": 0, # 0 = unlimited for Free; video controlled via video_calls_limit
"gemini_tokens_limit": 50000,
"openai_tokens_limit": 0, # DISABLED
"anthropic_tokens_limit": 0, # DISABLED