Documentation ¶
Index ¶
- Constants
- Variables
- 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 FindDuplicates ¶ added in v0.7.0
func GetBase64StringFromData ¶
GetBase64StringFromData returns the given byte slice as a base64 encoded string
func GetDataFromBase64String ¶
GetDataFromBase64String returns the given base64 encoded string as a byte slice
func GetVTTTime ¶
GetVTTTime returns a timestamp appropriate for VTT files (hh:mm:ss.mmm)
func GetYMDFromDatabaseDate ¶
func NotNilFields ¶ added in v0.11.0
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 PhashToString ¶ added in v0.7.0
func ProcessBase64Image ¶
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
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
ReadImageFromURL returns image data from a URL
func ServeImage ¶ added in v0.3.0
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
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 StrFormatMap ¶ added in v0.8.0
type StrFormatMap map[string]interface{}