From 7da6f43ab35ca06de72ee7ecfe03e8af3dd811bc Mon Sep 17 00:00:00 2001 From: Carol Date: Wed, 6 Sep 2023 09:48:24 +0800 Subject: [PATCH] =?UTF-8?q?add:=20=E5=88=AE=E5=89=8A=E6=BC=94=E5=91=98?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E5=B9=B6=E7=94=9F=E6=88=90=E7=9B=B8=E5=BA=94?= =?UTF-8?q?=E7=9B=AE=E5=BD=95=E7=BB=93=E6=9E=84=E5=92=8C=E6=BC=94=E5=91=98?= =?UTF-8?q?=E5=9B=BE=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 7 ++ README.md | 65 ++++++++++++++++-- .../a/Alan Rickman-tmdb-4566/folder.jpg | Bin .../a/Alan Tudyk-tmdb-21088/folder.jpg | Bin .../a/Allen Ai Lun-tmdb-1519031/folder.jpg | Bin .../a/Andrew Garfield-tmdb-37625/folder.jpg | Bin .../a/Andy Samberg-tmdb-62861/folder.jpg | Bin .../a/Andy Umberger-tmdb-142204/folder.jpg | Bin .../a/Annie Potts-tmdb-8873/folder.jpg | Bin example/{ => metadata.person}/person.nfo | 0 .../张/张晚意-tmdb-3028958/person.nfo | 0 .../{ => movies}/神出鬼没 (2023) - 2160p.nfo | 0 example/{ => tvs/一生一世}/tvshow.nfo | 0 person.py | 44 ++++++++---- 14 files changed, 96 insertions(+), 20 deletions(-) rename example/{ => metadata.person}/a/Alan Rickman-tmdb-4566/folder.jpg (100%) rename example/{ => metadata.person}/a/Alan Tudyk-tmdb-21088/folder.jpg (100%) rename example/{ => metadata.person}/a/Allen Ai Lun-tmdb-1519031/folder.jpg (100%) rename example/{ => metadata.person}/a/Andrew Garfield-tmdb-37625/folder.jpg (100%) rename example/{ => metadata.person}/a/Andy Samberg-tmdb-62861/folder.jpg (100%) rename example/{ => metadata.person}/a/Andy Umberger-tmdb-142204/folder.jpg (100%) rename example/{ => metadata.person}/a/Annie Potts-tmdb-8873/folder.jpg (100%) rename example/{ => metadata.person}/person.nfo (100%) rename example/{ => metadata.person}/张/张晚意-tmdb-3028958/person.nfo (100%) rename example/{ => movies}/神出鬼没 (2023) - 2160p.nfo (100%) rename example/{ => tvs/一生一世}/tvshow.nfo (100%) diff --git a/.gitignore b/.gitignore index 5d381cc..059d024 100644 --- a/.gitignore +++ b/.gitignore @@ -160,3 +160,10 @@ cython_debug/ # option (not recommended) you can uncomment the following to ignore the entire idea folder. #.idea/ +/.idea/.gitignore +/.idea/misc.xml +/.idea/modules.xml +/.idea/inspectionProfiles/profiles_settings.xml +/.idea/inspectionProfiles/Project_Default.xml +/.idea/tmdb-person.iml +/.idea/vcs.xml diff --git a/README.md b/README.md index 1f9656f..e777cc3 100644 --- a/README.md +++ b/README.md @@ -1,22 +1,73 @@ # tmdb-person +![](https://img.shields.io/badge/Python-3.8-green) +![](https://img.shields.io/badge/TMDB-V3-blue) + 根据nfo文件信息刮削相关演员信息及图片 -## example +## 数据 +### example > emby 存储于metadata/peopel 中的数据示例 > 电视剧tvs 和 电影movies 的保存 `.nfo` 命名格式不一样。movies的 `.nfo` 文件以电影名为前缀, tvs 统一以 `tvshow.nfo` 命名 -* a: 英文演员信息 -* 张: 中文演员信息 -* person.nfo -* tvshow.nfo +* example/metadata/person/a: 英文演员信息 +* example/metadata/person/张: 中文演员信息 +* example/metadata/person/person.nfo: 演员元数据 +* example/tvs/一生一世/tvshow.nfo: 电视剧元数据 +* example/movies/神出鬼没 (2023) - 2160p.nfo: 电影元数据 -## data +### data > 实际刮削的演员信息存放路径 ## 接口 > https://developer.themoviedb.org/ 1. 演员信息刮削:https://developer.themoviedb.org/reference/person-details -2. 图片统一前缀路径:https://www.themoviedb.org/t/p/original \ No newline at end of file +2. 图片统一前缀路径:https://www.themoviedb.org/t/p/original + +## 使用 +* 环境:Python3.8 + +### 安装相关pip依赖包 + +```python +pip3 install requests +pip3 install os +pip3 install xml +pip3 install json +``` + +### 说明 + +**`参数说明`** +* __dir_path: 目标文件夹路径。 + * 例如电影存放于 `./movies/` 下,则该路径填写 `./movies` 的完整路径。 + * 为了兼容 `电视剧` 中不刮削 `季` 中的 `.nfo` 内容,因此只刮削 `__dir_path` 路径下一层文件夹及当前层下的 `.nfo` 文件(兼容./movies 下同级存放的视频及.nfo文件) + +**`目录结构说明`** +- ./movies + - 流浪地球.mkv (不刮削) + - 流浪地球.nfo (刮削) + - 流浪地球2 + - 流浪地球2.mkv (不刮削) + - 流浪地球2.nfo (刮削) + +- ./tvs + - 三体 + - tvshow.nfo (刮削) + - Season 1 (不刮削) + +### 运行 +**`方法一:`** + +修改 `person.py` 文件中 `if __name__ == '__main__':` 方法中 `__dir_path` 参数值 + +**`方法二:`** + +> 通过命令行方式设置参数 + +```python +python3 person.py /volume1/video/movies +``` + diff --git a/example/a/Alan Rickman-tmdb-4566/folder.jpg b/example/metadata.person/a/Alan Rickman-tmdb-4566/folder.jpg similarity index 100% rename from example/a/Alan Rickman-tmdb-4566/folder.jpg rename to example/metadata.person/a/Alan Rickman-tmdb-4566/folder.jpg diff --git a/example/a/Alan Tudyk-tmdb-21088/folder.jpg b/example/metadata.person/a/Alan Tudyk-tmdb-21088/folder.jpg similarity index 100% rename from example/a/Alan Tudyk-tmdb-21088/folder.jpg rename to example/metadata.person/a/Alan Tudyk-tmdb-21088/folder.jpg diff --git a/example/a/Allen Ai Lun-tmdb-1519031/folder.jpg b/example/metadata.person/a/Allen Ai Lun-tmdb-1519031/folder.jpg similarity index 100% rename from example/a/Allen Ai Lun-tmdb-1519031/folder.jpg rename to example/metadata.person/a/Allen Ai Lun-tmdb-1519031/folder.jpg diff --git a/example/a/Andrew Garfield-tmdb-37625/folder.jpg b/example/metadata.person/a/Andrew Garfield-tmdb-37625/folder.jpg similarity index 100% rename from example/a/Andrew Garfield-tmdb-37625/folder.jpg rename to example/metadata.person/a/Andrew Garfield-tmdb-37625/folder.jpg diff --git a/example/a/Andy Samberg-tmdb-62861/folder.jpg b/example/metadata.person/a/Andy Samberg-tmdb-62861/folder.jpg similarity index 100% rename from example/a/Andy Samberg-tmdb-62861/folder.jpg rename to example/metadata.person/a/Andy Samberg-tmdb-62861/folder.jpg diff --git a/example/a/Andy Umberger-tmdb-142204/folder.jpg b/example/metadata.person/a/Andy Umberger-tmdb-142204/folder.jpg similarity index 100% rename from example/a/Andy Umberger-tmdb-142204/folder.jpg rename to example/metadata.person/a/Andy Umberger-tmdb-142204/folder.jpg diff --git a/example/a/Annie Potts-tmdb-8873/folder.jpg b/example/metadata.person/a/Annie Potts-tmdb-8873/folder.jpg similarity index 100% rename from example/a/Annie Potts-tmdb-8873/folder.jpg rename to example/metadata.person/a/Annie Potts-tmdb-8873/folder.jpg diff --git a/example/person.nfo b/example/metadata.person/person.nfo similarity index 100% rename from example/person.nfo rename to example/metadata.person/person.nfo diff --git a/example/张/张晚意-tmdb-3028958/person.nfo b/example/metadata.person/张/张晚意-tmdb-3028958/person.nfo similarity index 100% rename from example/张/张晚意-tmdb-3028958/person.nfo rename to example/metadata.person/张/张晚意-tmdb-3028958/person.nfo diff --git a/example/神出鬼没 (2023) - 2160p.nfo b/example/movies/神出鬼没 (2023) - 2160p.nfo similarity index 100% rename from example/神出鬼没 (2023) - 2160p.nfo rename to example/movies/神出鬼没 (2023) - 2160p.nfo diff --git a/example/tvshow.nfo b/example/tvs/一生一世/tvshow.nfo similarity index 100% rename from example/tvshow.nfo rename to example/tvs/一生一世/tvshow.nfo diff --git a/person.py b/person.py index b049764..5bbe188 100644 --- a/person.py +++ b/person.py @@ -60,16 +60,34 @@ class Tmdb: if __name__ == '__main__': - __nfo_data = Analyze(file_path="example/神出鬼没 (2023) - 2160p.nfo").analyze() - for __actor in __nfo_data["actors"]: - __tmdbid = __actor["tmdbid"] - __actor_name = __actor["name"] - __name = __actor_name[1].lower() - __path_dir = os.path.join("data", __name, __actor_name) - if not os.path.exists(__path_dir): - os.makedirs(__path_dir) - if ".nfo" not in os.listdir(__path_dir): - __actor_info = Tmdb(tmdb_id=__tmdbid, actor_path=__path_dir).get_actor_info() - print(__actor_info) - if "folder" not in os.listdir(__path_dir): - Tmdb(tmdb_id=__tmdbid, actor_path=__path_dir).get_actor_image() + __dir_path = "example/tvs" + __output = "example/metadata/person" + __file_paths = [] + for folder in os.listdir(__dir_path): + __folder2 = os.path.join(__dir_path, folder) + # 判断是否文件夹 + if os.path.isdir(__folder2): + for nfo_file in os.listdir(__folder2): + __child_file_path = os.path.join(__folder2, nfo_file) + if ".nfo" in os.path.basename(__child_file_path): + __file_paths.append(__child_file_path) + elif os.path.isfile(__folder2): + __file_name = os.path.basename(__folder2) + if ".nfo" in __file_name: + __file_paths.append(__folder2) + print(__file_paths) + for __file_path in __file_paths: + # __file_path = "example/神出鬼没 (2023) - 2160p.nfo" + __nfo_data = Analyze(file_path=__file_path).analyze() + for __actor in __nfo_data["actors"]: + __tmdbid = __actor["tmdbid"] + __actor_name = __actor["name"] + __name = __actor_name[1].lower() + __path_dir = os.path.join(__output, __name, __actor_name) + if not os.path.exists(__path_dir): + os.makedirs(__path_dir) + if ".nfo" not in os.listdir(__path_dir): + __actor_info = Tmdb(tmdb_id=__tmdbid, actor_path=__path_dir).get_actor_info() + print(__actor_info) + if "folder" not in os.listdir(__path_dir): + Tmdb(tmdb_id=__tmdbid, actor_path=__path_dir).get_actor_image()