refactor: migrate workflow actions to runtime config snapshot

This commit is contained in:
jxxghp
2026-08-23 00:37:03 +08:00
parent 176d9255e5
commit ab51b5116a
6 changed files with 157 additions and 10 deletions
+3 -2
View File
@@ -1,6 +1,7 @@
from app.workflow.actions import BaseAction
from app.chain.subscribe import SubscribeChain
from app.runtime.config import settings, global_vars
from app.application.configuration import get_chain_runtime_config_snapshot
from app.runtime.config import global_vars
from app.domain.context import MediaInfo
from app.application.chain.data import SubscribePortProxy as SubscribeOper
from app.runtime.log import logger
@@ -65,7 +66,7 @@ class AddSubscribeAction(BaseAction):
season=mediainfo.season,
media_source=mediainfo.media_source,
media_id=mediainfo.media_id,
username=settings.SUPERUSER)
username=get_chain_runtime_config_snapshot().superuser)
if sid:
self._added_subscribes.append(sid)
# 保存缓存
+7 -2
View File
@@ -4,7 +4,8 @@ from pydantic import Field
from app.workflow.actions import BaseAction
from app.chain.media import MediaChain
from app.runtime.config import settings, global_vars
from app.application.configuration import get_chain_runtime_config_snapshot
from app.runtime.config import global_vars
from app.domain.context import Context, TorrentInfo
from app.domain.metainfo import MetaInfo
from app.application.rss import RssHelper
@@ -65,7 +66,11 @@ class FetchRssAction(BaseAction):
headers["User-Agent"] = params.ua
rss_items = RssHelper().parse(url=params.url,
proxy=settings.PROXY if params.proxy else None,
proxy=(
get_chain_runtime_config_snapshot().proxy
if params.proxy
else None
),
timeout=params.timeout,
headers=headers)
if rss_items is None or rss_items is False:
+8 -2
View File
@@ -5,7 +5,8 @@ from pydantic import Field
from app.workflow.actions import BaseAction
from app.chain.storage import StorageChain
from app.runtime.config import global_vars, settings
from app.application.configuration import get_chain_runtime_config_snapshot
from app.runtime.config import global_vars
from app.runtime.log import logger
from app.schemas.workflow import ActionParams
from app.schemas.workflow import ActionContext
@@ -56,10 +57,15 @@ class ScanFileAction(BaseAction):
self._has_error = True
return context
files = storagechain.list_files(fileitem, recursion=True)
runtime_config = get_chain_runtime_config_snapshot()
media_exts = (
runtime_config.media_extensions
+ runtime_config.subtitle_extensions
+ runtime_config.audio_extensions
)
for file in files:
if global_vars.is_workflow_stopped(workflow_id):
break
media_exts = settings.RMT_MEDIAEXT + settings.RMT_SUBEXT + settings.RMT_AUDIOEXT
if not file.extension or f".{file.extension.lower()}" not in media_exts:
continue
# 添加文件到队列,而不是目录