open-webui/backend/utils/misc.py

41 lines
1.1 KiB
Python
Raw Normal View History

2023-11-19 05:41:43 +00:00
import hashlib
2024-01-03 00:22:48 +00:00
import re
2023-11-19 05:41:43 +00:00
def get_gravatar_url(email):
# Trim leading and trailing whitespace from
# an email address and force all characters
# to lower case
address = str(email).strip().lower()
# Create a SHA256 hash of the final string
hash_object = hashlib.sha256(address.encode())
hash_hex = hash_object.hexdigest()
# Grab the actual image URL
2023-11-19 08:46:27 +00:00
return f"https://www.gravatar.com/avatar/{hash_hex}?d=mp"
2023-12-23 23:38:52 +00:00
def calculate_sha256(file):
sha256 = hashlib.sha256()
# Read the file in chunks to efficiently handle large files
for chunk in iter(lambda: file.read(8192), b""):
sha256.update(chunk)
return sha256.hexdigest()
2024-01-03 00:22:48 +00:00
2024-01-27 06:17:28 +00:00
def calculate_sha256_string(string):
# Create a new SHA-256 hash object
sha256_hash = hashlib.sha256()
# Update the hash object with the bytes of the input string
sha256_hash.update(string.encode("utf-8"))
# Get the hexadecimal representation of the hash
hashed_string = sha256_hash.hexdigest()
return hashed_string
2024-01-03 00:22:48 +00:00
def validate_email_format(email: str) -> bool:
if not re.match(r"[^@]+@[^@]+\.[^@]+", email):
return False
return True