58 lines
1005 B
Go
58 lines
1005 B
Go
package utility
|
|
|
|
import (
|
|
"log/slog"
|
|
"os"
|
|
"strings"
|
|
)
|
|
|
|
type MediaType string
|
|
|
|
const (
|
|
Video MediaType = "video"
|
|
Presentation MediaType = "presentation"
|
|
Internet MediaType = "internet"
|
|
Unspecified MediaType = "unspecified"
|
|
)
|
|
|
|
func RemoveFile(p string) error {
|
|
err := os.Remove(p)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
// 0: unspecified
|
|
// 1: video
|
|
// 2: presentation
|
|
// 3: internet URL
|
|
func CategorizeMediaType(ext string) (MediaType, bool) {
|
|
|
|
switch ext {
|
|
case ".mp4", ".mov", ".avi", ".mkv", ".webm", ".m4a":
|
|
return Video, true
|
|
case ".pptx", ".ppt", ".key", ".odp":
|
|
return Presentation, true
|
|
default:
|
|
slog.Debug("marking file as invalid due to its undefined extension")
|
|
return "", false
|
|
}
|
|
}
|
|
|
|
func ParseSlogLevel(s string) slog.Level {
|
|
switch strings.ToLower(s) {
|
|
case "debug":
|
|
return slog.LevelDebug
|
|
case "warn", "warning":
|
|
return slog.LevelWarn
|
|
case "error":
|
|
return slog.LevelError
|
|
case "info":
|
|
fallthrough
|
|
default:
|
|
return slog.LevelInfo
|
|
}
|
|
}
|