initial: decentralized link-sharing forum for TinyWeb
This commit is contained in:
commit
a8aabb3427
7 changed files with 1088 additions and 0 deletions
34
tinyweb_forum/__init__.py
Normal file
34
tinyweb_forum/__init__.py
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
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)
|
||||
Loading…
Add table
Add a link
Reference in a new issue