2023-11-19 06:41:43 +01:00
|
|
|
import hashlib
|
2024-01-03 01:22:48 +01:00
|
|
|
import re
|
2023-11-19 06:41:43 +01: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 09:46:27 +01:00
|
|
|
return f"https://www.gravatar.com/avatar/{hash_hex}?d=mp"
|
2023-12-24 00:38:52 +01: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 01:22:48 +01:00
|
|
|
|
|
|
|
|
2024-01-27 07:17:28 +01: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 01:22:48 +01:00
|
|
|
def validate_email_format(email: str) -> bool:
|
|
|
|
if not re.match(r"[^@]+@[^@]+\.[^@]+", email):
|
|
|
|
return False
|
|
|
|
return True
|