Skip to content

Commit 94fc0e8

Browse files
author
lan-air
committed
修复文件次数1直接删除
1 parent 5eec466 commit 94fc0e8

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

main.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import uuid
44
import threading
55
from fastapi import FastAPI, Depends, UploadFile, Form, File
6+
from sqlalchemy import or_
67
from sqlalchemy.orm import Session
78
from starlette.requests import Request
89
from starlette.responses import HTMLResponse
@@ -144,15 +145,12 @@ async def index(request: Request, code: str, db: Session = Depends(get_db)):
144145
info = db.query(database.Codes).filter(database.Codes.code == code).first()
145146
if not info:
146147
return {'code': 404, 'msg': f'取件码错误,错误{error_count - ip_error(ip)}次将被禁止10分钟'}
147-
if info.exp_time < datetime.datetime.now():
148+
if info.exp_time < datetime.datetime.now() or info.count == 0:
148149
threading.Thread(target=delete_file, args=([{'type': info.type, 'text': info.text}],)).start()
149150
db.delete(info)
150151
db.commit()
151152
return {'code': 404, 'msg': '取件码已过期,请联系寄件人'}
152153
info.count -= 1
153-
if info.count == 0:
154-
threading.Thread(target=delete_file, args=([{'type': info.type, 'text': info.text}],)).start()
155-
db.delete(info)
156154
db.commit()
157155
return {
158156
'code': 200,
@@ -164,7 +162,12 @@ async def index(request: Request, code: str, db: Session = Depends(get_db)):
164162
@app.post('/share')
165163
async def share(text: str = Form(default=None), style: str = Form(default='2'), value: int = Form(default=1),
166164
file: UploadFile = File(default=None), db: Session = Depends(get_db)):
167-
exps = db.query(database.Codes).filter(database.Codes.exp_time < datetime.datetime.now())
165+
exps = db.query(database.Codes).filter(
166+
or_(
167+
database.Codes.exp_time < datetime.datetime.now(),
168+
database.Codes.count == 0
169+
)
170+
)
168171
threading.Thread(target=delete_file, args=([[{'type': old.type, 'text': old.text}] for old in exps.all()],)).start()
169172
exps.delete()
170173
db.commit()

0 commit comments

Comments
 (0)