Template
mirror of
https://github.com/djimboy/djimbo_template_aio3.git
synced 2026-08-23 13:47:44 +00:00
Update
This commit is contained in:
+28
-83
@@ -4,28 +4,37 @@ import sqlite3
|
||||
from pydantic import BaseModel
|
||||
|
||||
from tgbot.data.config import PATH_DATABASE
|
||||
from tgbot.database.db_helper import dict_factory, update_format_where, update_format
|
||||
from tgbot.database.adb_helper import Databasex, dict_factory, update_format
|
||||
from tgbot.utils.const_functions import get_unix, ded
|
||||
|
||||
|
||||
# Модель таблицы
|
||||
class UserModel(BaseModel):
|
||||
increment: int # Инкремент записи
|
||||
user_id: int # Айди пользователя
|
||||
user_login: str # Юзернейм пользователя
|
||||
user_name: str # Имя пользователя
|
||||
user_surname: str # Фамилия пользователя
|
||||
user_fullname: str # Полное имя + фамилия пользователя
|
||||
user_unix: int # Дата регистрации пользователя в боте (в UNIX времени)
|
||||
# Table model
|
||||
class ModelBase(BaseModel):
|
||||
increment: int # increment
|
||||
user_id: int # User id
|
||||
user_login: str # User username
|
||||
user_name: str # User name
|
||||
user_surname: str # User surname
|
||||
user_fullname: str # User fullname (name + surname)
|
||||
user_unix: int # Date of user registration in the bot (in UNIX time)
|
||||
|
||||
class Config:
|
||||
json_schema_extra = {
|
||||
'storage_name': 'storage_users'
|
||||
}
|
||||
|
||||
|
||||
# Работа с юзером
|
||||
class Userx:
|
||||
storage_name = "storage_users"
|
||||
# Users
|
||||
class Usersx(Databasex[ModelBase]):
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
self.table_model = ModelBase
|
||||
self.storage_name = self.table_model.model_json_schema()['storage_name']
|
||||
self.column_one = False
|
||||
|
||||
# Добавление записи
|
||||
@staticmethod
|
||||
# Add entry
|
||||
def add(
|
||||
self,
|
||||
user_id: int,
|
||||
user_login: str,
|
||||
user_name: str,
|
||||
@@ -39,7 +48,7 @@ class Userx:
|
||||
|
||||
con.execute(
|
||||
ded(f"""
|
||||
INSERT INTO {Userx.storage_name} (
|
||||
INSERT INTO {self.storage_name} (
|
||||
user_id,
|
||||
user_login,
|
||||
user_name,
|
||||
@@ -58,76 +67,12 @@ class Userx:
|
||||
],
|
||||
)
|
||||
|
||||
# Получение записи
|
||||
@staticmethod
|
||||
def get(**kwargs) -> UserModel:
|
||||
# Edit entry
|
||||
def update(self, user_id: int, **kwargs):
|
||||
with sqlite3.connect(PATH_DATABASE) as con:
|
||||
con.row_factory = dict_factory
|
||||
sql = f"SELECT * FROM {Userx.storage_name}"
|
||||
sql, parameters = update_format_where(sql, kwargs)
|
||||
|
||||
response = con.execute(sql, parameters).fetchone()
|
||||
|
||||
if response is not None:
|
||||
response = UserModel(**response)
|
||||
|
||||
return response
|
||||
|
||||
# Получение записей
|
||||
@staticmethod
|
||||
def gets(**kwargs) -> list[UserModel]:
|
||||
with sqlite3.connect(PATH_DATABASE) as con:
|
||||
con.row_factory = dict_factory
|
||||
sql = f"SELECT * FROM {Userx.storage_name}"
|
||||
sql, parameters = update_format_where(sql, kwargs)
|
||||
|
||||
response = con.execute(sql, parameters).fetchall()
|
||||
|
||||
if len(response) >= 1:
|
||||
response = [UserModel(**cache_object) for cache_object in response]
|
||||
|
||||
return response
|
||||
|
||||
# Получение всех записей
|
||||
@staticmethod
|
||||
def get_all() -> list[UserModel]:
|
||||
with sqlite3.connect(PATH_DATABASE) as con:
|
||||
con.row_factory = dict_factory
|
||||
sql = f"SELECT * FROM {Userx.storage_name}"
|
||||
|
||||
response = con.execute(sql).fetchall()
|
||||
|
||||
if len(response) >= 1:
|
||||
response = [UserModel(**cache_object) for cache_object in response]
|
||||
|
||||
return response
|
||||
|
||||
# Редактирование записи
|
||||
@staticmethod
|
||||
def update(user_id, **kwargs):
|
||||
with sqlite3.connect(PATH_DATABASE) as con:
|
||||
con.row_factory = dict_factory
|
||||
sql = f"UPDATE {Userx.storage_name} SET"
|
||||
sql = f"UPDATE {self.storage_name} SET"
|
||||
sql, parameters = update_format(sql, kwargs)
|
||||
parameters.append(user_id)
|
||||
|
||||
con.execute(sql + "WHERE user_id = ?", parameters)
|
||||
|
||||
# Удаление записи
|
||||
@staticmethod
|
||||
def delete(**kwargs):
|
||||
with sqlite3.connect(PATH_DATABASE) as con:
|
||||
con.row_factory = dict_factory
|
||||
sql = f"DELETE FROM {Userx.storage_name}"
|
||||
sql, parameters = update_format_where(sql, kwargs)
|
||||
|
||||
con.execute(sql, parameters)
|
||||
|
||||
# Очистка всех записей
|
||||
@staticmethod
|
||||
def clear():
|
||||
with sqlite3.connect(PATH_DATABASE) as con:
|
||||
con.row_factory = dict_factory
|
||||
sql = f"DELETE FROM {Userx.storage_name}"
|
||||
|
||||
con.execute(sql)
|
||||
|
||||
Reference in New Issue
Block a user