cc / telebot /plugins /sql_helper /locks_sql.py
thenamk3's picture
Upload 241 files
44aada1 verified
Raw History Blame Contribute Delete
2.14 kB
from sqlalchemy import Boolean, Column, String
from telebot.plugins.sql_helper import SESSION, BASE
class Locks(BASE):
__tablename__ = "locks"
chat_id = Column(String(14), primary_key=True)
# Booleans are for "is this locked", _NOT_ "is this allowed"
bots = Column(Boolean, default=False)
commands = Column(Boolean, default=False)
email = Column(Boolean, default=False)
forward = Column(Boolean, default=False)
url = Column(Boolean, default=False)
def __init__(self, chat_id):
self.chat_id = str(chat_id) # ensure string
self.bots = False
self.commands = False
self.email = False
self.forward = False
self.url = False
Locks.__table__.create(checkfirst=True)
def init_locks(chat_id, reset=False):
curr_restr = SESSION.query(Locks).get(str(chat_id))
if reset:
SESSION.delete(curr_restr)
SESSION.flush()
restr = Locks(str(chat_id))
SESSION.add(restr)
SESSION.commit()
return restr
def update_lock(chat_id, lock_type, locked):
curr_perm = SESSION.query(Locks).get(str(chat_id))
if not curr_perm:
curr_perm = init_locks(chat_id)
if lock_type == "bots":
curr_perm.bots = locked
elif lock_type == "commands":
curr_perm.commands = locked
elif lock_type == "email":
curr_perm.email = locked
elif lock_type == "forward":
curr_perm.forward = locked
elif lock_type == "url":
curr_perm.url = locked
SESSION.add(curr_perm)
SESSION.commit()
def is_locked(chat_id, lock_type):
curr_perm = SESSION.query(Locks).get(str(chat_id))
SESSION.close()
if not curr_perm:
return False
elif lock_type == "bots":
return curr_perm.bots
elif lock_type == "commands":
return curr_perm.commands
elif lock_type == "email":
return curr_perm.email
elif lock_type == "forward":
return curr_perm.forward
elif lock_type == "url":
return curr_perm.url
def get_locks(chat_id):
try:
return SESSION.query(Locks).get(str(chat_id))
finally:
SESSION.close()