Files
retoor 9fb4d65787 Member invites, gallery resync, content and operator docs
- Invite flow: admin issue/revoke on join requests, public single-use
  claim links (hash-only tokens, 7-day expiry, no state reveal), claim
  creates the Member account and marks the request accepted
- Gallery: admin status page plus resync endpoint; sync refreshes
  thumbnails whose content changed; tools/gallery contract and checker
- Docs: public content page, admin-only operator runbook, api.md
  invite/gallery sections, all routes in the live API docs, docs
  reachability gate test
- Screenshots cover the new pages; version 1.0.18
2026-10-06 02:56:08 +02:00

188 lines
4.2 KiB
Python

# retoor <retoor@molodetz.nl>
from molodetz.database.audit import count_audit, insert_audit, list_audit, prune_audit
from molodetz.database.backups import (
delete_backup_rows,
enqueue_backup,
get_backup,
list_backups,
pending_backups,
update_backup,
)
from molodetz.database.core import (
db,
generate_uid,
make_combined_slug,
now_iso,
parse_iso,
refresh_snapshot,
resolve_by_slug,
shard_path,
table_exists,
)
from molodetz.database.init_db import init_db
from molodetz.database.invites import (
claim_invite,
create_invite,
get_invite_by_token,
invite_is_live,
open_invite_for_join,
revoke_open_invites,
suggest_username,
)
from molodetz.database.joins import (
count_open_join_requests,
get_join_request,
insert_join_request,
list_join_requests,
update_join_request,
)
from molodetz.database.media import count_media, media_by_kind, upsert_media
from molodetz.database.notifications import insert_notification, list_notifications, mark_all_read, unread_count
from molodetz.database.pagination import build_pagination, paginate
from molodetz.database.posts import (
all_posts,
count_published,
get_post,
get_post_by_slug,
get_post_by_slug_tail,
insert_post,
post_counts_by_author,
published_posts,
update_post_row,
)
from molodetz.database.services_state import ensure_service_state, get_service_state, write_service_state
from molodetz.database.sessions import (
create_session,
end_all_sessions_for,
end_session,
get_session,
hard_delete_session,
prune_expired_sessions,
)
from molodetz.database.settings import (
all_settings,
bump_cache_version,
get_int_setting,
get_setting,
set_setting,
sync_local_cache,
)
from molodetz.database.soft_delete import (
count_deleted,
list_deleted,
purge,
purge_event,
restore,
restore_event,
soft_delete,
soft_delete_in,
)
from molodetz.database.users import (
admin_uids_ordered,
count_users,
create_user,
get_user,
get_user_by_api_key,
get_user_by_email,
get_user_by_username,
invalidate_admins_cache,
list_users,
public_people,
set_role,
update_user,
users_by_uids,
)
from molodetz.database.visits import daily_totals, flush_visits, top_paths
__all__ = [
"all_posts",
"all_settings",
"admin_uids_ordered",
"build_pagination",
"bump_cache_version",
"count_audit",
"count_deleted",
"count_media",
"count_open_join_requests",
"count_published",
"count_users",
"claim_invite",
"create_invite",
"create_session",
"create_user",
"daily_totals",
"db",
"delete_backup_rows",
"end_all_sessions_for",
"end_session",
"enqueue_backup",
"ensure_service_state",
"flush_visits",
"generate_uid",
"get_backup",
"get_int_setting",
"get_invite_by_token",
"get_join_request",
"get_post",
"get_post_by_slug",
"get_post_by_slug_tail",
"get_service_state",
"get_session",
"get_setting",
"get_user",
"get_user_by_api_key",
"get_user_by_email",
"get_user_by_username",
"hard_delete_session",
"init_db",
"insert_audit",
"insert_join_request",
"insert_notification",
"insert_post",
"invalidate_admins_cache",
"invite_is_live",
"list_audit",
"list_backups",
"list_deleted",
"list_join_requests",
"list_notifications",
"list_users",
"make_combined_slug",
"mark_all_read",
"media_by_kind",
"now_iso",
"open_invite_for_join",
"paginate",
"parse_iso",
"pending_backups",
"post_counts_by_author",
"prune_audit",
"prune_expired_sessions",
"public_people",
"published_posts",
"purge",
"purge_event",
"refresh_snapshot",
"resolve_by_slug",
"restore",
"restore_event",
"revoke_open_invites",
"set_role",
"set_setting",
"shard_path",
"soft_delete",
"soft_delete_in",
"suggest_username",
"sync_local_cache",
"table_exists",
"top_paths",
"unread_count",
"update_backup",
"update_join_request",
"update_post_row",
"update_user",
"upsert_media",
"users_by_uids",
"write_service_state",
]