import threading from sqlalchemy import Column, String from Database.sql import BASE, SESSION class KukiChats(BASE): __tablename__ = "kuki_chats" chat_id = Column(String(14), primary_key=True) def __init__(self, chat_id): self.chat_id = chat_id KukiChats.__table__.create(checkfirst=True) INSERTION_LOCK = threading.RLock() def is_kuki(chat_id): try: chat = SESSION.query(KukiChats).get(str(chat_id)) return bool(chat) finally: SESSION.close() def set_kuki(chat_id): with INSERTION_LOCK: kukichat = SESSION.query(KukiChats).get(str(chat_id)) if not kukichat: kukichat = KukiChats(str(chat_id)) SESSION.add(kukichat) SESSION.commit() def rem_kuki(chat_id): with INSERTION_LOCK: kukichat = SESSION.query(KukiChats).get(str(chat_id)) if kukichat: SESSION.delete(kukichat) SESSION.commit()