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}