import sqlite3 from typing import List class DelojzaDB: def __init__(self, db_path): self.db_path = db_path self.db = None def initialize(self) -> None: if self.db is None: self.db = sqlite3.connect(self.db_path) def get_protected_tags(self) -> List[str]: results = self.db.execute("SELECT tag FROM tags WHERE protected == 1") return [res[0] for res in results.fetchall()] def get_protected_chats(self) -> List[str]: results = self.db.execute("SELECT id FROM chats WHERE protected == 1") return [res[0] for res in results.fetchall()] def get_chat(self, id): return self.db.execute("SELECT id, protected FROM chats WHERE id == ?", (id,)).fetchone() def set_chat_protected(self, id, protected): chat_in_db = self.get_chat(id) if chat_in_db: self.db.execute("UPDATE chats SET protected = ? WHERE id = ?", (protected, id)) else: self.db.execute("INSERT INTO chats (id, protected) VALUES (?, ?)", (id, protected)) self.db.commit() def get_tag(self, tag): return self.db.execute("SELECT id, tag, protected FROM tags WHERE tag == ?", (tag,)).fetchone() def set_tag_protected(self, tag, protected): tag_in_db = self.get_tag(tag) if tag_in_db: self.db.execute("UPDATE tags SET protected = ? WHERE tag = ?", (protected, tag)) else: self.db.execute("INSERT INTO tags (tag, protected) VALUES (?, ?)", (tag, protected)) self.db.commit()