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 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 URLSearcherSchema(Schema): availability = RelatedPluginField(plugin_type=MetadataHandlerPlugin, traits=["availability"]) priority = fields.Integer(default=10, ui_schema={"ui:title": "Priority"})
class ItemInfoTypeSchema(Schema): item_info = RelatedPluginField(plugin_type=ItemInfoPlugin) priority = fields.Integer(default=10)
class RemoteFilesystemInputSchema(Schema): url = fields.String() token = fields.String() priority = fields.Integer(default=5)
class SectionInputSchema(Schema): path = fields.String(default="") preference = fields.Integer(default=10) input = RelatedPluginField(plugin_type=InputPlugin, required=True)
class StoreSearcherSchema(Schema): preference = fields.Integer(default=10) searcher = RelatedPluginField(plugin_type=SearcherPlugin)
class RemoteSearcherSearcherSchema(Schema): url = fields.String() token = fields.String() searcher_name = fields.String() priority = fields.Integer(default=10)