Share extension: Create-podcast toggle + auto-generate for tagged bookmarks #3

Closed
opened 2026-07-01 16:07:28 +00:00 by admin · 0 comments
Owner

Summary

Add a Create podcast toggle to the share-extension save card. When on, saving the bookmark also kicks off podcast generation. Additionally, support a rule where bookmarks with certain tags auto-generate a podcast without needing the toggle each time.

Motivation

I often know at save-time that I'll want to listen to something later. Being able to flip a toggle (or tag it) and have the podcast ready by the time I open the app closes the loop.

Behavior

Two layers:

  1. Per-save toggle — a "Create podcast" checkbox/toggle on the save card (alongside "Read later"). On save, if enabled, enqueue a podcast generation for that URL.
  2. Tag rule (auto) — a configured set of tags (e.g. listen, podcast) that automatically trigger generation for any bookmark saved with one of them, no toggle needed.

Current state of the code

  • The save card is ShareExtension/ShareView.swift. It already has a Toggle("Read later", ...) (~line 152) — the new toggle sits right next to it. Tags are parsed via parsedTags.
  • commit() (~line 272) writes the bookmark through LinkdingAPI. After a successful create/update, if the toggle is on (or parsedTags intersects the configured auto-tags), enqueue generation.
  • The extension can't run a long generation itself — it should hand off the request (e.g. write to the shared App Group so the main app / background service picks it up, or fire the generation request directly if the backend accepts fire-and-forget). This is where it ties into the background generation feature — the extension enqueues, the app's background service does the work.
  • Auto-tag rules need a small settings surface in the main app to configure which tags trigger generation.

Dependencies

  • Best built on top of the background-generation feature (the extension enqueues; the app generates in the background). The finished episode lands in the Unplayed queue.
## Summary Add a **Create podcast** toggle to the share-extension save card. When on, saving the bookmark also kicks off podcast generation. Additionally, support a rule where **bookmarks with certain tags auto-generate a podcast** without needing the toggle each time. ## Motivation I often know at save-time that I'll want to listen to something later. Being able to flip a toggle (or tag it) and have the podcast ready by the time I open the app closes the loop. ## Behavior Two layers: 1. **Per-save toggle** — a "Create podcast" checkbox/toggle on the save card (alongside "Read later"). On save, if enabled, enqueue a podcast generation for that URL. 2. **Tag rule (auto)** — a configured set of tags (e.g. `listen`, `podcast`) that automatically trigger generation for any bookmark saved with one of them, no toggle needed. ## Current state of the code - The save card is `ShareExtension/ShareView.swift`. It already has a `Toggle("Read later", ...)` (~line 152) — the new toggle sits right next to it. Tags are parsed via `parsedTags`. - `commit()` (~line 272) writes the bookmark through `LinkdingAPI`. After a successful create/update, if the toggle is on (or `parsedTags` intersects the configured auto-tags), enqueue generation. - The extension can't run a long generation itself — it should hand off the request (e.g. write to the shared App Group so the main app / background service picks it up, or fire the generation request directly if the backend accepts fire-and-forget). This is where it ties into the **background generation** feature — the extension enqueues, the app's background service does the work. - Auto-tag rules need a small settings surface in the main app to configure which tags trigger generation. ## Dependencies - Best built on top of the background-generation feature (the extension enqueues; the app generates in the background). The finished episode lands in the Unplayed queue.
admin closed this issue 2026-07-01 18:18:57 +00:00
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: admin/linkding-ios#3