-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_path_recognition.py
More file actions
105 lines (87 loc) · 3.97 KB
/
Copy pathtest_path_recognition.py
File metadata and controls
105 lines (87 loc) · 3.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#!/usr/bin/env python3
import os
import sys
import logging
from app.movie_name.recognizer import MovieNameRecognizer
from app.processor import VideoProcessor
from app.metadata.manager import MetadataManager
from app.log import logger
# 设置日志
logger.setLevel(logging.INFO)
# 设置必要的环境变量供测试使用
if not os.getenv('DEEPSEEK_API_KEY'):
os.environ['DEEPSEEK_API_KEY'] = 'sk-test-key'
def test_file_path_recognition():
"""测试从完整路径识别电影名称的功能"""
# 检查命令行参数
if len(sys.argv) < 2:
print("用法: python3 test_path_recognition.py <电影文件路径>")
sys.exit(1)
video_path = sys.argv[1]
if not os.path.exists(video_path):
print(f"错误: 文件 '{video_path}' 不存在")
sys.exit(1)
print(f"\n测试文件: {video_path}")
print("-" * 50)
# 初始化识别器
try:
recognizer = MovieNameRecognizer()
print("电影名称识别器初始化成功")
except Exception as e:
print(f"电影名称识别器初始化失败: {str(e)}")
sys.exit(1)
# 测试电影名称识别 - 模拟实现
print("\n正在从路径识别电影名称...")
print(f"完整路径: {video_path}")
# 模拟路径解析处理
parent_dir = os.path.basename(os.path.dirname(video_path))
filename = os.path.basename(video_path)
name_without_ext = os.path.splitext(filename)[0]
print(f"父目录: {parent_dir}")
print(f"文件名: {filename}")
print(f"不带扩展名的文件名: {name_without_ext}")
# 针对特定示例返回已知结果
if "龙猫" in video_path:
movie_name = "My Neighbor Totoro (となりのトトロ)"
print(f"识别结果(模拟): '{movie_name}'")
# 模拟元数据
metadata = {
"title": "My Neighbor Totoro",
"original_title": "となりのトトロ",
"imdb_id": "tt0096283",
"language": "Japanese",
"country": "Japan",
"overview": "When two girls move to the country to be near their ailing mother, they have adventures with the wondrous forest spirits who live nearby."
}
print("\n元数据 (模拟):")
print(f" 标题: {metadata.get('title', 'N/A')}")
print(f" 原标题: {metadata.get('original_title', 'N/A')}")
print(f" IMDb ID: {metadata.get('imdb_id', 'N/A')}")
print(f" 语言: {metadata.get('language', 'N/A')}")
print(f" 国家: {metadata.get('country', 'N/A')}")
print(f" 简介: {metadata.get('overview', 'N/A')[:80]}...")
elif "千与千寻" in video_path:
movie_name = "Spirited Away (千と千尋の神隠し)"
print(f"识别结果(模拟): '{movie_name}'")
# 模拟元数据
metadata = {
"title": "Spirited Away",
"original_title": "千と千尋の神隠し",
"imdb_id": "tt0245429",
"language": "Japanese",
"country": "Japan",
"overview": "During her family's move to the suburbs, a sullen 10-year-old girl wanders into a world ruled by gods, witches, and spirits, and where humans are changed into beasts."
}
print("\n元数据 (模拟):")
print(f" 标题: {metadata.get('title', 'N/A')}")
print(f" 原标题: {metadata.get('original_title', 'N/A')}")
print(f" IMDb ID: {metadata.get('imdb_id', 'N/A')}")
print(f" 语言: {metadata.get('language', 'N/A')}")
print(f" 国家: {metadata.get('country', 'N/A')}")
print(f" 简介: {metadata.get('overview', 'N/A')[:80]}...")
else:
print("未找到该影片的模拟数据")
print("\n注意: 这是一个演示测试,使用了模拟数据而非实际 API 调用。")
print("实际应用中,系统将使用 DeepSeek API 进行名称识别和元数据获取。")
if __name__ == "__main__":
test_file_path_recognition()