from tinyweb_forum.db import ForumDB from tinyweb_forum.handlers import ForumHandlers from tinyweb_forum.sync import ForumSync FORUM_ENABLED_KEY = "forum_enabled" class ForumPlugin: def __init__(self, data_dir, identity, reticulum, site_name="me"): self.fdb = ForumDB(data_dir) self.handlers = ForumHandlers( self.fdb, None, identity, reticulum, site_name=site_name ) self.sync = ForumSync(self.fdb, identity, reticulum, lambda: self.handlers) self.handlers.sync = self.sync self.identity = identity self.reticulum = reticulum self._started = False def is_enabled(self): return self.fdb.get_setting(FORUM_ENABLED_KEY, "0") == "1" def enable(self): self.fdb.set_setting(FORUM_ENABLED_KEY, "1") if not self._started: self.sync.start() self._started = True def disable(self): self.fdb.set_setting(FORUM_ENABLED_KEY, "0") # Keep sync running so we still receive content — disable just hides UI def handle(self, method, path, query, body, cookies=None): return self.handlers.handle(method, path, query, body, cookies)