utils

package
v0.24.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 29, 2023 License: AGPL-3.0 Imports: 17 Imported by: 1

Documentation

Index

Examples

Constants

View Source
const FirefoxLinux = "Mozilla/5.0 (X11; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0"
View Source
const FirefoxLinuxArm = "Mozilla/5.0 (X11; Linux armv7l; rv:86.0) Gecko/20100101 Firefox/86.0"
View Source
const FirefoxLinuxArm64 = "Mozilla/5.0 (X11; Linux aarch64; rv:86.0) Gecko/20100101 Firefox/86.0"
View Source
const FirefoxWindows = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0"
View Source
const Safari = "" /* 131-byte string literal not displayed */

valid UA from https://user-agents.net

Variables

View Source
var PendingGenerateResource, _ = GetDataFromBase64String("iVBORw0KGgoAAAANSUhEUgAAAfQAAADwBAMAAAAEHosbAAAAG1BMVEUAAADMzMyZmZkzMzNmZmZ/f38ZGRmysrJMTEwh+DPkAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEOklEQVR4nO3YzW/bNhjHcfpN9jGP8iIfI2xrdrQLrLs67Zpdo21pelTWdbnGSTPvaBdosT+7z8OXxAFkIDu0Vrfv59AmpEjoJ1IkFecAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMC/JCqfNNV0Dja1GR0Vv36+O/piLLrsNdVo9EyaKnpzbfLkMZ1vfnptIGdnZ6XUDTUbo0+lOJKiqUlDFy1mqbP5aUPNpujZfK92b6WpSUMXLeYHfHXVULPpvvtiS0P1mFRfQfSLnYaaTffd8SvDsHF9eGQX7eCj2y2+n79z9hCeFq/0/7fzJ2HCp4LsPJ+EJWHln1P/1vmlfqZV0itvrSp0IX9WS9c/yk9cV2Q3lbaQjzPdcQNdtQ81+lhsBevpbxcheihwlyIHIXp1/5ZXujFa9JXIXy51Ib/L0s2tlY8eS1vIx6mu3HHxU7mv0eWbni56Q/mtLEP0UODK/GUeopez1LYv757rcpfpweBHbRu7kEqWA3n9QU570/GzVNpCFucHmWUycyP9+aLwM3q6q7+F6KEg05FchejzZWp7oe/7yq660qtd6kLy2g3H+iSuwiYRSlvIH2mk7uvEdeXSp9GZXto4h+ihYKD13ZDAFvjS2rjjQy0c+3TZfRf6IKyFvUUaPZW2kE8+dl1bsI9n7mLXL3rzSRzPVKAJ0+DdR7ep39/TqyY2e1IXOj9cVvu5Yg1jaQvJYrH4TmeofwSnfrj0hi3kNEQPBcNdW85qa2ET/nyx0F/sQCv7oVzq1IXf9t2bD+Kjp9IWiq9hx9/hod/hOwf+FBdXeF/gOg+jh4a+TR7OfFKnLvz58Fx/9NFTaQul6IWO/uJB9M56dBv1eG01s3/tOdiMWVzfRY9d2FWXkr8O73oqbaEYvRsPZzGplT4YdXvX46iHU+8ovuvOpeipC7uquvFdpXe9nWL0gW29b+qU1Ja56Xr0gSbohWtt4QvLvR1usmcpeurCrrKXIox6Km2hGL2v27eNYkxqk/p4PbrVD8K1A/+9apu87tw2qjF66sIvevrojndSw7VTUJvE6OHkMUlJp3ouna9Ht/ppuDaTGzvI2fnHjjS7KXrqwo/6TOfIji2OqbSF0kGrysNBNr7a+eSprEfX+pcSr13J7S8yLmudBt+Gg2zoJ3bh3/X9fyr9rB/mH1NpC6Xo3fj5EgdZt+wHE97q9+K1I9uullXtTzb53TKXuggrvBSXMhvo50u3rXvbXXT3vvje3UXXj9a/H2xuzv1cfEzX/jEvTtxKfxmV18v76LGLsK8Xs95imZU3qfTr1vyXuv+83gsd42Lbd7EVI/tyy7d9F1uRyateOd72XWyHfaY2/d32f8C2q1YeTD6/7Pn1ybbvAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAL+ITrOa6fKadMcEAAAAASUVORK5CYII=")

Functions

func Do added in v0.19.0

func Do(fn []func() error) error

Do executes each function in the slice in order. If any function returns an error, it is returned immediately.

func FindDuplicates added in v0.7.0

func FindDuplicates(hashes []*Phash, distance int, durationDiff float64) [][]int

func GenerateETag added in v0.21.0

func GenerateETag(data []byte) string

Returns an MD5 hash of data, formatted for use as an HTTP ETag header. Intended for use with `http.ServeContent`, to respond to conditional requests.

func GetBase64StringFromData

func GetBase64StringFromData(data []byte) string

