Documentation
¶
Overview ¶
Example ¶
// Create a new parser. Initialize only once during application startup. ua := useragent.NewParser() // Example user-agent string. str := "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36" // Parse the user-agent string. agent := ua.Parse(str) // Access parsed information using agent fields. fmt.Println(agent.Browser()) // agents.BrowserChrome fmt.Println(agent.BrowserVersion()) // 118.0.0.0 fmt.Println(agent.OS()) // agents.OSWindows fmt.Println(agent.Device()) // agents.DeviceDesktop // Boolean helper functions. fmt.Println(agent.IsChrome()) // true fmt.Println(agent.IsFirefox()) // false fmt.Println(agent.IsWindows()) // true fmt.Println(agent.IsLinux()) // false fmt.Println(agent.IsDesktop()) // true fmt.Println(agent.IsTV()) // false fmt.Println(agent.IsBot()) // false // and many more... // Version helper functions. fmt.Println(agent.BrowserVersionMajor()) // 118 fmt.Println(agent.BrowserVersionMinor()) // 0 fmt.Println(agent.BrowserVersionPatch()) // 0.0
Output: Chrome 118.0.0.0 Windows Desktop true false true false true false false 118 0 0.0
Index ¶
- type MemoryStats
- type Parser
- type ResultStats
- type RuneTrie
- type UserAgent
- func (ua UserAgent) Browser() agents.Browser
- func (ua UserAgent) BrowserVersion() string
- func (ua UserAgent) BrowserVersionMajor() string
- func (ua UserAgent) BrowserVersionMinor() string
- func (ua UserAgent) BrowserVersionPatch() string
- func (ua UserAgent) Device() agents.Device
- func (ua UserAgent) GetBrowser() stringdeprecated
- func (ua UserAgent) GetDevice() stringdeprecated
- func (ua UserAgent) GetMajorVersion() stringdeprecated
- func (ua UserAgent) GetOS() stringdeprecated
- func (ua UserAgent) GetVersion() stringdeprecated
- func (ua UserAgent) IsAndroidBrowser() bool
- func (ua UserAgent) IsAndroidOS() bool
- func (ua UserAgent) IsBot() bool
- func (ua UserAgent) IsChrome() bool
- func (ua UserAgent) IsChromeOS() bool
- func (ua UserAgent) IsDesktop() bool
- func (ua UserAgent) IsEdge() bool
- func (ua UserAgent) IsFalkon() bool
- func (ua UserAgent) IsFirefox() bool
- func (ua UserAgent) IsIE() bool
- func (ua UserAgent) IsIOS() bool
- func (ua UserAgent) IsLinux() bool
- func (ua UserAgent) IsMacOS() bool
- func (ua UserAgent) IsMobile() bool
- func (ua UserAgent) IsNintendoBrowser() bool
- func (ua UserAgent) IsOpenBSD() bool
- func (ua UserAgent) IsOpera() bool
- func (ua UserAgent) IsOperaMini() bool
- func (ua UserAgent) IsSafari() bool
- func (ua UserAgent) IsSamsungBrowser() bool
- func (ua UserAgent) IsTV() bool
- func (ua UserAgent) IsTablet() bool
- func (ua UserAgent) IsVivaldi() bool
- func (ua UserAgent) IsWindows() bool
- func (ua UserAgent) IsYandexBrowser() bool
- func (ua UserAgent) OS() agents.OS
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type MemoryStats ¶ added in v1.2.1
type MemoryStats struct {
NodeSize int // Size of this node in bytes
ChildrenArrSize int // Memory used by children array
ResultSize int // Memory used by result slice
TotalSize int // Total memory for this node
ChildrenCount int // Number of children
ResultCount int // Number of result items
}
MemoryStats contains memory usage statistics for a trie node
type Parser ¶
type Parser struct {
Trie *RuneTrie
}
func NewParser ¶
func NewParser() *Parser
NewParser creates a new parser and populates it with the default embedded user agent data.
func NewParserWithFile ¶ added in v1.2.0
NewParserWithFile creates a new parser with user agent definitions loaded from a file.
The file should contain one user agent definition per line.
func NewParserWithURL ¶ added in v1.2.0
NewParserWithURL creates a new parser with user agent definitions loaded from a URL. It accepts a context for cancellation and timeout control.
The URL should serve content with one user agent definition per line.
type ResultStats ¶ added in v1.2.1
type RuneTrie ¶
type RuneTrie struct {
// contains filtered or unexported fields
}
RuneTrie is a trie of runes with string keys and interface{} values.
func (*RuneTrie) Get ¶
Get returns the value stored at the given key. Returns nil for internal nodes or for nodes with a value of nil.
func (*RuneTrie) GetMemoryStats ¶ added in v1.2.1
func (trie *RuneTrie) GetMemoryStats() MemoryStats
GetMemoryStats returns accurate memory usage statistics for this node.
func (*RuneTrie) GetTotalMemoryStats ¶ added in v1.2.1
func (trie *RuneTrie) GetTotalMemoryStats() ResultStats
GetTotalMemoryStats returns aggregate memory statistics for the entire trie
func (*RuneTrie) Put ¶
Put inserts the value into the trie at the given key, replacing any existing items. At the end of key tokens, a result is stored marking a potential match for a browser, device, or OS using the indexes provided by MatchTokenIndexes.
func (*RuneTrie) WalkMemoryStats ¶ added in v1.2.1
func (trie *RuneTrie) WalkMemoryStats(callback func(stats MemoryStats))
WalkMemoryStats walks the entire trie and calls the callback for each node
type UserAgent ¶
type UserAgent struct {
// contains filtered or unexported fields
}
func (UserAgent) Browser ¶ added in v1.1.0
Browser returns the browser name. If no browser is found, it returns an empty string.
func (UserAgent) BrowserVersion ¶ added in v1.1.0
BrowserVersion returns the browser version. If no version is found, it returns an empty string.
func (UserAgent) BrowserVersionMajor ¶ added in v1.1.0
BrowserVersionMajor returns the major version of the browser. If no version is found, it returns an empty string.
func (UserAgent) BrowserVersionMinor ¶ added in v1.1.0
BrowserVersionMinor returns the minor version of the browser. If no version is found, it returns an empty string.
func (UserAgent) BrowserVersionPatch ¶ added in v1.1.0
BrowserVersionPatch returns the patch version of the browser. If no version is found, it returns an empty string.
Note: The patch version may include a suffix (e.g., "1.2.3b").
func (UserAgent) GetBrowser
deprecated
func (UserAgent) GetMajorVersion
deprecated
func (UserAgent) GetVersion
deprecated
func (UserAgent) IsAndroidBrowser ¶ added in v1.1.0
IsAndroidBrowser returns true if the user agent is an Android browser.
func (UserAgent) IsAndroidOS ¶ added in v1.1.0
IsAndroidOS returns true if the user agent is an Android OS device.
func (UserAgent) IsChrome ¶ added in v1.1.0
IsChrome returns true if the user agent is a Chrome browser.
func (UserAgent) IsChromeOS ¶ added in v1.1.0
IsChromeOS returns true if the user agent is a Chrome OS device.
func (UserAgent) IsFalkon ¶ added in v1.1.0
IsFalkon returns true if the user agent is a Falkon browser.
func (UserAgent) IsFirefox ¶ added in v1.1.0
IsFirefox returns true if the user agent is a Firefox browser.
func (UserAgent) IsIE ¶ added in v1.1.0
IsIE returns true if the user agent is an Internet Explorer browser.
func (UserAgent) IsLinux ¶ added in v1.1.0
IsLinux returns true if the user agent is a Linux device.
func (UserAgent) IsMacOS ¶ added in v1.1.0
IsMacOS returns true if the user agent is a macOS device.
func (UserAgent) IsNintendoBrowser ¶ added in v1.1.0
IsNintendoBrowser returns true if the user agent is a Nintendo browser.
func (UserAgent) IsOpenBSD ¶ added in v1.1.0
IsOpenBSD returns true if the user agent is an OpenBSD device.
func (UserAgent) IsOpera ¶ added in v1.1.0
IsOpera returns true if the user agent is an Opera browser.
func (UserAgent) IsOperaMini ¶ added in v1.1.0
IsOperaMini returns true if the user agent is an Opera Mini browser.
func (UserAgent) IsSafari ¶ added in v1.1.0
IsSafari returns true if the user agent is a Safari browser.
func (UserAgent) IsSamsungBrowser ¶ added in v1.1.0
IsSamsungBrowser returns true if the user agent is a Samsung browser.
func (UserAgent) IsVivaldi ¶ added in v1.1.0
IsVivaldi returns true if the user agent is a Vivaldi browser.
func (UserAgent) IsWindows ¶ added in v1.1.0
IsWindows returns true if the user agent is a Windows device.
func (UserAgent) IsYandexBrowser ¶ added in v1.1.0
IsYandexBrowser returns true if the user agent is a Yandex browser.