From 140c08898f6ad38178bb91603b8a3dc097ff92ee Mon Sep 17 00:00:00 2001 From: Carol Date: Wed, 6 Sep 2023 10:59:34 +0800 Subject: [PATCH] =?UTF-8?q?add:=20=E8=A1=A5=E5=85=85README.md=E8=AF=B4?= =?UTF-8?q?=E6=98=8E=20change:=20=E4=BC=98=E5=8C=96person.py=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 11 ++++------- person.py | 30 ++++++++++++++++++++---------- 2 files changed, 24 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 151b146..a6f84cb 100644 --- a/README.md +++ b/README.md @@ -45,6 +45,10 @@ pip3 install json * 例如电影存放于 `./movies/` 下,则该路径填写 `./movies` 的完整路径。 * 为了兼容 `电视剧` 中不刮削 `季` 中的 `.nfo` 内容,因此只刮削 `__dir_path` 路径下一层文件夹及当前层下的 `.nfo` 文件(兼容./movies 下同级存放的视频及.nfo文件) * __output: 演员信息、图片输出路径 +* __tmdb_token: TMDB 开发者API调用token + * 登录 [TMDB](https://www.themoviedb.org/login) + * 访问 [API](https://www.themoviedb.org/settings/api) + * 复制 `API 读访问令牌` **`目录结构说明`** - ./movies @@ -60,15 +64,8 @@ pip3 install json - Season 1 (不刮削) ### 运行 -**`方法一:`** 修改 `person.py` 文件中 `if __name__ == '__main__':` 方法中 `__dir_path` 参数值和 `__output` 参数值 -**`方法二:`** -> 通过命令行方式设置参数 - -```python -python3 person.py {"__dir_path":"/volume1/video/movies", "__output":"/volume1/metadata/person"} -``` diff --git a/person.py b/person.py index 01a06fa..0dea569 100644 --- a/person.py +++ b/person.py @@ -35,16 +35,17 @@ class Analyze: class Tmdb: - def __init__(self, tmdb_id, actor_path): + def __init__(self, tmdb_id, actor_path, tmdb_token): self.image_path = None self.tmdb_id = tmdb_id self.actor_path = actor_path + self.tmdb_token = tmdb_token def get_actor_info(self): url = "https://api.themoviedb.org/3/person/" + self.tmdb_id + "?language=zh-CN" headers = { "accept": "application/json", - "Authorization": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJhdWQiOiIxYTU4ODAxMGY5OTUwYWEyNThhYjFhYjJlMjI4NGVmYSIsInN1YiI6IjYxYmRmOGNjMzgzZGYyMDA0MjIzNDhjOSIsInNjb3BlcyI6WyJhcGlfcmVhZCJdLCJ2ZXJzaW9uIjoxfQ.RPG8F8AELlK7MgrXDR2U0YRv61VteZZ9ponilnkQqkE" + "Authorization": "Bearer " + self.tmdb_token } response = requests.get(url, headers=headers) return response.text @@ -60,12 +61,10 @@ class Tmdb: f.write(response.content) -if __name__ == '__main__': - __dir_path = "example/movies" - __output = "data/metadata/person" +def __execute(dir_path, output, tmdb_token): __file_paths = [] - for folder in os.listdir(__dir_path): - __folder2 = os.path.join(__dir_path, folder) + 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): @@ -85,11 +84,22 @@ if __name__ == '__main__': __actor_name = __actor["name"] __name = __actor_name[1].lower() __full_actor_name = __actor_name + "-tmdb-" + __tmdbid - __path_dir = os.path.join(__output, __name, __full_actor_name) + __path_dir = os.path.join(output, __name, __full_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() + __actor_info = Tmdb(tmdb_id=__tmdbid, actor_path=__path_dir, tmdb_token=tmdb_token).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() + Tmdb(tmdb_id=__tmdbid, actor_path=__path_dir, tmdb_token=tmdb_token).get_actor_image() + + +if __name__ == '__main__': + # 扫描目录 + __dir_path = "example/movies" + # 输出演员元数据目录 + __output = "data/metadata/person" + # TMDB API TOKEN + __tmdb_token = "eyJhbGciOiJIUzI1NiJ9.eyJhdWQiOiIxYTU4ODAxMGY5OTUwYWEyNThhYjFhYjJlMjI4NGVmYSIsInN1YiI6IjYxYmRmOGNjMzgzZGYyMDA0MjIzNDhjOSIsInNjb3BlcyI6WyJhcGlfcmVhZCJdLCJ2ZXJzaW9uIjoxfQ.RPG8F8AELlK7MgrXDR2U0YRv61VteZZ9ponilnkQqkE" + # 开始执行主程序 + __execute(dir_path=__dir_path, output=__output, tmdb_token=__tmdb_token)