GetBase64StringFromData returns the given byte slice as a base64 encoded string

func GetDataFromBase64String

func GetDataFromBase64String(encodedString string) ([]byte, error)

GetDataFromBase64String returns the given base64 encoded string as a byte slice

func GetVTTTime

func GetVTTTime(fracSeconds float64) string

GetVTTTime returns a timestamp appropriate for VTT files (hh:mm:ss.mmm)

func IsTrue added in v0.6.0

func IsTrue(b *bool) bool

IsTrue returns true if the bool pointer is not nil and true.

func NotNilFields added in v0.11.0

func NotNilFields(subject interface{}, tag string) []string

NotNilFields returns the matching tag values of fields from an object that are not nil. Panics if the provided object is not a struct.

func ParseDateStringAsTime

func ParseDateStringAsTime(dateString string) (time.Time, error)

func PhashToString added in v0.7.0

func PhashToString(phash int64) string

func ProcessBase64Image

func ProcessBase64Image(imageString string) ([]byte, error)

ProcessBase64Image transforms a base64 encoded string from a form post and returns the image itself as a byte slice.

func ProcessImageInput added in v0.6.0

func ProcessImageInput(ctx context.Context, imageInput string) ([]byte, error)

ProcessImageInput transforms an image string either from a base64 encoded string, or from a URL, and returns the image as a byte slice

func ReadImageFromURL added in v0.6.0

func ReadImageFromURL(ctx context.Context, url string) ([]byte, error)

ReadImageFromURL returns image data from a URL

func ServeImage added in v0.3.0

func ServeImage(w http.ResponseWriter, r *http.Request, image []byte)

func ServeStaticContent added in v0.21.0

func ServeStaticContent(w http.ResponseWriter, r *http.Request, data []byte)

Serves static content, adding Cache-Control: no-cache and a generated ETag header. Responds to conditional requests using the ETag.

func ServeStaticFile added in v0.21.0

func ServeStaticFile(w http.ResponseWriter, r *http.Request, filepath string)

Serves static content at filepath, adding Cache-Control: no-cache. Responds to conditional requests using the file modtime.

func StrFormat added in v0.8.0

func StrFormat(format string, m StrFormatMap) string

StrFormat formats the provided format string, replacing placeholders in the form of "{fieldName}" with the values in the provided StrFormatMap.

For example,

StrFormat("{foo} bar {baz}", StrFormatMap{
    "foo": "bar",
    "baz": "abc",
})

would return: "bar bar abc"

Example
fmt.Println(StrFormat("{foo} bar {baz}", StrFormatMap{
	"foo": "bar",
	"baz": "abc",
}))
Output:

bar bar abc

func StringToPhash added in v0.8.0

func StringToPhash(s string) (int64, error)

func StringerSliceToStringSlice added in v0.21.0

func StringerSliceToStringSlice[V fmt.Stringer](v []V) []string

StringerSliceToStringSlice converts a slice of fmt.Stringers to a slice of strings.

func Timeout added in v0.7.0

func Timeout(todo func(), waitTime time.Duration, onTimeout func(done chan struct{}))

Timeout executes the provided todo function, and waits for it to return. If the function does not return before the waitTime duration is elapsed, then onTimeout is executed, passing a channel that will be closed when the function returns.

Types

type MutexManager added in v0.11.0

type MutexManager struct {
	// contains filtered or unexported fields
}

MutexManager manages access to mutexes using a mutex type and key.

func NewMutexManager added in v0.11.0

func NewMutexManager() *MutexManager

NewMutexManager returns a new instance of MutexManager.

func (*MutexManager) Claim added in v0.11.0

func (csm *MutexManager) Claim(mutexType string, key string, done <-chan struct{})

Claim blocks until the mutex for the mutexType and key pair is available. The mutex is then claimed by the calling code until the provided done channel is closed.

type Phash added in v0.7.0

type Phash struct {
	SceneID   int     `db:"id"`
	Hash      int64   `db:"phash"`
	Duration  float64 `db:"duration"`
	Neighbors []int
	Bucket    int
}

type StrFormatMap added in v0.8.0

type StrFormatMap map[string]interface{}

type URLMap added in v0.24.0

type URLMap map[string]string

URLMap is a map of URL prefixes to filesystem locations

func (URLMap) GetFilesystemLocation added in v0.24.0

func (m URLMap) GetFilesystemLocation(url string) (newURL string, fsPath string)

GetFilesystemLocation returns the adjusted URL and the filesystem location

type ValueOnlyContext added in v0.8.0

type ValueOnlyContext struct {
	context.Context
}

func (ValueOnlyContext) Deadline added in v0.20.0

func (ValueOnlyContext) Deadline() (deadline time.Time, ok bool)

func (ValueOnlyContext) Done added in v0.20.0

func (ValueOnlyContext) Done() <-chan struct{}

func (ValueOnlyContext) Err added in v0.20.0

func (ValueOnlyContext) Err() error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL