diff --git a/scanner/scanner.go b/scanner/scanner.go index 1ff5bd9..eb5c420 100644 --- a/scanner/scanner.go +++ b/scanner/scanner.go @@ -22,7 +22,7 @@ type ( Metadata struct { Title string `toml:"title"` Part int `toml:"part"` - Date string `toml:"date"` + Date toml.LocalDate `toml:"date"` Tags []string `toml:"tags"` FootageDir string `toml:"footage_dir"` Uploaded bool `toml:"uploaded"` @@ -107,20 +107,20 @@ func ReadMetadata(directory string) (*Metadata, error) { } func WriteMetadata(directory string, metadata *Metadata) (error) { - file, err := os.OpenFile( - path.Join(directory, METADATA_FILENAME), - os.O_CREATE | os.O_RDWR, 0644, - ) + data, err := toml.Marshal(metadata) if err != nil { return err } - - err = toml.NewEncoder(file).Encode(metadata) + err = os.WriteFile(path.Join(directory, METADATA_FILENAME), data, 0644) return err } func DefaultMetadata() *Metadata { return &Metadata{ Title: "Untitled Stream", - Date: time.Now().Format("2006-01-02"), + Date: toml.LocalDate{ + Year: time.Now().Year(), + Month: int(time.Now().Month()), + Day: time.Now().Day(), + }, Part: 0, Category: &Category{ Name: "Something", diff --git a/youtube/youtube.go b/youtube/youtube.go index c6ace15..f3f1873 100644 --- a/youtube/youtube.go +++ b/youtube/youtube.go @@ -47,11 +47,6 @@ type ( ) func BuildVideo(metadata *scanner.Metadata) (*Video, error) { - videoDate, err := time.Parse("2006-01-02", metadata.Date) - if err != nil { - return nil, fmt.Errorf("failed to parse date from metadata: %v", err) - } - var category *Category = nil if metadata.Category != nil { category = &Category{ @@ -68,13 +63,13 @@ func BuildVideo(metadata *scanner.Metadata) (*Video, error) { Title: metadata.Title, Category: category, Part: metadata.Part, - Date: videoDate, + Date: metadata.Date.AsTime(time.UTC), Tags: metadata.Tags, Filename: path.Join( metadata.FootageDir, fmt.Sprintf( "%s-fullvod.mkv", - videoDate.Format("2006-01-02"), + metadata.Date.String(), )), }, nil }