Movie import v1

This commit is contained in:
2026-03-17 12:36:12 +01:00
parent e750736a1c
commit 211418c6c4
10 changed files with 312 additions and 9 deletions

View File

@@ -189,6 +189,10 @@ Key settings:
Maximum directory depth for `.pagelink` discovery under each configured root.
`0` means only the root directory itself is checked.
- **omdb_apikey**
OMDb API key used for the movie import toolbar button. The key is sent to the
browser for client-side API requests and will be visible in developer tools.
### Template style settings
The `{{open>...}}` links and directory “open” links use a dedicated color
@@ -254,7 +258,43 @@ Supported input examples include:
- `2026-01-30 13:45`
- `2026-01-30T13:45:00`
### 0.2) Page Link: link a page to a folder
### 0.2) Editor toolbar: Movie Import
The plugin adds a toolbar button for importing movie metadata from the [OMDb API](https://www.omdbapi.com/).
**Setup:**
1. Obtain an OMDb API key from https://www.omdbapi.com/apikey.aspx
2. Enter the key in **Admin → luxtools** under "Movie Import (OMDb)".
**Usage:**
1. Open a page for editing.
2. Click the movie icon in the toolbar.
3. A prompt appears pre-filled with the first heading from the page (e.g. `Project Hail Mary (2026)`).
4. Edit the title if needed and confirm.
5. The plugin queries OMDb and inserts a movie metadata block into the editor.
**Inserted markup example:**
```
<!-- BEGIN MOVIE -->
{{image>https://...poster.jpg}}
^ Title | Project Hail Mary |
^ Year | 2026 |
^ Genre | Adventure, Drama, Sci-Fi |
^ Director | Phil Lord, Christopher Miller |
^ Actors | Ryan Gosling |
^ Plot | A lone astronaut must save Earth... |
<!-- END MOVIE -->
```
**Re-import behavior:** Running the import again replaces the existing movie block
(delimited by `<!-- BEGIN MOVIE -->` / `<!-- END MOVIE -->` markers) instead of
appending a duplicate.
**Security note:** The OMDb API key is passed to the browser and used for
client-side requests. It is visible in browser developer tools and network
traffic. This is an intentional tradeoff for this single-user LAN deployment.
### 0.3) Page Link: link a page to a folder
Page linking uses a page-scoped UUID stored in page metadata. This UUID is used
to link the page to a folder that contains a `.pagelink` file with the same UUID.
@@ -282,7 +322,7 @@ for example:
{{directory>blobs/&recursive=1}}
```
### 0.3) Calendar widget
### 0.4) Calendar widget
Render a basic monthly calendar that links each day to canonical chronological pages:
@@ -311,7 +351,7 @@ Notes:
- Indicator placement in small mode is configured per slot via the `Display` setting.
- Slot colors are reused for both indicators and inline event accents.
### 0.4) Virtual chronological day pages
### 0.5) Virtual chronological day pages
When a canonical day page (for example `chronological:2026:02:13`) does not yet
exist, luxtools renders a virtual page in normal show mode instead of the
@@ -326,7 +366,7 @@ The virtual page includes:
The page is only created once you edit and save actual content.
### 0.5) Cache invalidation
### 0.6) Cache invalidation
luxtools provides an admin-only **Invalidate Cache** action in the page tools menu.
@@ -338,7 +378,7 @@ luxtools provides an admin-only **Invalidate Cache** action in the page tools me
permission errors).
- Also useful when actively adding external photos to the current day page.
### 0.6) Multi-calendar slot system
### 0.7) Multi-calendar slot system
The plugin supports 4 calendar slots, each with independent configuration for
a local `.ics` file, CalDAV URL, authentication, and display color.
@@ -352,7 +392,7 @@ a local `.ics` file, CalDAV URL, authentication, and display color.
Calendar data is always read from local `.ics` files for rendering. If a remote
CalDAV source is configured, use the sync feature to populate the local file.
### 0.7) Maintenance task completion
### 0.8) Maintenance task completion
Maintenance tasks shown on day pages include a "Complete" button. Clicking it:
@@ -368,7 +408,7 @@ Write-back rules:
- Recurring events: Completion writes an occurrence override/exception to preserve
per-occurrence state rather than modifying the master event.
### 0.8) Event popup
### 0.9) Event popup
Clicking any event on a day page opens a popup overlay showing:
- Title
@@ -379,7 +419,7 @@ Clicking any event on a day page opens a popup overlay showing:
Close the popup by clicking outside it or pressing Escape.
### 0.9) Maintenance task list syntax
### 0.10) Maintenance task list syntax
Embed a list of open maintenance tasks anywhere on a wiki page:
@@ -401,7 +441,7 @@ window are hidden. The default is `30`.
Each task shows its date, optional time, summary, and a "Complete" button.
### 0.10) CalDAV sync
### 0.11) CalDAV sync
If a slot has a CalDAV URL configured, the admin panel provides a sync button.
Triggering sync downloads all calendar objects from the remote CalDAV collection