class FilesystemInputSchema(Schema): priority = fields.Integer(default=10) db = RelatedPluginField(plugin_type=DatabasePlugin, required=True) metadata_parsers = fields.List( RelatedPluginField(plugin_type=MetadataParserPlugin), many=True, default=list) paths = fields.Nested(PathSchema, many=True, default=list) notifier = RelatedPluginField(plugin_type=NotifierPlugin)
class TorrentSearcherSchema(URLSearcherSchema): bittorrent_client = RelatedPluginField( plugin_type=BittorrentClientPlugin, required=True, ui_schema={"ui:title": "Torrent client"}, ) daily_download_count_cap = fields.Integer( default=12, ui_schema={"ui:title": "Daily download cap"}) magnet_resolver = RelatedPluginField( plugin_type=MagnetResolverPlugin, required=False, ui_schema={"ui:title": "Resolve magnet links"}, )
class ListingLevelSchema(Schema): depth = fields.Integer(required=True) listing_depth = fields.Integer(required=True) metadata_handlers = fields.List( RelatedPluginField(plugin_type=MetadataHandlerPlugin), many=True, default=list ) indexer = RelatedPluginField(plugin_type=IndexerPlugin, required=False) content_type = fields.String( enum=settings.TRIDENTSTREAM_CONTENT_TYPES, enum_names=settings.TRIDENTSTREAM_CONTENT_TYPES_NAMES, default="", ) tags = fields.List( RelatedPluginField(plugin_type=TagPlugin), many=True, default=list ) background_recheck = fields.Boolean(default=False) default_ordering = fields.String(default="")
class ListingSchema(Schema): name = fields.String(required=True) display_name = fields.String(default="", ui_schema={"ui:title": "Name"}) levels = fields.Nested(ListingLevelSchema, many=True, default=list) histories = fields.List( RelatedPluginField(plugin_type=HistoryPlugin), many=True, default=list ) rebuild_automatically = fields.Boolean(default=True)
class TagSchema(Schema): tag_metadata = RelatedPluginField(plugin_type=MetadataHandlerPlugin, traits=["tag"])
class WebinterfaceSchema(Schema): mount_at_root = fields.Boolean() config = RelatedPluginField(plugin_type=ConfigPlugin)
class SectionInputSchema(Schema): path = fields.String(default="") preference = fields.Integer(default=10) input = RelatedPluginField(plugin_type=InputPlugin, required=True)
class ImgCachePluginSchema(Schema): image_server = RelatedPluginField(plugin_type=ServicePlugin, traits=["image_cache"])
class ConfigServiceSchema(Schema): # Default configs config = RelatedPluginField(plugin_type=ConfigPlugin, required=True)
class MetadataSchema(Schema): image_cache = RelatedPluginField(plugin_type=ImageCachePlugin) metadata_server = RelatedPluginField( plugin_type=ServicePlugin, traits=["metadata_server"] )
class RemoteFilesystemInputSchema(Schema): input = RelatedPluginField(plugin_type=InputPlugin, required=True)
class BaseSchema(Schema): display_name = fields.String( default="", description="Display Name", ui_schema={"ui:title": "Name"} ) player_service = RelatedPluginField(plugin_type=ServicePlugin, traits=["player"])
class RemoteSearcherServiceSchema(Schema): searchers = fields.Nested(RemoteSearcherSchema, many=True) availability = RelatedPluginField(plugin_type=MetadataHandlerPlugin, traits=["availability"])
class RemoteSearcherSchema(Schema): searcher = RelatedPluginField(plugin_type=SearcherPlugin)
class WAMPSchema(Schema): config = RelatedPluginField(plugin_type=ConfigPlugin)
class MultiNotifierSchema(Schema): notifiers = fields.List(RelatedPluginField(plugin_type=NotifierPlugin), many=True, default=list)
class ItemInfoTypeSchema(Schema): item_info = RelatedPluginField(plugin_type=ItemInfoPlugin) priority = fields.Integer(default=10)
class StoreSearcherSchema(Schema): preference = fields.Integer(default=10) searcher = RelatedPluginField(plugin_type=SearcherPlugin)
class URLSearcherSchema(Schema): availability = RelatedPluginField(plugin_type=MetadataHandlerPlugin, traits=["availability"]) priority = fields.Integer(default=10, ui_schema={"ui:title": "Priority"})
class HistorySchema(Schema): history_metadata = RelatedPluginField(plugin_type=MetadataHandlerPlugin, traits=["history"])