45 lines
No EOL
1.2 KiB
Python
45 lines
No EOL
1.2 KiB
Python
import sqlite3
|
|
import os
|
|
from dotenv import load_dotenv
|
|
|
|
load_dotenv()
|
|
|
|
DATABASE_URL = os.getenv("DATABASE_FILE")
|
|
|
|
def init_db():
|
|
conn = sqlite3.connect(DATABASE_URL)
|
|
cursor = conn.cursor()
|
|
cursor.execute("""
|
|
CREATE TABLE IF NOT EXISTS subscribers (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
email TEXT UNIQUE NOT NULL
|
|
)
|
|
""")
|
|
conn.commit()
|
|
conn.close()
|
|
|
|
def add_email(email):
|
|
try:
|
|
with sqlite3.connect(DATABASE_URL, timeout=10) as conn:
|
|
cursor = conn.cursor()
|
|
cursor.execute("INSERT INTO subscribers (email) VALUES (?)", (email,))
|
|
conn.commit()
|
|
return True
|
|
except sqlite3.IntegrityError:
|
|
return False
|
|
except sqlite3.OperationalError as e:
|
|
print(f"Operational Error: {e}")
|
|
return False
|
|
|
|
def remove_email(email):
|
|
try:
|
|
with sqlite3.connect(DATABASE_URL, timeout=10) as conn:
|
|
cursor = conn.cursor()
|
|
cursor.execute("DELETE FROM subscribers WHERE email = ?", (email,))
|
|
conn.commit()
|
|
if cursor.rowcount > 0:
|
|
return True
|
|
return False
|
|
except Exception as e:
|
|
print(f"Error removing email: {e}")
|
|
return False |