Add read-only NAS and WebDAV photo sources with random scheduling

This commit is contained in:
Pigway
2026-10-05 00:52:39 +08:00
parent b530e32c65
commit f5ab1ade77
18 changed files with 5578 additions and 84 deletions
+214
View File
@@ -355,6 +355,9 @@
{
"$ref": "#/components/schemas/TemplateContent"
},
{
"$ref": "#/components/schemas/PhotoSourceContent"
},
{
"$ref": "#/components/schemas/FutureContent"
}
@@ -367,6 +370,7 @@
"image": "#/components/schemas/ImageContent",
"image_url": "#/components/schemas/URLContent",
"markdown": "#/components/schemas/FutureContent",
"photo_source": "#/components/schemas/PhotoSourceContent",
"template": "#/components/schemas/TemplateContent"
}
}
@@ -752,5 +756,215 @@
"error"
],
"title": "ErrorResponse"
},
"PhotoSourceContent": {
"properties": {
"type": {
"type": "string",
"const": "photo_source",
"title": "Type"
},
"source_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"title": "Source Id"
},
"item_id": {
"anyOf": [
{
"type": "string",
"maxLength": 2048
},
{
"type": "null"
}
],
"title": "Item Id"
},
"fit": {
"$ref": "#/components/schemas/Fit",
"default": "contain"
},
"profile": {
"$ref": "#/components/schemas/Profile",
"default": "color"
}
},
"additionalProperties": false,
"type": "object",
"required": [
"type",
"source_id"
],
"title": "PhotoSourceContent"
},
"PhotoSourceInput": {
"properties": {
"name": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"title": "Name"
},
"kind": {
"type": "string",
"enum": [
"local",
"webdav"
],
"title": "Kind"
},
"location": {
"type": "string",
"maxLength": 2048,
"minLength": 1,
"title": "Location"
},
"recursive": {
"type": "boolean",
"title": "Recursive",
"default": true
},
"enabled": {
"type": "boolean",
"title": "Enabled",
"default": true
},
"credential_env": {
"anyOf": [
{
"type": "string",
"pattern": "^FRAME_FLOW_SOURCE_[A-Z0-9_]+$"
},
{
"type": "null"
}
],
"title": "Credential Env"
}
},
"additionalProperties": false,
"type": "object",
"required": [
"name",
"kind",
"location"
],
"title": "PhotoSourceInput"
},
"PhotoSourceView": {
"properties": {
"name": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"title": "Name"
},
"kind": {
"type": "string",
"enum": [
"local",
"webdav"
],
"title": "Kind"
},
"location": {
"type": "string",
"maxLength": 2048,
"minLength": 1,
"title": "Location"
},
"recursive": {
"type": "boolean",
"title": "Recursive",
"default": true
},
"enabled": {
"type": "boolean",
"title": "Enabled",
"default": true
},
"credential_env": {
"anyOf": [
{
"type": "string",
"pattern": "^FRAME_FLOW_SOURCE_[A-Z0-9_]+$"
},
{
"type": "null"
}
],
"title": "Credential Env"
},
"id": {
"type": "string",
"title": "Id"
}
},
"additionalProperties": false,
"type": "object",
"required": [
"name",
"kind",
"location",
"id"
],
"title": "PhotoSourceView"
},
"PhotoItem": {
"properties": {
"id": {
"type": "string",
"title": "Id"
},
"name": {
"type": "string",
"title": "Name"
}
},
"additionalProperties": false,
"type": "object",
"required": [
"id",
"name"
],
"title": "PhotoItem"
},
"PhotoCatalog": {
"properties": {
"items": {
"items": {
"$ref": "#/components/schemas/PhotoItem"
},
"type": "array",
"title": "Items"
},
"total": {
"type": "integer",
"title": "Total"
},
"offset": {
"type": "integer",
"title": "Offset"
},
"limit": {
"type": "integer",
"title": "Limit"
},
"catalog_limit": {
"type": "integer",
"title": "Catalog Limit"
}
},
"additionalProperties": false,
"type": "object",
"required": [
"items",
"total",
"offset",
"limit",
"catalog_limit"
],
"title": "PhotoCatalog"
}
}