Skip to main content

SeriesContextDto

Series context for template and condition evaluation.

This structure provides a unified interface for evaluating templates and conditions against series data. It aggregates data from various sources (series, metadata, external IDs, book count) into a single context object.

Template Usage

In Handlebars templates, fields are accessible via:

  • {{seriesId}} - Series UUID
  • {{bookCount}} - Number of books
  • {{metadata.title}} - Series title
  • {{metadata.genres}} - Genre array
  • {{externalIds.plugin:mangabaka.id}} - External ID from a source
  • {{customMetadata.myField}} - Custom metadata field

JSON Structure

{
"seriesId": "550e8400-e29b-41d4-a716-446655440000",
"bookCount": 5,
"metadata": {
"title": "One Piece",
"genres": ["Action", "Adventure"],
"tags": ["pirates"]
},
"externalIds": {
"plugin:mangabaka": { "id": "12345", "url": "..." }
},
"customMetadata": { "myField": "value" }
}
bookCountinteger<int64>required

Number of books in the series

Example: 5
customMetadataobject | nullnullable

Custom metadata fields (preserved as-is, no case transformation). Can contain any JSON structure defined by the user.

externalIds object

External IDs mapped by source name. Keys are source identifiers (e.g., "plugin:mangabaka", "comicinfo").

property name* ExternalIdContextDto

External ID context for template evaluation.

Represents an external ID from a metadata provider (plugin, comicinfo, etc.) in a simplified format suitable for template access.

hashstring | nullnullable

Metadata hash for change detection (if available)

idstringrequired

External ID value

Example: 12345
urlstring | nullnullable

External URL (if available)

Example: https://mangabaka.com/series/12345
metadata object

Series metadata

ageRatinginteger,null<int32>nullable

Age rating (e.g., 13, 16, 18)

Example: 13
ageRatingLockboolean

Whether age_rating is locked

alternateTitles object[]

Alternate titles (e.g., Japanese, Romaji, English)

  • Array [
  • labelstringrequired

    Label for this alternate title (e.g., "Japanese", "Romaji")

    Example: Japanese
    titlestringrequired

    The alternate title text

    Example: ワンピース
  • ]
  • authors object[]

    Structured author information

  • Array [
  • namestringrequired

    Author name

    Example: Oda Eiichiro
    rolestring | nullnullable

    Role (e.g., "author", "artist", "editor")

    Example: author
    sortNamestring | nullnullable

    Sort name (e.g., "Lastname, Firstname")

    Example: Oda, Eiichiro
  • ]
  • authorsJsonLockboolean

    Whether authors_json is locked

    coverLockboolean

    Whether cover is locked

    customMetadataLockboolean

    Whether custom_metadata is locked

    externalLinks object[]

    External links to other sites

  • Array [
  • externalIdstring | nullnullable

    External ID on the source (optional)

    Example: 123
    sourcestringrequired

    Source name (e.g., "mangadex", "myanimelist")

    Example: mangadex
    urlstringrequired

    URL to the external resource

    Example: https://mangadex.org/title/123
  • ]
  • externalRatings object[]

    External ratings from various sources

  • Array [
  • ratingnumber<double>required

    Rating value (normalized to 0-100)

    Example: 85.5
    sourcestringrequired

    Source name (e.g., "myanimelist", "anilist")

    Example: myanimelist
    votesinteger,null<int32>nullable

    Number of votes (optional)

    Example: 12345
  • ]
  • genresstring[]

    Genre names

    Example: ["Action","Adventure","Comedy"]
    genresLockboolean

    Whether genres are locked

    imprintstring | nullnullable

    Imprint (sub-publisher)

    Example: Jump Comics
    imprintLockboolean

    Whether imprint is locked

    languagestring | nullnullable

    Language code (BCP47 format)

    Example: ja
    languageLockboolean

    Whether language is locked

    publisherstring | nullnullable

    Publisher name

    Example: Shueisha
    publisherLockboolean

    Whether publisher is locked

    readingDirectionstring | nullnullable

    Reading direction (ltr, rtl, ttb, webtoon)

    Example: rtl
    readingDirectionLockboolean

    Whether reading_direction is locked

    statusstring | nullnullable

    Series status (ongoing, ended, hiatus, abandoned, unknown)

    Example: ongoing
    statusLockboolean

    Whether status is locked

    summarystring | nullnullable

    Series description/summary

    Example: Follow Monkey D. Luffy on his adventure...
    summaryLockboolean

    Whether summary is locked

    tagsstring[]

    Tag names

    Example: ["pirates","treasure","friendship"]
    tagsLockboolean

    Whether tags are locked

    titlestring | nullnullable

    Series title

    Example: One Piece
    titleLockboolean

    Whether title is locked

    titleSortstring | nullnullable

    Custom sort name

    Example: One Piece
    titleSortLockboolean

    Whether title_sort is locked

    totalBookCountinteger,null<int32>nullable

    Expected total book count

    Example: 110
    totalBookCountLockboolean

    Whether total_book_count is locked

    yearinteger,null<int32>nullable

    Publication year

    Example: 1997
    yearLockboolean

    Whether year is locked

    seriesIdstring,null<uuid>nullable

    Series UUID

    Example: 550e8400-e29b-41d4-a716-446655440000
    typestringrequired

    Type discriminator — always "series" for SeriesContextDto

    Example: series
    SeriesContextDto
    {
    "bookCount": 5,
    "customMetadata": "Unknown Type: object,null",
    "externalIds": {
    "plugin:mangabaka": {
    "id": "12345",
    "url": "https://mangabaka.com/series/12345"
    }
    },
    "metadata": {
    "ageRating": 13,
    "ageRatingLock": true,
    "alternateTitles": [
    {
    "label": "Japanese",
    "title": "ワンピース"
    }
    ],
    "authors": [
    {
    "name": "Oda Eiichiro",
    "role": "author",
    "sortName": "Oda, Eiichiro"
    }
    ],
    "authorsJsonLock": true,
    "coverLock": true,
    "customMetadataLock": true,
    "externalLinks": [
    {
    "externalId": "123",
    "source": "mangadex",
    "url": "https://mangadex.org/title/123"
    }
    ],
    "externalRatings": [
    {
    "rating": 85.5,
    "source": "myanimelist",
    "votes": 12345
    }
    ],
    "genres": [
    "Action",
    "Adventure",
    "Comedy"
    ],
    "genresLock": true,
    "imprint": "Jump Comics",
    "imprintLock": true,
    "language": "ja",
    "languageLock": true,
    "publisher": "Shueisha",
    "publisherLock": true,
    "readingDirection": "rtl",
    "readingDirectionLock": true,
    "status": "ongoing",
    "statusLock": true,
    "summary": "Follow Monkey D. Luffy on his adventure...",
    "summaryLock": true,
    "tags": [
    "pirates",
    "treasure",
    "friendship"
    ],
    "tagsLock": true,
    "title": "One Piece",
    "titleLock": true,
    "titleSort": "One Piece",
    "titleSortLock": true,
    "totalBookCount": 110,
    "totalBookCountLock": true,
    "year": 1997,
    "yearLock": true
    },
    "seriesId": "550e8400-e29b-41d4-a716-446655440000",
    "type": "series"
    }