From 7f80451aab80b748831feadf7ca64175a5bb732a Mon Sep 17 00:00:00 2001 From: Lev Date: Wed, 26 Nov 2025 17:34:49 +0300 Subject: [PATCH] Data --- API/main.py | 23 ++++++++++ API/utils.py | 45 +++++++++++++++++++ Data/secret.env | 0 Frontend/JS/register.js | 0 Frontend/Pages/control-panel.html | 2 +- Frontend/Styles/{cp.css => control-panel.css} | 0 configs/settings.conf | 2 + requirments.txt | 1 + 8 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 API/main.py create mode 100644 API/utils.py create mode 100644 Data/secret.env create mode 100644 Frontend/JS/register.js rename Frontend/Styles/{cp.css => control-panel.css} (100%) create mode 100644 configs/settings.conf create mode 100644 requirments.txt diff --git a/API/main.py b/API/main.py new file mode 100644 index 0000000..60107b6 --- /dev/null +++ b/API/main.py @@ -0,0 +1,23 @@ +import configparser +import fastapi +from fastapi import HTTPException +import utils + +config = configparser.ConfigParser() +config.read('../configs/settings.conf', encoding='utf-8') +path = config['database']['path'] + +DB = utils.DataBase(path=path) + +app = fastapi.FastAPI() + +@app.post("/web/registration/") +def reg(email: str, passwd: str) : + code = DB.register_site(email, passwd) + if code == 0 : + return 200 + else : + raise HTTPException( + status_code=400, + detail="Этот email уже зарегистрирован" + ) diff --git a/API/utils.py b/API/utils.py new file mode 100644 index 0000000..5868ed7 --- /dev/null +++ b/API/utils.py @@ -0,0 +1,45 @@ +import sqlite3 +import hashlib + +class DataBase : + def __init__(self, path: str) : + self.connect = sqlite3.connect(path) + self.connect.row_factory = sqlite3.Row + self.cursor = self.connect.cursor() + self.cursor.execute(''' + CREATE TABLE IF NOT EXISTS users_site ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + email TEXT NOT NULL UNIQUE, + password_hash TEXT NOT NULL, + created TEXT DEFAULT CURRENT_TIMESTAMP, + agreement_accepted TEXT DEFAULT CURRENT_TIMESTAMP, + counts_url INTEGER DEFAULT 0, + data_pay TEXT + ) + ''') + self.cursor.execute(''' + CREATE TABLE IF NOT EXISTS users_tg ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + id_tg INTEGER NOT NULL UNIQUE, + agreement_accepted TEXT DEFAULT CURRENT_TIMESTAMP, + counts_url INTEGER DEFAULT 0, + data_pay TEXT + ) + ''') + self.connect.commit() + + def register_site(self, email: str, password: str) -> int : + """ + Status code: + 0 - Success + 1 - Email is bussy + """ + try : + self.cursor.execute(''' + INSERT INTO users_site (email, password_hash) + VALUES (?, ?) + ''', (email.lower().strip(), hashlib.sha256(password.encode()).hexdigest())) + self.connect.commit() + return 0 + except sqlite3.IntegrityError : + return 1 \ No newline at end of file diff --git a/Data/secret.env b/Data/secret.env new file mode 100644 index 0000000..e69de29 diff --git a/Frontend/JS/register.js b/Frontend/JS/register.js new file mode 100644 index 0000000..e69de29 diff --git a/Frontend/Pages/control-panel.html b/Frontend/Pages/control-panel.html index a1ceabb..64f64ab 100644 --- a/Frontend/Pages/control-panel.html +++ b/Frontend/Pages/control-panel.html @@ -4,7 +4,7 @@ Document - + diff --git a/Frontend/Styles/cp.css b/Frontend/Styles/control-panel.css similarity index 100% rename from Frontend/Styles/cp.css rename to Frontend/Styles/control-panel.css diff --git a/configs/settings.conf b/configs/settings.conf new file mode 100644 index 0000000..2dc3a6a --- /dev/null +++ b/configs/settings.conf @@ -0,0 +1,2 @@ +[database] +path = \ No newline at end of file diff --git a/requirments.txt b/requirments.txt new file mode 100644 index 0000000..658b842 --- /dev/null +++ b/requirments.txt @@ -0,0 +1 @@ +fastapi[all] \ No newline at end of file