ts
This commit is contained in:
+43
-6
@@ -74,6 +74,8 @@ async def index(request: Request):
|
||||
return templates.TemplateResponse("index.html", {"request": request})
|
||||
|
||||
|
||||
|
||||
|
||||
@app.get("/api/status", response_model=StatusResponse)
|
||||
async def get_status():
|
||||
"""获取当前状态"""
|
||||
@@ -395,6 +397,7 @@ async def export_users_to_txt():
|
||||
class LoginStatusResponse(BaseModel):
|
||||
logged_in: bool
|
||||
login_time: Optional[str] = None
|
||||
expire_time: Optional[str] = None
|
||||
|
||||
|
||||
@app.get("/api/login/status", response_model=LoginStatusResponse)
|
||||
@@ -409,9 +412,20 @@ async def get_login_status():
|
||||
with open(auth_file, 'r', encoding='utf-8') as f:
|
||||
auth_data = json.load(f)
|
||||
|
||||
# 检查是否过期
|
||||
login_time = auth_data.get("login_time")
|
||||
expire_time = auth_data.get("expire_time")
|
||||
current_time = datetime.now().isoformat()
|
||||
|
||||
if expire_time and current_time > expire_time:
|
||||
# 登录已过期,清除状态
|
||||
os.remove(auth_file)
|
||||
return LoginStatusResponse(logged_in=False)
|
||||
|
||||
return LoginStatusResponse(
|
||||
logged_in=auth_data.get("logged_in", False),
|
||||
login_time=auth_data.get("login_time")
|
||||
login_time=login_time,
|
||||
expire_time=expire_time
|
||||
)
|
||||
except Exception:
|
||||
return LoginStatusResponse(logged_in=False)
|
||||
@@ -419,12 +433,35 @@ async def get_login_status():
|
||||
|
||||
@app.post("/api/login/qrcode")
|
||||
async def generate_qrcode():
|
||||
"""生成登录二维码"""
|
||||
# 这里应该调用实际的小红书登录API
|
||||
# 暂时返回模拟数据
|
||||
"""模拟登录成功"""
|
||||
import uuid
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
# 生成登录状态(模拟登录成功)
|
||||
login_id = str(uuid.uuid4())
|
||||
current_time = datetime.now()
|
||||
expire_time = current_time + timedelta(hours=24) # 24小时后过期
|
||||
|
||||
# 保存登录状态到文件
|
||||
auth_file = os.path.join(config.DATA_DIR, "auth_state.json")
|
||||
auth_data = {
|
||||
"logged_in": True,
|
||||
"login_time": current_time.isoformat(),
|
||||
"expire_time": expire_time.isoformat(),
|
||||
"login_id": login_id,
|
||||
"platform": "xiaohongshu"
|
||||
}
|
||||
|
||||
with open(auth_file, 'w', encoding='utf-8') as f:
|
||||
json.dump(auth_data, f, ensure_ascii=False, indent=2)
|
||||
|
||||
# 返回登录信息
|
||||
return {
|
||||
"qr_url": "https://example.com/login/qrcode",
|
||||
"qr_id": "123456"
|
||||
"login_id": login_id,
|
||||
"login_time": current_time.isoformat(),
|
||||
"expire_time": expire_time.isoformat(),
|
||||
"message": "登录成功(模拟)",
|
||||
"expire_in_hours": 24
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user