Skip to content

Commit e8cc474

Browse files
committed
add:新增永久保存,但是会永久占用一个码,问题待解决
1 parent ba71942 commit e8cc474

File tree

4 files changed

+22
-13
lines changed

4 files changed

+22
-13
lines changed

main.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -176,11 +176,14 @@ async def get_file(code: str, token: str, ip: str = Depends(error_ip_limit), s:
176176
async def share(background_tasks: BackgroundTasks, text: str = Form(default=None),
177177
style: str = Form(default='2'), value: int = Form(default=1), file: UploadFile = File(default=None),
178178
ip: str = Depends(upload_ip_limit), s: AsyncSession = Depends(get_session)):
179-
code = await get_code(s)
180179
if style == '2':
181180
if value > settings.MAX_DAYS:
182181
raise HTTPException(status_code=400, detail=f"最大有效天数为{settings.MAX_DAYS}天")
183-
exp_time = datetime.datetime.now() + datetime.timedelta(days=value)
182+
# 如果天数大于0,就设置过期时间,否则就设置为永久,无过期时间
183+
if settings.ENABLE_PERMANENT and value < 0:
184+
exp_time = None
185+
else:
186+
exp_time = datetime.datetime.now() + datetime.timedelta(days=value)
184187
exp_count = -1
185188
elif style == '1':
186189
if value < 1:
@@ -199,6 +202,7 @@ async def share(background_tasks: BackgroundTasks, text: str = Form(default=None
199202
background_tasks.add_task(storage.save_file, file, _text)
200203
else:
201204
size, _text, _type, name = len(text), text, 'text', '文本分享'
205+
code = await get_code(s)
202206
s.add(Codes(code=code, text=_text, size=size, type=_type, name=name, count=exp_count, exp_time=exp_time, key=key))
203207
await s.commit()
204208
upload_ip_limit.add_ip(ip)

settings.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import uuid
22

33
from starlette.config import Config
4-
import configparser
54

65
# 配置文件.env,存放为data/.env
76
config = Config("data/.env")
@@ -32,6 +31,8 @@ class Settings:
3231
ERROR_MINUTE = config('ERROR_MINUTE', cast=int, default=10)
3332
# 上传次数
3433
UPLOAD_COUNT = config('UPLOAD_COUNT', cast=int, default=60)
34+
# 是否允许永久保存
35+
ENABLE_PERMANENT = config('ENABLE_PERMANENT', cast=bool, default=True)
3536
# 上传限制分钟数
3637
UPLOAD_MINUTE = config('UPLOAD_MINUTE', cast=int, default=1)
3738
# 删除过期文件的间隔(分钟)

templates/admin.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,8 @@
4343
<div>取件码:${ file.code }</div>
4444
<div>文件名:${ file.name }</div>
4545
<div>次&nbsp;&nbsp; 数:${ file.count }</div>
46-
<div>到&nbsp;&nbsp; 期:${ file.exp_time.slice(0,19) }</div>
46+
<div v-if="file.exp_time">到&nbsp;&nbsp; 期:${ file.exp_time.slice(0,19) }</div>
47+
<div v-else>到&nbsp;&nbsp; 期:永不过期</div>
4748
<div v-if="file.name==='文本分享'">
4849
<span style="white-space: pre-line">内&nbsp;&nbsp; 容:${ file.text }</span>
4950
</div>

templates/index.html

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -138,15 +138,18 @@
138138
</el-carousel>
139139
</div>
140140
<el-row>
141-
<el-input style="width: 190px" placeholder="数量" v-model="uploadData.value"
142-
class="input-with-select">
143-
<el-select style="width: 75px" v-model="uploadData.style" slot="prepend" placeholder="请选择">
144-
<el-option label="天数" value="2"></el-option>
145-
<el-option label="次数" value="1"></el-option>
146-
</el-select>
147-
<el-button v-if="uploadData.style === '1'" slot="append" disabled></el-button>
148-
<el-button v-else slot="append" disabled></el-button>
149-
</el-input>
141+
<el-tooltip class="item" effect="dark" content="天数为-1则为永久" placement="top">
142+
<el-input style="width: 190px" placeholder="数量" v-model="uploadData.value"
143+
class="input-with-select">
144+
<el-select style="width: 75px" v-model="uploadData.style" slot="prepend"
145+
placeholder="请选择">
146+
<el-option label="天数" value="2"></el-option>
147+
<el-option label="次数" value="1"></el-option>
148+
</el-select>
149+
<el-button v-if="uploadData.style === '1'" slot="append" disabled></el-button>
150+
<el-button v-else slot="append" disabled></el-button>
151+
</el-input>
152+
</el-tooltip>
150153
<el-radio-group style="margin-left: 18px" v-model="uploadData.type">
151154
<el-radio label="1">
152155
文件

0 commit comments

Comments
 (0)