mgt c6 checkpoint
This commit is contained in:
@@ -1,9 +1,12 @@
|
||||
import os
|
||||
from datetime import datetime, timezone
|
||||
from typing import Optional
|
||||
import sqlalchemy as sa
|
||||
import sqlalchemy.orm as so
|
||||
from app import db, login
|
||||
from werkzeug.security import generate_password_hash, check_password_hash
|
||||
import pydenticon, hashlib, base64
|
||||
|
||||
from app import db, login
|
||||
from flask_login import UserMixin
|
||||
|
||||
class User(UserMixin, db.Model):
|
||||
@@ -17,6 +20,33 @@ class User(UserMixin, db.Model):
|
||||
self.password_hash = generate_password_hash(password)
|
||||
def check_password(self, password):
|
||||
return check_password_hash(self.password_hash, password)
|
||||
def gen_avatar(self, write_png=True):
|
||||
foreground = [ "rgb(45,79,255)",
|
||||
"rgb(254,180,44)",
|
||||
"rgb(226,121,234)",
|
||||
"rgb(30,179,253)",
|
||||
"rgb(232,77,65)",
|
||||
"rgb(49,203,115)",
|
||||
"rgb(141,69,170)" ]
|
||||
background = "rgb(22,22,22)"
|
||||
|
||||
digest = hashlib.md5(self.email.lower().encode('utf-8')).hexdigest()
|
||||
basedir = os.path.abspath(os.path.dirname(__file__))
|
||||
pngloc = os.path.join(basedir, 'usercontent', 'identicon', str(digest) + '.png')
|
||||
icongen = pydenticon.Generator(5, 5, digest=hashlib.md5, foreground=foreground, background=background)
|
||||
pngicon = icongen.generate(self.email, 120, 120, padding=(10, 10, 10, 10), inverted=False, output_format="png")
|
||||
if write_png:
|
||||
pngfile = open(pngloc, "wb")
|
||||
pngfile.write(pngicon)
|
||||
pngfile.close()
|
||||
else:
|
||||
return str(base64.b64encode(pngicon))[2:-1]
|
||||
def avatar(self):
|
||||
digest = hashlib.md5(self.email.lower().encode('utf-8')).hexdigest()
|
||||
basedir = os.path.abspath(os.path.dirname(__file__))
|
||||
pngloc = os.path.join(basedir, 'usercontent', 'identicon', digest + '.png')
|
||||
return pngloc
|
||||
|
||||
def __repr__(self):
|
||||
return '<User {}>'.format(self.username)
|
||||
|
||||
|
Reference in New Issue
Block a user