refactor: type media server contracts

This commit is contained in:
jxxghp
2026-08-24 01:33:04 +08:00
parent 65544e89ad
commit e359bbace9
3 changed files with 117 additions and 45 deletions
+77 -44
View File
@@ -4385,15 +4385,19 @@
"version": 1
},
"media_exists": {
"aggregation": "legacy",
"aggregation": "first_non_empty",
"error_policy": "isolate_provider",
"execution": "sync_or_async",
"family": "media-server",
"input_contract": "MediaServerKeywordArguments",
"input_contract": "MediaExistsRequest",
"plugin_short_circuit": true,
"public_to_plugins": true,
"required_parameters": [],
"result_contract": "MediaServerProviderResult",
"required_parameters": [
"itemid",
"mediainfo",
"server"
],
"result_contract": "ExistMediaInfo | None",
"result_shape": "any",
"supports_async": true,
"supports_sync": true,
@@ -4417,31 +4421,36 @@
"version": 1
},
"media_statistic": {
"aggregation": "legacy",
"aggregation": "ordered_list_merge",
"error_policy": "isolate_provider",
"execution": "sync_or_async",
"family": "media-server",
"input_contract": "MediaServerKeywordArguments",
"input_contract": "MediaStatisticRequest",
"plugin_short_circuit": true,
"public_to_plugins": true,
"required_parameters": [],
"result_contract": "MediaServerProviderResult",
"result_shape": "any",
"required_parameters": [
"server"
],
"result_contract": "list[Statistic]",
"result_shape": "list",
"supports_async": true,
"supports_sync": true,
"timeout_policy": "caller_budget",
"version": 1
},
"mediaserver_image_cookies": {
"aggregation": "legacy",
"aggregation": "first_non_empty",
"error_policy": "isolate_provider",
"execution": "sync_or_async",
"family": "media-server",
"input_contract": "MediaServerKeywordArguments",
"input_contract": "MediaServerImageCookiesRequest",
"plugin_short_circuit": true,
"public_to_plugins": true,
"required_parameters": [],
"result_contract": "MediaServerProviderResult",
"required_parameters": [
"image_url",
"server"
],
"result_contract": "str | dict | None",
"result_shape": "any",
"supports_async": true,
"supports_sync": true,
@@ -4468,7 +4477,7 @@
"version": 1
},
"mediaserver_items": {
"aggregation": "ordered_list_merge",
"aggregation": "first_non_empty",
"error_policy": "isolate_provider",
"execution": "sync_or_async",
"family": "media-server",
@@ -4481,7 +4490,7 @@
"server",
"start_index"
],
"result_contract": "list[MediaServerItem]",
"result_contract": "Iterable[MediaServerItem] | None",
"result_shape": "any",
"supports_async": true,
"supports_sync": true,
@@ -4489,15 +4498,18 @@
"version": 1
},
"mediaserver_items_count": {
"aggregation": "legacy",
"aggregation": "first_non_empty",
"error_policy": "isolate_provider",
"execution": "sync_or_async",
"family": "media-server",
"input_contract": "MediaServerKeywordArguments",
"input_contract": "MediaServerItemsCountRequest",
"plugin_short_circuit": true,
"public_to_plugins": true,
"required_parameters": [],
"result_contract": "MediaServerProviderResult",
"required_parameters": [
"library_id",
"server"
],
"result_contract": "int | None",
"result_shape": "any",
"supports_async": true,
"supports_sync": true,
@@ -4505,48 +4517,61 @@
"version": 1
},
"mediaserver_latest": {
"aggregation": "legacy",
"aggregation": "ordered_list_merge",
"error_policy": "isolate_provider",
"execution": "sync_or_async",
"family": "media-server",
"input_contract": "MediaServerKeywordArguments",
"input_contract": "MediaServerRecentRequest",
"plugin_short_circuit": true,
"public_to_plugins": true,
"required_parameters": [],
"result_contract": "MediaServerProviderResult",
"result_shape": "any",
"required_parameters": [
"count",
"server",
"username"
],
"result_contract": "list[MediaServerPlayItem]",
"result_shape": "list",
"supports_async": true,
"supports_sync": true,
"timeout_policy": "caller_budget",
"version": 1
},
"mediaserver_latest_images": {
"aggregation": "legacy",
"aggregation": "ordered_list_merge",
"error_policy": "isolate_provider",
"execution": "sync_or_async",
"family": "media-server",
"input_contract": "MediaServerKeywordArguments",
"input_contract": "MediaServerRecentImagesRequest",
"plugin_short_circuit": true,
"public_to_plugins": true,
"required_parameters": [],
"result_contract": "MediaServerProviderResult",
"result_shape": "any",
"required_parameters": [
"count",
"remote",
"server",
"username"
],
"result_contract": "list[str]",
"result_shape": "list",
"supports_async": true,
"supports_sync": true,
"timeout_policy": "caller_budget",
"version": 1
},
"mediaserver_librarys": {
"aggregation": "legacy",
"aggregation": "ordered_list_merge",
"error_policy": "isolate_provider",
"execution": "sync_or_async",
"family": "media-server",
"input_contract": "MediaServerKeywordArguments",
"input_contract": "MediaServerLibrariesRequest",
"plugin_short_circuit": true,
"public_to_plugins": true,
"required_parameters": [],
"result_contract": "MediaServerProviderResult",
"result_shape": "any",
"required_parameters": [
"hidden",
"server",
"username"
],
"result_contract": "list[MediaServerLibrary]",
"result_shape": "list",
"supports_async": true,
"supports_sync": true,
"timeout_policy": "caller_budget",
@@ -4572,32 +4597,40 @@
"version": 1
},
"mediaserver_playing": {
"aggregation": "legacy",
"aggregation": "ordered_list_merge",
"error_policy": "isolate_provider",
"execution": "sync_or_async",
"family": "media-server",
"input_contract": "MediaServerKeywordArguments",
"input_contract": "MediaServerRecentRequest",
"plugin_short_circuit": true,
"public_to_plugins": true,
"required_parameters": [],
"result_contract": "MediaServerProviderResult",
"result_shape": "any",
"required_parameters": [
"count",
"server",
"username"
],
"result_contract": "list[MediaServerPlayItem]",
"result_shape": "list",
"supports_async": true,
"supports_sync": true,
"timeout_policy": "caller_budget",
"version": 1
},
"mediaserver_season_episode_ids": {
"aggregation": "legacy",
"aggregation": "first_non_empty",
"error_policy": "isolate_provider",
"execution": "sync_or_async",
"family": "media-server",
"input_contract": "MediaServerKeywordArguments",
"input_contract": "MediaServerSeasonEpisodesRequest",
"plugin_short_circuit": true,
"public_to_plugins": true,
"required_parameters": [],
"result_contract": "MediaServerProviderResult",
"result_shape": "any",
"required_parameters": [
"item_id",
"season",
"server"
],
"result_contract": "dict[int, str] | None",
"result_shape": "mapping",
"supports_async": true,
"supports_sync": true,
"timeout_policy": "caller_budget",