46 lines
No EOL
1.6 KiB
Python
46 lines
No EOL
1.6 KiB
Python
import sqlite3
|
|
import pandas
|
|
import datetime
|
|
import hashlib
|
|
|
|
class DataBase :
|
|
def __init__(self, path: str) :
|
|
self.con = sqlite3.connect(path)
|
|
self.cur = self.con.cursor()
|
|
|
|
self.cur.execute("""
|
|
CREATE TABLE IF NOT EXISTS users (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
email TEXT NOT NULL UNIQUE,
|
|
pass_hash TEXT NOT NULL,
|
|
register TEXT NOT NULL,
|
|
urls TEXT DEFAULT ""
|
|
)
|
|
""")
|
|
|
|
self.con.commit()
|
|
|
|
def read_table(self, sql_command: str) -> dict :
|
|
return pandas.read_sql(sql_command, self.con).to_json()
|
|
|
|
def registration(self, email: str, passwd: str) :
|
|
"""
|
|
0 - Success
|
|
1 - Email is busy
|
|
"""
|
|
date = datetime.datetime.now()
|
|
try :
|
|
self.cur.execute(f"""
|
|
INSERT INTO users (email, pass_hash, register)
|
|
VALUES ({email} {hashlib.sha256(passwd.encode()).hexdigest()} {date.day}-{date.month}-{date.year}_{date.hour}:{date.minute}:{date.second})
|
|
""")
|
|
except :
|
|
return {"code": 1}
|
|
self.con.commit()
|
|
data = self.read_table(f"""
|
|
SELECT id FROM users
|
|
WHERE email = {email}
|
|
""")
|
|
return {"code": 0, "data": {"id": data["id"]["0"], "email": email}}
|
|
|
|
|