Documentation
¶
Index ¶
- Constants
- Variables
- func Do(fn []func() error) error
- func FindDuplicates(hashes []*Phash, distance int) [][]int
- func GetBase64StringFromData(data []byte) string
- func GetDataFromBase64String(encodedString string) ([]byte, error)
- func GetVTTTime(fracSeconds float64) string
- func GetYMDFromDatabaseDate(dateString string) string
- func IsTrue(b *bool) bool
- func NotNilFields(subject interface{}, tag string) []string
- func ParseDateStringAsFormat(dateString string, format string) (string, error)
- func ParseDateStringAsTime(dateString string) (time.Time, error)
- func PhashToString(phash int64) string
- func ProcessBase64Image(imageString string) ([]byte, error)
- func ProcessImageInput(ctx context.Context, imageInput string) ([]byte, error)
- func ReadImageFromURL(ctx context.Context, url string) ([]byte, error)
- func ServeImage(image []byte, w http.ResponseWriter, r *http.Request) error
- func StrFormat(format string, m StrFormatMap) string
- func StringToPhash(s string) (int64, error)
- func Timeout(todo func(), waitTime time.Duration, onTimeout func(done chan struct{}))
- type MutexManager
- type Phash
- type StrFormatMap
Examples ¶
Constants ¶
const FirefoxLinux = "Mozilla/5.0 (X11; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0"
const FirefoxLinuxArm = "Mozilla/5.0 (X11; Linux armv7l; rv:86.0) Gecko/20100101 Firefox/86.0"
const FirefoxLinuxArm64 = "Mozilla/5.0 (X11; Linux aarch64; rv:86.0) Gecko/20100101 Firefox/86.0"
const FirefoxWindows = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0"
const Safari = "" /* 131-byte string literal not displayed */
valid UA from https://user-agents.net
Variables ¶
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) [][]int
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 GetYMDFromDatabaseDate ¶
func GetYMDFromDatabaseDate(dateString string) string
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 ParseDateStringAsFormat ¶
func ParseDateStringAsFormat(dateString string, format string) (string, error)
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(image []byte, w http.ResponseWriter, r *http.Request) error
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 ¶
Output: bar bar abc
func StringToPhash ¶ added in v0.8.0
func StringToPhash(s string) (int64, error)
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.
type Phash ¶ added in v0.7.0
type Phash struct {
SceneID int `db:"id"`
Hash int64 `db:"phash"`
Neighbors []int
Bucket int
}
type StrFormatMap ¶ added in v0.8.0
type StrFormatMap map[string]interface{}