Template
mirror of
https://github.com/djimboy/djimbo_template_aio3.git
synced 2026-08-26 15:07:43 +00:00
Update
This commit is contained in:
@@ -5,12 +5,12 @@ import aiohttp
|
||||
|
||||
|
||||
# In handler
|
||||
# session = await rSession.get_session()
|
||||
# session = await arSession.get_session()
|
||||
# response = await session.get(...)
|
||||
# response = await session.post(...)
|
||||
|
||||
# Асинхронная сессия для запросов
|
||||
class RequestSession:
|
||||
class AsyncRequestSession:
|
||||
def __init__(self) -> None:
|
||||
self._session: Optional[aiohttp.ClientSession] = None
|
||||
|
||||
|
||||
@@ -1,124 +0,0 @@
|
||||
# - *- coding: utf- 8 - *-
|
||||
import sqlite3
|
||||
|
||||
from tgbot.data.config import PATH_DATABASE
|
||||
from tgbot.utils.const_functions import get_unix
|
||||
|
||||
|
||||
# Преобразование БД словаря
|
||||
def dict_factory(cursor, row) -> dict:
|
||||
this_dict = {}
|
||||
|
||||
for idx, col in enumerate(cursor.description):
|
||||
this_dict[col[0]] = row[idx]
|
||||
|
||||
return this_dict
|
||||
|
||||
|
||||
################################################################################
|
||||
########################### ФОРМАТИРОВАНИЕ ЗАПРОСОВ ############################
|
||||
# Форматирование запроса без аргументов
|
||||
def update_format(sql, parameters: dict) -> tuple[str, list]:
|
||||
values = ", ".join([
|
||||
f"{item} = ?" for item in parameters
|
||||
])
|
||||
sql += f" {values}"
|
||||
|
||||
return sql, list(parameters.values())
|
||||
|
||||
|
||||
# Форматирование запроса с аргументами
|
||||
def update_format_args(sql, parameters: dict) -> tuple[str, list]:
|
||||
sql += " WHERE "
|
||||
|
||||
sql += " AND ".join([
|
||||
f"{item} = ?" for item in parameters
|
||||
])
|
||||
|
||||
return sql, list(parameters.values())
|
||||
|
||||
|
||||
############################# ЗАПРОСЫ К БАЗЕ ДАННЫХ ############################
|
||||
################################################################################
|
||||
# Добавление пользователя
|
||||
def add_userx(user_id, user_login, user_name, user_surname, user_fullname):
|
||||
with sqlite3.connect(PATH_DATABASE) as con:
|
||||
con.row_factory = dict_factory
|
||||
con.execute(
|
||||
"INSERT INTO storage_users "
|
||||
"(user_id, user_login, user_name, user_surname, user_fullname, user_unix) "
|
||||
"VALUES (?, ?, ?, ?, ?, ?)",
|
||||
[user_id, user_login, user_name, user_surname, user_fullname, get_unix()],
|
||||
)
|
||||
|
||||
|
||||
# Получение пользователя
|
||||
def get_userx(**kwargs):
|
||||
with sqlite3.connect(PATH_DATABASE) as con:
|
||||
con.row_factory = dict_factory
|
||||
sql = "SELECT * FROM storage_users"
|
||||
sql, parameters = update_format_args(sql, kwargs)
|
||||
|
||||
return con.execute(sql, parameters).fetchone()
|
||||
|
||||
|
||||
# Получение пользователей
|
||||
def get_usersx(**kwargs) -> list[dict]:
|
||||
with sqlite3.connect(PATH_DATABASE) as con:
|
||||
con.row_factory = dict_factory
|
||||
sql = "SELECT * FROM storage_users"
|
||||
sql, parameters = update_format_args(sql, kwargs)
|
||||
|
||||
return con.execute(sql, parameters).fetchall()
|
||||
|
||||
|
||||
# Получение всех пользователей
|
||||
def get_all_usersx() -> list[dict]:
|
||||
with sqlite3.connect(PATH_DATABASE) as con:
|
||||
con.row_factory = dict_factory
|
||||
sql = "SELECT * FROM storage_users"
|
||||
|
||||
return con.execute(sql).fetchall()
|
||||
|
||||
|
||||
# Редактирование пользователя
|
||||
def update_userx(user_id, **kwargs):
|
||||
with sqlite3.connect(PATH_DATABASE) as con:
|
||||
con.row_factory = dict_factory
|
||||
sql = f"UPDATE storage_users SET"
|
||||
sql, parameters = update_format(sql, kwargs)
|
||||
parameters.append(user_id)
|
||||
con.execute(sql + "WHERE user_id = ?", parameters)
|
||||
|
||||
|
||||
# Удаление пользователя
|
||||
def delete_userx(**kwargs):
|
||||
with sqlite3.connect(PATH_DATABASE) as con:
|
||||
con.row_factory = dict_factory
|
||||
sql = "DELETE FROM storage_users"
|
||||
sql, parameters = update_format_args(sql, kwargs)
|
||||
con.execute(sql, parameters)
|
||||
|
||||
|
||||
############################## СОЗДАНИЕ БАЗЫ ДАННЫХ ############################
|
||||
# Создание всех таблиц для Базы Данных
|
||||
def create_dbx():
|
||||
with sqlite3.connect(PATH_DATABASE) as con:
|
||||
con.row_factory = dict_factory
|
||||
|
||||
# Таблица с хранением пользователей
|
||||
if len(con.execute("PRAGMA table_info(storage_users)").fetchall()) == 7:
|
||||
print("DB was found(1/1)")
|
||||
else:
|
||||
con.execute(
|
||||
"CREATE TABLE storage_users("
|
||||
"increment INTEGER PRIMARY KEY AUTOINCREMENT, "
|
||||
"user_id INTEGER,"
|
||||
"user_login TEXT,"
|
||||
"user_name TEXT,"
|
||||
"user_surname TEXT,"
|
||||
"user_fullname TEXT,"
|
||||
"user_unix INTEGER"
|
||||
")"
|
||||
)
|
||||
print("DB was not found(1/1) | Creating...")
|
||||
Reference in New Issue
Block a user