kinit/kinit-api/utils/tools.py
ktianc 7fbdcb3b0f 版本升级
1. 新增:微信小程序端新增微信手机号登录功能(必须为企业认证小程序)
2. 新增:加入动态更新常见问题
3. 新增:新增小程序分享功能
4. 新增:小程序新增第一次登录需要修改密码
5. 新增:新增接口权限控制
6. 新增:用户新增is_staff用来判断是否为工作人员
7. 新增:软删除新增is_delete字段来判断,delete_datetime当前主要来记录时间
8. 更新:部分接口删除功能已更新,需要试用软删除的才会试用软删除
9. 更新:更新系统配置缓存功能
10. 更新:接口认证依赖项更新
11. 更新:获取系统基础配置信息与用户协议与隐私协议更新
12. 优化:优化接口与数据库操作
2023-02-27 17:28:27 +08:00

81 lines
2.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Creaet Time : 2022/10/9 17:09
# @File : tools.py
# @IDE : PyCharm
# @desc : 工具类
import datetime
import random
import re
import string
from typing import List, Union
def test_password(password: str) -> Union[str, bool]:
"""
检测密码强度
"""
if len(password) < 8 or len(password) > 16:
return '长度需为8-16个字符,请重新输入。'
else:
for i in password:
if 0x4e00 <= ord(i) <= 0x9fa5 or ord(i) == 0x20: # Ox4e00等十六进制数分别为中文字符和空格的Unicode编码
return '不能使用空格、中文,请重新输入。'
else:
key = 0
key += 1 if bool(re.search(r'\d', password)) else 0
key += 1 if bool(re.search(r'[A-Za-z]', password)) else 0
key += 1 if bool(re.search(r"\W", password)) else 0
if key >= 2:
return True
else:
return '至少含数字/字母/字符2种组合请重新输入。'
def list_dict_find(options: List[dict], key: str, value: any) -> Union[dict, None]:
"""
字典列表查找
"""
for item in options:
if item.get(key) == value:
return item
return None
def get_time_interval(start_time: str, end_time: str, interval: int, time_format: str = "%H:%M:%S") -> List:
"""
获取时间间隔
:param end_time: 结束时间
:param start_time: 开始时间
:param interval: 间隔时间(分)
:param time_format: 字符串格式化,默认:%H:%M:%S
"""
if start_time.count(":") == 1:
start_time = f"{start_time}:00"
if end_time.count(":") == 1:
end_time = f"{end_time}:00"
start_time = datetime.datetime.strptime(start_time, "%H:%M:%S")
end_time = datetime.datetime.strptime(end_time, "%H:%M:%S")
time_range = []
while end_time > start_time:
time_range.append(start_time.strftime(time_format))
start_time = start_time + datetime.timedelta(minutes=interval)
return time_range
def generate_string(length: int = 8) -> str:
"""
生成随机字符串
:param length: 字符串长度
"""
return ''.join(random.sample(string.ascii_letters + string.digits, length))
if __name__ == '__main__':
# print(generate_invitation_code())
# print(int(datetime.datetime.now().timestamp()))
# print(datetime.datetime.today() + datetime.timedelta(days=7))
print(generate_string())