forked from platypush/platypush
72 lines
1.3 KiB
Python
72 lines
1.3 KiB
Python
from marshmallow import fields
|
|
from marshmallow.schema import Schema
|
|
|
|
|
|
class MediaCollectionSchema(Schema):
|
|
id = fields.String(
|
|
metadata=dict(
|
|
description='Collection ID',
|
|
)
|
|
)
|
|
|
|
name = fields.String(
|
|
required=True,
|
|
metadata=dict(
|
|
description='Collection name',
|
|
)
|
|
)
|
|
|
|
type = fields.String(
|
|
metadata=dict(
|
|
description='Collection type (movies, music, series etc.)',
|
|
)
|
|
)
|
|
|
|
image = fields.URL(
|
|
metadata=dict(
|
|
description='Collection image (URL)',
|
|
)
|
|
)
|
|
|
|
|
|
class MediaArtistSchema(Schema):
|
|
id = fields.String(
|
|
metadata=dict(
|
|
description='Artist ID',
|
|
)
|
|
)
|
|
|
|
name = fields.String(
|
|
required=True,
|
|
metadata=dict(
|
|
description='Artist name',
|
|
)
|
|
)
|
|
|
|
image = fields.URL(
|
|
metadata=dict(
|
|
description='Artist main image (URL)',
|
|
)
|
|
)
|
|
|
|
|
|
class MediaItemSchema(Schema):
|
|
id = fields.String()
|
|
title = fields.String(required=True)
|
|
url = fields.URL()
|
|
file = fields.String()
|
|
image = fields.URL()
|
|
|
|
|
|
class MediaVideoSchema(MediaItemSchema):
|
|
year = fields.Integer()
|
|
has_subtitles = fields.Boolean()
|
|
|
|
|
|
class MediaMovieSchema(MediaItemSchema):
|
|
pass
|
|
|
|
|
|
class MediaEpisodeSchema(MediaItemSchema):
|
|
pass
|
|
|