-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcapcut_test.go
More file actions
74 lines (63 loc) · 1.93 KB
/
capcut_test.go
File metadata and controls
74 lines (63 loc) · 1.93 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
package main
import (
"comic/pkg/capcut"
"fmt"
"io/ioutil"
"os"
"path/filepath"
"sort"
"strings"
"testing"
"go.uber.org/zap"
)
func TestCapcut(t *testing.T) {
// TODO: test Capcut
// 初始化日志记录器
logger, _ := zap.NewProduction()
defer logger.Sync()
// 初始化CapCut生成器
fmt.Println("初始化CapCut项目生成器...")
capcutGen := capcut.NewCapcutGenerator(logger)
// 指定下载图片目录
outputDir := "./downloaded_images"
// 检查目录是否存在
if _, err := os.Stat(outputDir); os.IsNotExist(err) {
fmt.Printf("目录 %s 不存在\n", outputDir)
return
}
// 获取所有图片和音频文件
files, err := ioutil.ReadDir(outputDir)
if err != nil {
fmt.Printf("读取下载目录失败: %v\n", err)
return
}
// 分离图片和音频文件
var imageFiles []string
var audioFiles []string
for _, file := range files {
filename := file.Name()
filePath := filepath.Join(outputDir, filename)
if strings.HasSuffix(strings.ToLower(filename), ".jpg") ||
strings.HasSuffix(strings.ToLower(filename), ".png") ||
strings.HasSuffix(strings.ToLower(filename), ".jpeg") {
imageFiles = append(imageFiles, filePath)
} else if strings.HasSuffix(strings.ToLower(filename), ".wav") ||
strings.HasSuffix(strings.ToLower(filename), ".mp3") {
audioFiles = append(audioFiles, filePath)
}
}
fmt.Printf("找到 %d 张图片和 %d 个音频文件\n", len(imageFiles), len(audioFiles))
// 按文件名排序以确保图片和音频文件的顺序匹配
sort.Strings(imageFiles)
sort.Strings(audioFiles)
// 生成剪映项目
fmt.Println("开始生成剪映项目...")
err = capcutGen.GenerateProject(outputDir)
if err != nil {
fmt.Printf("生成剪映项目失败: %v\n", err)
} else {
fmt.Printf("成功生成剪映项目: %s\n", outputDir)
fmt.Printf("项目已保存到: %s/capcut_project\n", outputDir)
fmt.Println("请在剪映中导入项目文件夹以查看内容")
}
}