forked from platypush/platypush
73 lines
1.3 KiB
Python
73 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
|
||
|
|