92 lines
3.2 KiB
Python
92 lines
3.2 KiB
Python
import sqlite3
|
|
from datetime import datetime, timedelta
|
|
|
|
class db:
|
|
def init():
|
|
try:
|
|
conn = sqlite3.connect('accounts.db')
|
|
cursor = conn.cursor()
|
|
cursor.execute('''CREATE TABLE IF NOT EXISTS sessions (email text UNIQUE, password integer, code integer, datedel text)''')
|
|
cursor.execute('''CREATE TABLE IF NOT EXISTS accounts (email text UNIQUE, password integer)''')
|
|
conn.commit()
|
|
conn.close()
|
|
return True
|
|
except:
|
|
return False
|
|
|
|
def get_session_passwd(email):
|
|
conn = sqlite3.connect('accounts.db')
|
|
cursor = conn.cursor()
|
|
passwd = '''SELECT password FROM sessions WHERE email = ? LIMIT 1'''
|
|
cursor.execute(passwd, (email, ))
|
|
fetch_passwd = cursor.fetchone()
|
|
conn.close()
|
|
return fetch_passwd[0]
|
|
|
|
|
|
def del_session(email):
|
|
conn = sqlite3.connect('accounts.db')
|
|
cursor = conn.cursor()
|
|
session = '''DELETE FROM sessions WHERE email = ?'''
|
|
cursor.execute(session, (email, ))
|
|
conn.commit()
|
|
conn.close()
|
|
return True
|
|
|
|
def get_session(email):
|
|
exists = '''SELECT email FROM sessions WHERE email = ? LIMIT 1'''
|
|
conn = sqlite3.connect('accounts.db')
|
|
cursor = conn.cursor()
|
|
cursor.execute(exists, (email, ))
|
|
result = cursor.fetchone()
|
|
conn.close()
|
|
return result
|
|
|
|
def check_date(email):
|
|
conn = sqlite3.connect('accounts.db')
|
|
cursor = conn.cursor()
|
|
past_sql = '''SELECT datedel FROM sessions WHERE email = ? LIMIT 1'''
|
|
cursor.execute(past_sql, (email, ))
|
|
fetch_past = cursor.fetchone()
|
|
past = fetch_past[0]
|
|
conn.close()
|
|
return past
|
|
|
|
def fetch_session_code(email):
|
|
conn = sqlite3.connect('accounts.db')
|
|
cursor = conn.cursor()
|
|
match_sql = '''SELECT code FROM sessions WHERE email = ? LIMIT 1'''
|
|
cursor.execute(match_sql, (email, ))
|
|
fetch_otp = cursor.fetchone()
|
|
otp = fetch_otp[0]
|
|
conn.close()
|
|
return otp
|
|
|
|
def add_session(email, password, code):
|
|
conn = sqlite3.connect('accounts.db')
|
|
cursor = conn.cursor()
|
|
|
|
insert_email = "INSERT OR IGNORE INTO sessions (email) VALUES (?)"
|
|
insert_password = "UPDATE sessions SET password = ? WHERE email = ?"
|
|
insert_code = "UPDATE sessions SET code = ? WHERE email = ?"
|
|
insert_datedel = "UPDATE sessions SET datedel = ? WHERE email = ?"
|
|
|
|
cursor.execute(insert_email, (email, ))
|
|
cursor.execute(insert_password, (password, email, ))
|
|
cursor.execute(insert_code, (code, email, ))
|
|
cursor.execute(insert_datedel, (datetime.now() + timedelta(minutes=5), email, ))
|
|
|
|
conn.commit()
|
|
conn.close()
|
|
return True
|
|
|
|
def add_account(email, password):
|
|
conn = sqlite3.connect('accounts.db')
|
|
cursor = conn.cursor()
|
|
insert_email = "INSERT OR IGNORE INTO accounts (email) VALUES (?)"
|
|
insert_password = "UPDATE accounts SET password = ? WHERE email = ?"
|
|
cursor.execute(insert_email, (email, ))
|
|
cursor.execute(insert_password, (password, email, ))
|
|
conn.commit()
|
|
conn.close()
|
|
return True |