FMN_bot/src/fmn_states_db.py

42 lines
1.2 KiB
Python
Raw Normal View History

2022-08-31 17:46:05 +03:00
import sqlite3
2022-09-07 02:55:12 +03:00
from loguru import logger
2022-08-31 17:46:05 +03:00
conn = sqlite3.connect("fmn_states.sqlite", check_same_thread=False)
c = conn.cursor()
c.execute(
'''CREATE TABLE IF NOT EXISTS states(key VARCHAR (500) UNIQUE DEFAULT NULL, value VARCHAR (500) UNIQUE DEFAULT NULL)''')
conn.commit()
def add_state(key, value):
'''Создание стейта, если существует - будет заменен'''
2022-09-01 02:07:41 +03:00
logger.debug(f'Adding {key}: {value}')
2022-08-31 17:46:05 +03:00
c.execute("INSERT OR REPLACE INTO states(key, value) VALUES (?, ?)", (key, value))
conn.commit()
logger.warning(f'Добавлен стейт {key}: {value}')
def get_state(key):
'''Получение стейта по ключу'''
2022-09-07 02:55:12 +03:00
logger.trace(f'Запрошен стейт {key}')
2022-08-31 17:46:05 +03:00
value = c.execute("SELECT value FROM states WHERE key = (?)", (key,)).fetchone()
if value:
return value[0]
def remove_state(key):
'''Удалить стейт по ключу'''
c.execute("DELETE FROM states WHERE key = (?)", (key,))
conn.commit()
logger.warning(f'Удален стейт {key}')
2022-08-31 18:27:57 +03:00
def clear_all_states():
c.execute("DELETE FROM states")
conn.commit()
logger.warning(f'Все стейты удалены')