aboutsummaryrefslogtreecommitdiff
path: root/doc/import
diff options
context:
space:
mode:
Diffstat (limited to 'doc/import')
-rw-r--r--doc/import/README.md20
-rw-r--r--doc/import/providers.md71
2 files changed, 91 insertions, 0 deletions
diff --git a/doc/import/README.md b/doc/import/README.md
new file mode 100644
index 0000000..d4e014c
--- /dev/null
+++ b/doc/import/README.md
@@ -0,0 +1,20 @@
+# Jellything's Import System
+
+In normal operation, jellything serves all metadata from only the database.
+
+Whenever you want to change this metadata, you initiate a Reimport from the
+admin panel. This will follow the import instructions in _library\_path_ and
+regenerate that part of the database from scratch.
+
+## The Import Procedure
+
+_library\_path_ is scanned recursively to locate all files that match `*.yaml`
+(YAML import options) or `*.jelly` (JSON import options). Each of these files
+contains a key `id` that specifies which node is primarily affected and an array
+`sources` which lists metadata providers. When all these files have been
+evaluated, each node's children are traversed recursively to generate their
+paths. The imported libraries structure is a directed acyclic graph (DAG) -
+nodes can have multiple parents.
+
+The Sources are applied in-order to that node with decreasing priority. This
+process merges all aquired metadata into single nodes.
diff --git a/doc/import/providers.md b/doc/import/providers.md
new file mode 100644
index 0000000..9b438c6
--- /dev/null
+++ b/doc/import/providers.md
@@ -0,0 +1,71 @@
+# Metadata Providers
+
+## `override`
+
+Allows for manual hardcoded metadata.
+
+Special to this option are the `poster` and `backdrop` properties in the
+`private` section. These are reference images local to _library\_path_ and
+directly set the counterparts in `public`.
+
+### Example
+
+```yaml
+id: library
+sources:
+ - !override
+ public:
+ kind: !collection
+ title: "My Library"
+ children:
+ - movies
+ - stuff
+ private:
+ poster: library.png
+```
+
+## `auto_children`
+
+Scans the directory of the file currently processed for `*.yaml` and `.jelly`,
+parses their ID and adds them as `children`.
+
+## `media`
+
+This references a media file on disk and links it to this node. Additionally it
+extracts matroska metadata aswell.
+
+> [!NOTE]
+> If `path` is a directory, then these options are applied recursively
+> all files inside, automatically creating new nodes based on inferred IDs and
+> linking them up.
+
+### Example
+
+```yaml
+id: decay-2012
+sources:
+- !media
+ path: /movies/decay.webm
+ ignore_metadata: true
+ ignore_attachments: false
+ ignore_chapters: false
+```
+
+## `trakt`
+
+The recommended provider for any movie, show or season. It automatically queries
+other linked APIs.
+
+### Example
+
+```yaml
+id: decay-2012
+sources:
+- !trakt
+ kind: movie
+ id: 98052
+```
+
+## `tmdb`
+
+Just like `trakt` but uses only TMDB instead.