diff --git a/handlers.py b/handlers.py
index 477ad69..ab6864f 100644
--- a/handlers.py
+++ b/handlers.py
@@ -364,7 +364,8 @@ def handle_add_form(msg="", action_type="index"):
f'{_csrf_field()}'
f'
'
f'
'
- f'
'
+ f' '
+ f'tag: private to exclude from sharing
'
f''
f""
f"
{msg}
"
@@ -426,7 +427,7 @@ def handle_add_submit(body):
f' '
f'
'
f' '
- f'
'
+ f'
'
f''
f""
f'back'
@@ -444,8 +445,8 @@ def handle_add_manual_submit(body):
if not url:
return handle_add_form("URL is required.")
- if not manual_title or not manual_desc:
- return handle_add_form("Title and description are required for manual entry.")
+ if not manual_title:
+ return handle_add_form("Title is required for manual entry.")
db = get_db()
try:
@@ -603,7 +604,8 @@ def handle_edit_form(page_id, msg=""):
f' '
f'
'
f' '
- f'
'
+ f' '
+ f'(tag: private to keep private)
'
f''
f""
f"
{msg}
"
@@ -768,7 +770,8 @@ def handle_style_form(msg=""):
f'
'
f"
sharing
"
f'
"
+ f" share your site list publicly at /api/sites "
+ f"Note: pages tagged: private will not be shared.
"
f"
mesh network
"
f"
Connect to a Reticulum transport node to reach other peers.
"
f"Default: reticulum.derickphan.com:4242 "
@@ -974,6 +977,8 @@ def handle_api_sites(query=None):
sites = []
for r in rows:
tags = _get_page_tags(r["id"], db)
+ if "private" in tags:
+ continue # Skip pages tagged private from sharing
sites.append({
"url": r["url"], "title": r["title"], "note": r["note"],
"tags": tags, "last_modified": r["last_modified"] or "",
@@ -981,7 +986,10 @@ def handle_api_sites(query=None):
# Include list of all current URLs so subscriber can detect deletions (limited)
all_urls = None
if not since:
- all_urls = [r["url"] for r in db.execute("SELECT url FROM pages LIMIT ?", (MAX_API_SITES,)).fetchall()]
+ all_url_rows = db.execute(
+ "SELECT p.id, p.url FROM pages ORDER BY id DESC LIMIT ?", (MAX_API_SITES,)
+ ).fetchall()
+ all_urls = [r["url"] for r in all_url_rows if "private" not in _get_page_tags(r["id"], db)]
finally:
return_db(db)
data = {"name": get_site_name(), "sites": sites}