65 lines
1.3 KiB
Go
65 lines
1.3 KiB
Go
package xbox_game_bar
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
"os"
|
|
"strings"
|
|
|
|
exiftool "github.com/barasher/go-exiftool"
|
|
"github.com/rwcarlsen/goexif/exif"
|
|
)
|
|
|
|
func getExifTagsWithOld(path string) error {
|
|
fileDescriptor, errFileDescriptor := os.Open(path)
|
|
if errFileDescriptor != nil {
|
|
return fmt.Errorf("Couldn't open file %s: %s", path, errFileDescriptor)
|
|
}
|
|
|
|
exifData, errExifData := exif.Decode(fileDescriptor)
|
|
if errExifData != nil {
|
|
return fmt.Errorf("Decoding EXIF data from %s: %s", path, errExifData)
|
|
}
|
|
|
|
defer fileDescriptor.Close()
|
|
|
|
t, _ := exifData.MarshalJSON()
|
|
log.Println(t)
|
|
|
|
titleTag := "Title"
|
|
if strings.Contains(path, ".png") {
|
|
titleTag = "Microsoft Game DVR Title"
|
|
}
|
|
title, err := exifData.Get(exif.FieldName(titleTag))
|
|
if err != nil {
|
|
return fmt.Errorf("Error getting tag %s from %s: %s", titleTag, path, errExifData)
|
|
}
|
|
|
|
log.Println(title)
|
|
|
|
return nil
|
|
}
|
|
|
|
func getExifTags(path string) error {
|
|
et, err := exiftool.NewExiftool()
|
|
if err != nil {
|
|
fmt.Printf("Error when intializing: %v\n", err)
|
|
return nil
|
|
}
|
|
defer et.Close()
|
|
|
|
fileInfos := et.ExtractMetadata(path)
|
|
|
|
for _, fileInfo := range fileInfos {
|
|
if fileInfo.Err != nil {
|
|
fmt.Printf("Error concerning %v: %v\n", fileInfo.File, fileInfo.Err)
|
|
continue
|
|
}
|
|
|
|
log.Println(fileInfo.GetString("MicrosoftGameDVRTitle"))
|
|
log.Println(fileInfo.GetString("Title"))
|
|
|
|
}
|
|
return nil
|
|
}
|