mirror of
https://github.com/aclist/dztui.git
synced 2026-10-25 12:12:31 +01:00
46 lines
1.1 KiB
Python
46 lines
1.1 KiB
Python
import json
|
|
import logging
|
|
|
|
from typing import TYPE_CHECKING
|
|
|
|
from dzgui.const.constants import APP_NAME
|
|
from dzgui.util._json import read_json
|
|
|
|
import gi
|
|
|
|
gi.require_version("Gtk", "3.0")
|
|
|
|
if TYPE_CHECKING:
|
|
from dzgui.controllers.mc import Controller
|
|
from pathlib import Path
|
|
|
|
logger = logging.getLogger(APP_NAME)
|
|
|
|
|
|
class NoteManager:
|
|
def __init__(self, controller: "Controller", path: "Path") -> None:
|
|
self.notes_path = path
|
|
try:
|
|
self.cache: dict[str, str] = read_json(self.notes_path)
|
|
except Exception:
|
|
self.cache = {}
|
|
|
|
def add_note(self, server: str, note: str) -> None:
|
|
self.cache[server] = note
|
|
self.write_file()
|
|
|
|
def delete_note(self, server: str) -> None:
|
|
del self.cache[server]
|
|
self.write_file()
|
|
|
|
def get_note(self, server: str) -> str:
|
|
try:
|
|
text = self.cache[server]
|
|
return text
|
|
except Exception:
|
|
return ""
|
|
|
|
def write_file(self) -> None:
|
|
j = json.dumps(self.cache, indent=2)
|
|
self.notes_path.write_text(j)
|