Ai_GirlFriend/test_reset.py

52 lines
1.8 KiB
Python
Raw Normal View History

2026-02-02 20:08:28 +08:00
#!/usr/bin/env python3
"""测试视频生成次数重置功能"""
from datetime import datetime, date
from lover.db import SessionLocal
from lover.models import User
def test_reset_logic():
db = SessionLocal()
try:
user = db.query(User).filter(User.id == 70).with_for_update().first()
if not user:
print("用户不存在")
return
print(f"重置前:")
print(f" video_gen_remaining: {user.video_gen_remaining}")
print(f" video_gen_reset_date: {user.video_gen_reset_date}")
# 模拟重置逻辑
current_timestamp = int(datetime.utcnow().timestamp())
is_vip = user.vip_endtime and user.vip_endtime > current_timestamp
if is_vip:
last_reset = user.video_gen_reset_date
today = datetime.utcnow().date()
print(f"\n检查:")
print(f" 是否 VIP: {is_vip}")
print(f" 上次重置日期: {last_reset}")
print(f" 今天日期: {today}")
print(f" 需要重置: {not last_reset or last_reset < today}")
if not last_reset or last_reset < today:
user.video_gen_remaining = 2
user.video_gen_reset_date = today
db.add(user)
db.commit()
print(f"\n重置后:")
print(f" video_gen_remaining: {user.video_gen_remaining}")
print(f" video_gen_reset_date: {user.video_gen_reset_date}")
else:
print("\n今天已经重置过了,不需要再次重置")
else:
print("用户不是 VIP不重置")
finally:
db.close()
if __name__ == "__main__":
test_reset_logic()