43 lines
1.5 KiB
Python
43 lines
1.5 KiB
Python
|
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()
|