a198886d11
Signed-off-by: silver-ymz <yinmingzhuo@gmail.com>
57 lines
1.1 KiB
Python
57 lines
1.1 KiB
Python
# @Time : 2023/8/13 19:54
|
|
# @Author : Lan
|
|
# @File : utils.py
|
|
# @Software: PyCharm
|
|
import datetime
|
|
import hashlib
|
|
import random
|
|
import string
|
|
import time
|
|
|
|
from apps.base.depends import IPRateLimit
|
|
|
|
|
|
async def get_random_num():
|
|
"""
|
|
获取随机数
|
|
:return:
|
|
"""
|
|
return random.randint(10000, 99999)
|
|
|
|
|
|
r_s = string.ascii_uppercase + string.digits
|
|
|
|
|
|
async def get_random_string():
|
|
"""
|
|
获取随机字符串
|
|
:return:
|
|
"""
|
|
return ''.join(random.choice(r_s) for _ in range(5))
|
|
|
|
|
|
async def get_now():
|
|
"""
|
|
获取当前时间
|
|
:return:
|
|
"""
|
|
return datetime.datetime.now(
|
|
datetime.timezone(datetime.timedelta(hours=8))
|
|
)
|
|
|
|
async def get_select_token(code: int):
|
|
"""
|
|
获取下载token
|
|
:param code:
|
|
:return:
|
|
"""
|
|
token = "123456"
|
|
return hashlib.sha256(f"{code}{int(time.time() / 1000)}000{token}".encode()).hexdigest()
|
|
|
|
async def get_file_url(code: int):
|
|
"""
|
|
对于需要通过服务器中转下载的服务,获取文件下载地址
|
|
:param code:
|
|
:return:
|
|
"""
|
|
return f'/share/download?key={await get_select_token(code)}&code={code}' |