From 97265fc43bbdbd5f8b0740b4e8afd6d784dec09e Mon Sep 17 00:00:00 2001 From: jxxghp Date: Thu, 15 May 2025 20:13:44 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E4=BA=8C=E7=BA=A7=E5=88=86?= =?UTF-8?q?=E7=B1=BB=E5=8F=91=E8=A1=8C=E5=B9=B4=E4=BB=BD=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E8=8C=83=E5=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/modules/themoviedb/category.py | 13 +++++++++++++ config/category.yaml | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/app/modules/themoviedb/category.py b/app/modules/themoviedb/category.py index f7f12d31..56dd844c 100644 --- a/app/modules/themoviedb/category.py +++ b/app/modules/themoviedb/category.py @@ -116,6 +116,7 @@ class CategoryHelper(metaclass=Singleton): if not value: continue if attr == "release_year": + # 发行年份 info_value = tmdb_info.get("release_date") or tmdb_info.get("first_air_date") if info_value: info_value = str(info_value)[:4] @@ -125,6 +126,7 @@ class CategoryHelper(metaclass=Singleton): match_flag = False continue elif attr == "production_countries": + # 制片国家 info_values = [str(val.get("iso_3166_1")).upper() for val in info_value] else: if isinstance(info_value, list): @@ -133,7 +135,18 @@ class CategoryHelper(metaclass=Singleton): info_values = [str(info_value).upper()] if value.find(",") != -1: + # , 分隔多个值 values = [str(val).upper() for val in value.split(",") if val] + elif value.find("-") != -1: + # - 表示范围,仅限于数字 + value_begin = value.split("-")[0] + value_end = value.split("-")[1] + if value_begin.isdigit() and value_end.isdigit(): + # 数字范围 + values = [str(val) for val in range(int(value_begin), int(value_end) + 1)] + else: + # 字符串范围 + values = [str(value_begin), str(value_end)] else: values = [str(value).upper()] diff --git a/config/category.yaml b/config/category.yaml index ec10c432..a9946561 100644 --- a/config/category.yaml +++ b/config/category.yaml @@ -5,7 +5,7 @@ # `original_language` 语种,具体含义参考下方字典 # `production_countries` 国家或地区(电影)、`origin_country` 国家或地区(电视剧),具体含义参考下方字典 # `genre_ids` 内容类型,具体含义参考下方字典 -# `release_year` 发行年份,格式:YYYY,电影实际对应`release_date`字段,电视剧实际对应`first_air_date`字段 +# `release_year` 发行年份,格式:YYYY,电影实际对应`release_date`字段,电视剧实际对应`first_air_date`字段,支持范围设定,如:`YYYY-YYYY` # themoviedb 详情API返回的其它一级字段 # 4. 配置多项条件时需要同时满足,一个条件需要匹配多个值是使用`,`分隔