feat: better tokens

This commit is contained in:
2026-04-17 00:48:44 +02:00
parent b103890009
commit 1f1f142446
12 changed files with 137 additions and 38 deletions
+20 -3
View File
@@ -8,6 +8,9 @@ if typing.TYPE_CHECKING:
class Registry:
HOST_FILE = ".host"
TOKEN_FILE = ".token" # noqa: S105
def __init__(self, params: params.Parameters) -> None:
self.logger = logging.getLogger(self.__class__.__name__)
self.pages: dict[str, page.Page] = {}
@@ -25,19 +28,33 @@ class Registry:
self.pages[path] = page.Page(
path,
self.data_dir.has_index(path),
self.data_dir.get_host(path),
self.data_dir.get_file(path, self.HOST_FILE),
self.data_dir.get_file(path, self.TOKEN_FILE),
)
self.logger.info("Updated %s", self.pages[path])
def set_host(self, path: str, host: str) -> None:
self.data_dir.set_host(path, host)
self.pages[path].host = host
if self.pages[path].host != host:
self.data_dir.set_file(path, self.HOST_FILE, host)
self.pages[path].host = host
self.logger.debug("Updated %s", self.pages[path])
def set_token_hash(self, path: str, token_hash: str) -> None:
if self.pages[path].token_hash != token_hash:
self.data_dir.set_file(path, self.TOKEN_FILE, token_hash)
self.pages[path].token_hash = token_hash
self.logger.debug("Updated %s", self.pages[path])
def remove(self, path: str) -> None:
page = self.pages[path]
del self.pages[path]
self.logger.info("Removed %s", page)
def get_from_path(self, path: str) -> page.Page | None:
if path in self.pages:
return self.pages[path]
return None
def get_from_host(self, host: str) -> page.Page | None:
for p in self.pages.values():
if p.host == host: