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