60 lines
1.5 KiB
Go
60 lines
1.5 KiB
Go
package nomino_test
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"codeberg.org/danjones000/nomino"
|
|
)
|
|
|
|
// Define a global Config.
|
|
func NominoConfig() nomino.Config {
|
|
return nomino.NewConfig(
|
|
nomino.WithSeparator("-"),
|
|
nomino.WithPrefix("upload"),
|
|
nomino.WithGenerator(nomino.UUID(
|
|
nomino.UUIDv7,
|
|
)),
|
|
)
|
|
}
|
|
|
|
// HandleImgUploads generates new filenames for images with a png extension.
|
|
func HandleImgUploads(orig string) string {
|
|
// Here, we use nomino.Make function to generate the filename.
|
|
// We use our global config, and add in a few extra Options specific to this.
|
|
newName, _ := nomino.Make(
|
|
NominoConfig(),
|
|
nomino.WithExtension("png"),
|
|
nomino.WithOriginalSlug(orig),
|
|
)
|
|
|
|
return newName
|
|
}
|
|
|
|
// HandleVidUploads generates a new filename for videos.
|
|
// We ignore the original filename and use a timestamp for the generated part
|
|
// with a webm extension.
|
|
func HandleVidUploads() string {
|
|
// Because we're using a different Generator, we chose to use the Make method on the Generator.
|
|
// We add in additional Options with the `AddOptions` method on the `Config`
|
|
newName, _ := nomino.Timestamp(nomino.TimestampUTC()).
|
|
MakeWithConfig(NominoConfig().AddOptions(
|
|
nomino.WithExtension("webm"),
|
|
))
|
|
return newName
|
|
}
|
|
|
|
// This example shows how to use nomino.
|
|
func Example() {
|
|
// Pretend we have an image upload
|
|
filename := "George"
|
|
uploadImgName := HandleImgUploads(filename)
|
|
|
|
// Upload to storage
|
|
fmt.Println(uploadImgName)
|
|
|
|
// New Video Upload
|
|
uploadVidName := HandleVidUploads()
|
|
|
|
// Upload to storage
|
|
fmt.Println(uploadVidName)
|
|
}
|