From 403f137a1edbdcdf6a3aebabed92a0ad036d72f1 Mon Sep 17 00:00:00 2001 From: Carol Date: Wed, 13 Sep 2023 10:46:38 +0800 Subject: [PATCH] =?UTF-8?q?add:=20=E6=96=B0=E5=A2=9Echeck=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 14 +++++++++----- main.py | 5 ++++- redo.py | 11 +++++------ scrape.py | 2 +- 4 files changed, 19 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 3226099..55bbcc6 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,6 @@ # tmdb-person + +![Version](https://img.shields.io/badge/version-1.0.2-blue) ![Python](https://img.shields.io/badge/Python-3.9-green) ![TMDB](https://img.shields.io/badge/TMDB-V3-orign) ![https://blog.cnkj.site](https://img.shields.io/badge/Blog-blog.cnkj.site-blue) @@ -61,9 +63,11 @@ pip3 install -r requirements.txt * 访问 [API](https://www.themoviedb.org/settings/api) * 复制 `API 读访问令牌` * __mode: 脚本执行模式, 可选参数. 命令行执行脚本使用```--mode collect``` 调用 - * scrape: 刮削模式,从扫描目录直接识别nfo文件并刮削元数据和图片到输出目录中 - * collect: 转移模式,从扫描目录收集所有nfo文件并复制到输出目录中(不执行刮削操作) - * redo: 重做模式,执行正常刮削数据中出现的异常进行重新处理 + * scrape: 刮削模式.从扫描目录直接识别nfo文件并刮削元数据和图片到输出目录中 + * collect: 转移模式.从扫描目录收集所有nfo文件并复制到输出目录中(不执行刮削操作) + * redo: 重做模式.执行正常刮削数据中出现的异常进行重新处理 + * check: 检查模式.检查指定路径下的全部文件夹中演员元数据`person.nfo` 和 演员图片`folder.jpg` 是否存在并分别记录到 [no_nfo_tmdb_ids.txt](no_nfo_tmdb_ids.txt) 和 [no_image_tmdb_ids.txt](no_image_tmdb_ids.txt) 日志文件中 + * `scan_path` 扫描目录路径使用 `__output` 路径 **`目录结构说明`** - ./movies @@ -82,7 +86,7 @@ pip3 install -r requirements.txt > 参数 `__mode` 为可选参数,具体请参考`参数说明`内容 #### 直接修改脚本文件方式 -1. 修改 `main.py` 文件中 `if __name__ == '__main__':` 方法中 `__dir_path` 、 `__output` 、 `__tmdb_token` 参数值 +1. 修改 `main.py` 文件中 `if __name__ == '__main__':` 方法中 `__dir_path` 、 `__output` 、 `__tmdb_token` 、 `__mode`参数值 2. 执行脚本 ```python python3 main.py @@ -92,7 +96,7 @@ python3 main.py > 注意参数 `--dir_path` 的值如果需要配置多个,请使用英文半角逗号拼接,不要有空格 ```python -python3 main.py --dir_path "example/movies","example/tvs" --output data/metadata/person --tmdb_token +python3 main.py --dir_path "example/movies","example/tvs" --output data/metadata/person --tmdb_token tmdb_token --mode collect ``` ### 补充 diff --git a/main.py b/main.py index c9858ea..098168b 100644 --- a/main.py +++ b/main.py @@ -4,7 +4,7 @@ import os import sys from collect_metadata import __collect_nfo -from redo import __redo +from redo import __redo,__check from scrape import __execute from utils.LoggerUtil import Logger @@ -119,3 +119,6 @@ if __name__ == '__main__': __execute(log=__log, dir_path=__real_dir_path, output=__output, tmdb_token=__tmdb_token) if "redo" == __mode: __redo(log=__log, output=__output, tmdb_token=__tmdb_token) + if "check" == __mode: + __check(scan_path=__output) + diff --git a/redo.py b/redo.py index c084123..46c951f 100644 --- a/redo.py +++ b/redo.py @@ -42,17 +42,16 @@ def __redo(log, output, tmdb_token, language="zh-CN"): log.logger.info("------------------- 结束重新刮削: {0} -------------------".format("./error_tmdb_ids.txt")) -if __name__ == '__main__': +def __check(scan_path="data/metadata/person"): os.remove("./no_nfo_tmdb_ids.txt") os.remove("./no_image_tmdb_ids.txt") error_file_nfo = open("./no_nfo_tmdb_ids.txt", "w+") error_file_image = open("./no_image_tmdb_ids.txt", "w+") - for i in os.listdir("data/metadata/person"): - for files in os.listdir(os.path.join("data/metadata/person", i)): - print(files) - if "person.nfo" not in os.listdir(os.path.join("data/metadata/person", i, files)): + for i in os.listdir(scan_path): + for files in os.listdir(os.path.join(scan_path, i)): + if "person.nfo" not in os.listdir(os.path.join(scan_path, i, files)): error_file_nfo.write(files + "\n") - if "folder.jpg" not in os.listdir(os.path.join("data/metadata/person", i, files)): + if "folder.jpg" not in os.listdir(os.path.join(scan_path, i, files)): error_file_image.write(files + "\n") error_file_nfo.close() error_file_image.close() diff --git a/scrape.py b/scrape.py index 45ad747..4147024 100644 --- a/scrape.py +++ b/scrape.py @@ -27,7 +27,7 @@ def __execute(log, dir_path, output, tmdb_token, language="zh-CN"): # __file_path = "example/神出鬼没 (2023) - 2160p.nfo" __nfo_data = Analyze(file_path=__file_path).analyze() for __actor in __nfo_data["actors"]: - log.logger.warn("当前解析的演员信息: {0}".format(__actor)) + log.logger.info("当前解析的演员信息: {0}".format(__actor)) if "tmdbid" in __actor.keys(): __tmdbid = __actor["tmdbid"] __actor_name = __actor["name"]