diff options
Diffstat (limited to 'doc/import')
-rw-r--r-- | doc/import/README.md | 20 | ||||
-rw-r--r-- | doc/import/providers.md | 71 |
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. |