Accept ZIP batches to preserve every photo shared by Shortcuts
This commit is contained in:
+18
-10
@@ -131,21 +131,28 @@ Create **Publish to blog**:
|
||||
1. Enable **Show in Share Sheet**, accepting **Images**.
|
||||
2. **Ask for Input** (Text): “Caption (optional)”.
|
||||
3. Add another **Ask for Input** (Text): “Highlight name (optional)”.
|
||||
4. **Get Contents of URL**: `https://theread.me/api/photos`.
|
||||
4. **Make Archive** from **Shortcut Input**, format **ZIP**. Keep this output in
|
||||
a variable named **Photo Archive**. This packages every selected image into
|
||||
one upload; using an image list directly in a File form field can send only
|
||||
the first image on some Shortcuts versions.
|
||||
5. **Get Contents of URL**: `https://theread.me/api/photos`.
|
||||
- Method: **POST**.
|
||||
- Header: `Authorization` = `Bearer YOUR_TOKEN`.
|
||||
- Request Body: **Form**.
|
||||
- `photos`: type **File**, value **Shortcut Input** (the selected images).
|
||||
- `archive`: type **File**, value **Photo Archive**. Remove the old `photos` field.
|
||||
- `caption`: type **Text**, value the caption response.
|
||||
- `highlight`: type **Text**, value the highlight-name response. Select each
|
||||
prompt's specific output variable so the caption and highlight stay separate.
|
||||
- Do not set Content-Type; Shortcuts supplies the multipart boundary.
|
||||
5. Show “Uploaded; publishing” on success. Optionally poll the returned `status_url`
|
||||
6. Show the actual response and check its `count` against the number of selected
|
||||
images. Only show “Uploaded; publishing” when there is no `error`. Optionally poll the returned `status_url`
|
||||
with the same header. `pushed` means “GitHub Actions is building/deploying”;
|
||||
only `published` means the deployed site's receipt contains this album.
|
||||
|
||||
Multi-photo albums require repeated `photos` parts in one request. Verify that
|
||||
file-list behavior on the target iPhone, starting with one photo and then two.
|
||||
The ZIP route accepts 1–20 images in archive-entry order and keeps them as one
|
||||
album. The first image in that order is the highlight target. Metadata sidecars
|
||||
under `__MACOSX/` and `.DS_Store` are ignored. Ordinary API clients can also send
|
||||
repeated `photos` parts; send either `archive` or `photos`, never both.
|
||||
Select still photos; videos/Live Photo video components aren't supported. Dates
|
||||
are upload time in UTC; captions are plain text. A caption is optional.
|
||||
An optional highlight name (up to 200 characters) adds one link to **Highlights**,
|
||||
@@ -181,9 +188,10 @@ Create **Publish snippet**:
|
||||
- Header `Authorization`: `Bearer YOUR_TOKEN` (same token as photos).
|
||||
- `text`: **Text**, the combined shared text.
|
||||
- `caption`: **Text**, the optional note.
|
||||
- `photos`: **File**, **Snippet Images**, when sharing images. For text-only
|
||||
requests, omit this field. Use an **If** on whether there are images to choose
|
||||
between the form with `photos` and the text-only form.
|
||||
- For images, **Make Archive** (ZIP) from **Snippet Images** first, and send its
|
||||
output as `archive`, type **File**. For text-only requests, omit this field.
|
||||
Use an **If** on whether there are images to choose between the form with
|
||||
`archive` and the text-only form.
|
||||
- Delete any blank header rows. Do not manually set `Content-Type`.
|
||||
6. **Show Result** using the actual response. A response with `error` means the
|
||||
upload failed; don't show a fixed success message. `queued` means accepted;
|
||||
@@ -191,10 +199,10 @@ Create **Publish snippet**:
|
||||
same authorization header; `published` confirms deployment.
|
||||
|
||||
For the simplest initial shortcut, accept just Text and URLs and omit the image
|
||||
branch and `photos` field; add the image branch when that works on your phone.
|
||||
branch and `archive` field; add the image branch when that works on your phone.
|
||||
|
||||
`POST /api/snippets` accepts up to 20,000 characters of `text`, an optional
|
||||
4,000-character `caption`, and up to 20 images in repeated `photos` parts, within
|
||||
4,000-character `caption`, and up to 20 images in a ZIP `archive` (or repeated `photos` parts), within
|
||||
the existing 100 MiB request limit. At least text or an image is required.
|
||||
It returns `id`, `count` (image count), `url`, `status_url`, and `status`.
|
||||
`GET /api/snippets/<id>` checks publication, and
|
||||
|
||||
Reference in New Issue
Block a user