diff --git a/app/models/attachement.py b/app/models/attachement.py new file mode 100644 index 0000000..0634847 --- /dev/null +++ b/app/models/attachement.py @@ -0,0 +1,32 @@ +from app import db +from hashlib import sha256 +import os + +class Attachement(db.Model): + __tablename__ = 'attachement' + id = db.Column(db.Integer, primary_key=True) + + # Original name of the file + name = db.Column(db.Unicode(64)) + + # Hash of the value + hashed = db.Column(db.Unicode(64)) + + # The comment linked with + comment_id = db.Column(db.Integer, db.ForeignKey('comment.id'), nullable=False) + comment = db.relationship('Comment', backref=backref('attachments', lazy='dynamic')) + + # The size of the file + size = db.Column(db.Integer) + + def __init__(self, file, comment): + self.name = file.filename + self.size = os.stat(file).st_size + self.hashed = str(hash_file(file)) + self.comment = comment + + def hash_file(file): + with open(file,"rb") as f: + bytes = f.read() # read entire file as bytes + hashed = hashlib.sha256(bytes).hexdigest() + return hashed \ No newline at end of file