- 新增ReadPsdImage函数支持PSD/PSB格式图片信息读取 - 修改文件扫描逻辑,将视频处理改为媒体候选处理,使用ffprobe统一判定 - 添加对PSB格式的支持,与PSD共享相同8BPS文件头处理 - 重构handle_image.go中的图片处理逻辑,优化错误处理和记录保存 - 更新文件扫描过滤规则,支持更多图片格式并跳过数据库文件 - 添加文件MD5计算功能用于文件唯一性标识 - 修改媒体处理流程,支持音频文件识别和分类处理 - 移除废弃的视频时长转换函数和相关依赖 - 更新依赖版本并添加SQLite支持用于媒体信息存储
52 lines
1.4 KiB
Go
52 lines
1.4 KiB
Go
package main
|
|
|
|
import (
|
|
_ "embed"
|
|
"fmt"
|
|
_ "image/gif" // 导入gif支持
|
|
_ "image/jpeg" // 导入jpeg支持
|
|
_ "image/png" // 导入png支持
|
|
"kenaito-media-picker/core"
|
|
"kenaito-media-picker/store"
|
|
"kenaito-media-picker/util"
|
|
"kenaito-media-picker/vars"
|
|
"os"
|
|
"path/filepath"
|
|
"time"
|
|
)
|
|
|
|
func main() {
|
|
fmt.Println("=== 警告:该程序会改变目录结构,将在5秒后开始执行")
|
|
time.Sleep(time.Second * 5)
|
|
rootDir, err := os.Getwd()
|
|
if err != nil {
|
|
fmt.Println("=== 获取当前路径异常", err)
|
|
return
|
|
}
|
|
pickerDir := filepath.Join(rootDir, filepath.Base(rootDir)+"-picker")
|
|
vars.GlobalPickerDir = pickerDir
|
|
fmt.Printf("=== 整理输出目录(白名单): %s \n", pickerDir)
|
|
scanner := core.FileScanner{}
|
|
scanner.DoScan(rootDir)
|
|
scanner.DoFilter()
|
|
// 初始化媒体信息数据库(失败不影响整理,仅无法记录)
|
|
if err := store.Init(filepath.Join(rootDir, store.DBFileName)); err != nil {
|
|
fmt.Println("=== 初始化数据库失败(继续整理, 不记录媒体信息):", err)
|
|
}
|
|
defer store.Close()
|
|
if len(vars.GlobalImagePathList) > 0 || len(vars.GlobalMediaPathList) > 0 {
|
|
if err := util.ReleaseFFprobe(); err != nil {
|
|
fmt.Println("=== 释放解码器失败, 5秒后将自动退出", err)
|
|
time.Sleep(time.Second * 5)
|
|
return
|
|
}
|
|
}
|
|
if len(vars.GlobalImagePathList) > 0 {
|
|
core.DoHandleImage(pickerDir)
|
|
}
|
|
if len(vars.GlobalMediaPathList) > 0 {
|
|
core.DoHandleMedia(pickerDir)
|
|
}
|
|
util.RemoveFFprobe()
|
|
}
|