summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/corpix/uarand/uarand.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/corpix/uarand/uarand.go')
-rw-r--r--vendor/github.com/corpix/uarand/uarand.go41
1 files changed, 41 insertions, 0 deletions
diff --git a/vendor/github.com/corpix/uarand/uarand.go b/vendor/github.com/corpix/uarand/uarand.go
new file mode 100644
index 000000000..04f9247c2
--- /dev/null
+++ b/vendor/github.com/corpix/uarand/uarand.go
@@ -0,0 +1,41 @@
+package uarand
+
+import (
+ "math/rand"
+ "time"
+)
+
+var (
+ // Default is the UARand with default settings.
+ Default = New(
+ rand.New(
+ rand.NewSource(time.Now().UnixNano()),
+ ),
+ )
+)
+
+// Randomizer represents some entity which could provide us an entropy.
+type Randomizer interface {
+ Seed(n int64)
+ Intn(n int) int
+}
+
+// UARand describes the user agent randomizer settings.
+type UARand struct {
+ Randomizer
+}
+
+// GetRandom returns a random user agent from UserAgents slice.
+func (u *UARand) GetRandom() string {
+ return UserAgents[u.Intn(len(UserAgents))]
+}
+
+// GetRandom returns a random user agent from UserAgents slice.
+// This version is driven by Default configuration.
+func GetRandom() string {
+ return Default.GetRandom()
+}
+
+func New(r Randomizer) *UARand {
+ return &UARand{r}
+}