mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-06 16:07:01 +08:00
Merge pull request #4269 from wikrin/v2
This commit is contained in:
@@ -66,13 +66,15 @@ class TemplateContextBuilder:
|
|||||||
if include_raw_objects:
|
if include_raw_objects:
|
||||||
self._add_raw_objects(meta, mediainfo, torrentinfo, transferinfo, episodes_info)
|
self._add_raw_objects(meta, mediainfo, torrentinfo, transferinfo, episodes_info)
|
||||||
|
|
||||||
return self._context
|
# 移除空值
|
||||||
|
return {k: v for k, v in self._context.items() if v is not None}
|
||||||
|
|
||||||
def _add_media_info(self, mediainfo: MediaInfo):
|
def _add_media_info(self, mediainfo: MediaInfo):
|
||||||
"""
|
"""
|
||||||
增加媒体信息
|
增加媒体信息
|
||||||
"""
|
"""
|
||||||
if not mediainfo: return
|
if not mediainfo: return
|
||||||
|
season_fmt = f"S{mediainfo.season:02d}" if mediainfo.season is not None else None
|
||||||
base_info = {
|
base_info = {
|
||||||
# 标题
|
# 标题
|
||||||
"title": self.__convert_invalid_characters(mediainfo.title),
|
"title": self.__convert_invalid_characters(mediainfo.title),
|
||||||
@@ -82,6 +84,8 @@ class TemplateContextBuilder:
|
|||||||
"original_title": self.__convert_invalid_characters(mediainfo.original_title),
|
"original_title": self.__convert_invalid_characters(mediainfo.original_title),
|
||||||
# 季号
|
# 季号
|
||||||
"season": self._context.get("season") or mediainfo.season,
|
"season": self._context.get("season") or mediainfo.season,
|
||||||
|
# Sxx
|
||||||
|
"season_fmt": self._context.get("season_fmt") or season_fmt,
|
||||||
# 年份
|
# 年份
|
||||||
"year": mediainfo.year or self._context.get("year"),
|
"year": mediainfo.year or self._context.get("year"),
|
||||||
# 媒体标题 + 年份
|
# 媒体标题 + 年份
|
||||||
@@ -148,6 +152,8 @@ class TemplateContextBuilder:
|
|||||||
meta.name, meta.year) if meta.year else meta.name,
|
meta.name, meta.year) if meta.year else meta.name,
|
||||||
# 季号
|
# 季号
|
||||||
"season": meta.season_seq,
|
"season": meta.season_seq,
|
||||||
|
# Sxx
|
||||||
|
"season_fmt": meta.season,
|
||||||
# 集号
|
# 集号
|
||||||
"episode": meta.episode_seqs,
|
"episode": meta.episode_seqs,
|
||||||
# 季集 SxxExx
|
# 季集 SxxExx
|
||||||
@@ -269,7 +275,7 @@ class TemplateContextBuilder:
|
|||||||
# 当前季的全部集信息
|
# 当前季的全部集信息
|
||||||
"__episodes_info__": episodes_info,
|
"__episodes_info__": episodes_info,
|
||||||
}
|
}
|
||||||
self._context.update({k: v for k, v in raw_objects.items() if v is not None})
|
self._context.update(raw_objects)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def __convert_invalid_characters(filename: str):
|
def __convert_invalid_characters(filename: str):
|
||||||
|
|||||||
@@ -0,0 +1,37 @@
|
|||||||
|
"""2.1.5
|
||||||
|
|
||||||
|
Revision ID: 486e56a62dcb
|
||||||
|
Revises: 89d24811e894
|
||||||
|
Create Date: 2025-05-13 19:49:51.271319
|
||||||
|
|
||||||
|
"""
|
||||||
|
import re
|
||||||
|
|
||||||
|
from app.db.systemconfig_oper import SystemConfigOper
|
||||||
|
from app.schemas.types import SystemConfigKey
|
||||||
|
|
||||||
|
# revision identifiers, used by Alembic.
|
||||||
|
revision = '486e56a62dcb'
|
||||||
|
down_revision = '89d24811e894'
|
||||||
|
branch_labels = None
|
||||||
|
depends_on = None
|
||||||
|
|
||||||
|
|
||||||
|
def upgrade() -> None:
|
||||||
|
# ### commands auto generated by Alembic - please adjust! ###
|
||||||
|
### 将消息模板中的 `season`(为单数字, 且重命名需要这个字段)替换为 `season_fmt`(Sxx格式字符串) ###
|
||||||
|
_systemconfig = SystemConfigOper()
|
||||||
|
templates = _systemconfig.get(SystemConfigKey.NotificationTemplates)
|
||||||
|
if isinstance(templates, dict):
|
||||||
|
_re = r'(?<={{)(?![^}]*[%|])(\s*)season(\s*)(?=}})|(?<={%)if\s+(?![^%]*[%|])season\s*(?=%)'
|
||||||
|
for k, v in templates.items():
|
||||||
|
# 替换season为season_fmt
|
||||||
|
result = re.sub(_re, r'\1season_fmt\2', v)
|
||||||
|
templates[k] = result
|
||||||
|
# 将更新后的模板存回系统配置
|
||||||
|
_systemconfig.set(SystemConfigKey.NotificationTemplates, templates)
|
||||||
|
# ### end Alembic commands ###
|
||||||
|
|
||||||
|
|
||||||
|
def downgrade() -> None:
|
||||||
|
pass
|
||||||
@@ -33,7 +33,7 @@ def upgrade() -> None:
|
|||||||
"downloadAdded": """
|
"downloadAdded": """
|
||||||
{
|
{
|
||||||
'title': '{{ title_year }}'
|
'title': '{{ title_year }}'
|
||||||
'{% if download_episodes %} {{ season }} {{ download_episodes }}{% else %}{{ season_episode }}{% endif %} 开始下载',
|
'{% if download_episodes %} {{ season_fmt }} {{ download_episodes }}{% else %}{{ season_episode }}{% endif %} 开始下载',
|
||||||
'text': '{% if site_name %}站点:{{ site_name }}{% endif %}'
|
'text': '{% if site_name %}站点:{{ site_name }}{% endif %}'
|
||||||
'{% if resource_term %}\\n质量:{{ resource_term }}{% endif %}'
|
'{% if resource_term %}\\n质量:{{ resource_term }}{% endif %}'
|
||||||
'{% if size %}\\n大小:{{ size }}{% endif %}'
|
'{% if size %}\\n大小:{{ size }}{% endif %}'
|
||||||
@@ -46,10 +46,11 @@ def upgrade() -> None:
|
|||||||
'{% if labels %}\\n标签:{{ labels }}{% endif %}'
|
'{% if labels %}\\n标签:{{ labels }}{% endif %}'
|
||||||
'{% if description %}\\n描述:{{ description }}{% endif %}'
|
'{% if description %}\\n描述:{{ description }}{% endif %}'
|
||||||
}""",
|
}""",
|
||||||
"subscribeAdded": "{'title': '{{ title_year }} {{season}} 已添加订阅'}",
|
"subscribeAdded": "{'title': '{{ title_year }}{% if season_fmt %} {{ season_fmt }}{% endif %} 已添加订阅'}",
|
||||||
"subscribeComplete": """
|
"subscribeComplete": """
|
||||||
{
|
{
|
||||||
'title': '{{ title_year }} {{season}} 已完成{{msgstr}}',
|
'title': '{{ title_year }}'
|
||||||
|
'{% if season_fmt %} {{ season_fmt }}{% endif %} 已完成{{ msgstr }}',
|
||||||
'text': '{% if vote_average %}评分:{{ vote_average }}{% endif %}'
|
'text': '{% if vote_average %}评分:{{ vote_average }}{% endif %}'
|
||||||
'{% if username %},来自用户:{{ username }}{% endif %}'
|
'{% if username %},来自用户:{{ username }}{% endif %}'
|
||||||
'{% if actors %}\\n演员:{{ actors }}{% endif %}'
|
'{% if actors %}\\n演员:{{ actors }}{% endif %}'
|
||||||
|
|||||||
Reference in New Issue
Block a user