Help us shape the future of Go! Take the 2026 Go Developer Survey

fakeuseragent

package module
v0.0.0-...-a4f0091 Latest Latest
Warning

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

Go to latest
Published: Dec 10, 2024 License: MIT Imports: 6 Imported by: 0

README

fake-useragent

A fake user agent generator for Go language.

Installation

go get -u github.com/zengxs/fake-useragent

Usage

Basic Usage
package main

import (
    "fmt"
    fakeua "github.com/zengxs/fake-useragent"
)

func main() {
    ua := fakeua.New()
    fmt.Println(ua.Random())
}
With Filters
import (
    "fmt"
    fakeua "github.com/zengxs/fake-useragent"
)

ua := fakeua.NewUserAgentGenerator(
    fakeua.WithTagFilters(
        fakeua.TagDesktop,
        fakeua.TagChrome,
        fakeua.TagSafari,
        fakeua.TagFirefox,
        fakeua.TagMSEdge,
    ),
    fakeua.WithFilterMode(fakeua.FilterModeInclude),  // only user-agents with specified tags will be included
)

fmt.Println(ua.Random())

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrDatabaseIsEmpty = errors.New("database is empty")
	ErrNewOptions      = errors.New("failed to create new options")
)

Functions

This section is empty.

Types

type FilterMode

type FilterMode int
const (
	FilterModeInclude FilterMode = iota
	FilterModeExclude
)

type OptionSetter

type OptionSetter func(*Options)

func WithDatabase

func WithDatabase(database []UserAgent) OptionSetter

WithDatabase sets your own database of user agents to randomize

func WithFilterMode

func WithFilterMode(mode FilterMode) OptionSetter

WithFilterMode sets a mode to filter user agents

func WithTagFilters

func WithTagFilters(tags ...UserAgentTag) OptionSetter

WithTagFilters sets tags to filter user agents

type Options

type Options struct {
	// Database is full list of user agents
	Database []UserAgent

	// TagFilters is a list of tags to filter user agents
	TagFilters []UserAgentTag

	// FilterMode is a mode to filter user agents
	FilterMode FilterMode
}

func NewOptions

func NewOptions(opts ...OptionSetter) (*Options, error)

NewOptions creates a new options with default values and user options

type UserAgent

type UserAgent struct {
	Value string   `yaml:"ua"`
	Tags  []string `yaml:"tags"`
}

func (UserAgent) HasTag

func (ua UserAgent) HasTag(tag UserAgentTag) bool

func (UserAgent) String

func (ua UserAgent) String() string

type UserAgentGenerator

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

func NewUserAgentGenerator

func NewUserAgentGenerator(opts ...OptionSetter) (*UserAgentGenerator, error)

func (*UserAgentGenerator) Random

func (gen *UserAgentGenerator) Random() UserAgent

type UserAgentTag

type UserAgentTag string
var (
	// platforms
	TagDesktop UserAgentTag = "desktop"
	TagMobile  UserAgentTag = "mobile"
	TagTablet  UserAgentTag = "tablet"
	// browsers
	TagChrome  UserAgentTag = "chrome"
	TagChroium UserAgentTag = "chromium"
	TagSafari  UserAgentTag = "safari"
	TagFirefox UserAgentTag = "firefox"
	TagMSEdge  UserAgentTag = "msedge"
	TagMSIE    UserAgentTag = "msie"
	TagBrave   UserAgentTag = "brave"
	TagYandex  UserAgentTag = "yandex"
	// operating systems
	TagWindows  UserAgentTag = "windows"
	TagMacOS    UserAgentTag = "macos"
	TagLinux    UserAgentTag = "linux"
	TagAndroid  UserAgentTag = "android"
	TagIOS      UserAgentTag = "ios"
	TagChromeOS UserAgentTag = "chromeos"
)

Jump to

Keyboard shortcuts

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