mirror of
https://github.com/djimboy/djimbo_template_aio3.git
synced 2026-07-25 09:44:29 +00:00
44 lines
1.2 KiB
Python
44 lines
1.2 KiB
Python
# - *- coding: utf- 8 - *-
|
|
import sqlite3
|
|
|
|
from pydantic import BaseModel
|
|
|
|
from tgbot.data.config import PATH_DATABASE
|
|
from tgbot.database.adb_helper import Databasex, dict_factory, update_format
|
|
|
|
|
|
# Table model
|
|
class ModelBase(BaseModel):
|
|
status_work: str # Status bot work
|
|
|
|
class Config:
|
|
json_schema_extra = {
|
|
'storage_name': 'storage_settings'
|
|
}
|
|
|
|
|
|
# Settings
|
|
class Settingsx(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 = True
|
|
|
|
# Get entry
|
|
def get(self) -> ModelBase:
|
|
with sqlite3.connect(PATH_DATABASE) as con:
|
|
con.row_factory = dict_factory
|
|
sql = f"SELECT * FROM {self.storage_name}"
|
|
|
|
return ModelBase(**con.execute(sql).fetchone())
|
|
|
|
# Edit entry
|
|
def update(self, **kwargs):
|
|
with sqlite3.connect(PATH_DATABASE) as con:
|
|
con.row_factory = dict_factory
|
|
sql = f"UPDATE {self.storage_name} SET"
|
|
sql, parameters = update_format(sql, kwargs)
|
|
|
|
con.execute(sql, parameters)
|