1
0
mirror of https://gitlab.com/Anson-Projects/projects.git synced 2025-09-14 09:35:04 +00:00
Files
Projects/ghost-upload

ghost-upload

This tool uploads posts from https://projects.ansonbiggs.com to https://notes.ansonbiggs.com.

What's new:

  • Uses the Ghost Admin API to check for existing posts by slug instead of probing the public site.
  • Optional update support: set UPDATE_EXISTING=true to update an existing post in-place (via PUT /ghost/api/v3/admin/posts/{id}?source=html).
  • Safer slug handling (trims trailing / and falls back to the last path segment).

Env vars:

  • admin_api_key: Ghost Admin API key in key_id:secret format.
  • kagi_api_key: Kagi Summarizer API key.
  • UPDATE_EXISTING (optional): if true/1, update posts that already exist in Ghost.

Notes:

  • Updates use optimistic concurrency by sending the current updated_at from Ghost. If someone edits a post in Ghost after we fetch it, the update will fail with a 409 and be reported in the console.
  • Summaries are always regenerated when creating or updating; if you want to avoid re-summarizing on updates, leave UPDATE_EXISTING unset.