MCPcopy Index your code
hub / github.com/vastsa/FileCodeBox / get_expire_info

Function get_expire_info

apps/base/utils.py:46–89  ·  view source on GitHub ↗
(
    expire_value: int, expire_style: str
)

Source from the content-addressed store, hash-verified

44
45
46async def get_expire_info(
47 expire_value: int, expire_style: str
48) -> Tuple[Optional[datetime.datetime], int, int, str]:
49 expired_count, used_count = -1, 0
50 now = await get_now()
51 code = None
52
53 max_timedelta = (
54 datetime.timedelta(seconds=settings.max_save_seconds)
55 if settings.max_save_seconds > 0
56 else datetime.timedelta(days=7)
57 )
58 detail = (
59 await max_save_times_desc(settings.max_save_seconds)
60 if settings.max_save_seconds > 0
61 else "7天"
62 )
63 detail = f"限制最长时间为 {detail[0]},可换用其他方式"
64
65 expire_styles = {
66 "day": lambda: now + datetime.timedelta(days=expire_value),
67 "hour": lambda: now + datetime.timedelta(hours=expire_value),
68 "minute": lambda: now + datetime.timedelta(minutes=expire_value),
69 "count": lambda: (now + datetime.timedelta(days=1), expire_value),
70 "forever": lambda: (None, None),
71 }
72
73 if expire_style in expire_styles:
74 result = expire_styles[expire_style]()
75 if isinstance(result, tuple):
76 expired_at, extra = result
77 if expire_style == "count":
78 expired_count = extra
79 else:
80 expired_at = result
81 if expired_at and expired_at - now > max_timedelta:
82 raise HTTPException(status_code=403, detail=detail)
83 else:
84 expired_at = now + datetime.timedelta(days=1)
85
86 if not code:
87 code = await get_random_code()
88
89 return expired_at, expired_count, used_count, code
90
91
92def get_code_generate_type() -> str:

Callers 5

create_file_recordMethod · 0.90
share_textFunction · 0.90
share_fileFunction · 0.90
complete_uploadFunction · 0.90
share_local_fileMethod · 0.90

Calls 3

get_nowFunction · 0.90
max_save_times_descFunction · 0.90
get_random_codeFunction · 0.85

Tested by

no test coverage detected