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. 配置多项条件时需要同时满足,一个条件需要匹配多个值是使用`,`分隔