-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathuseragent.go
More file actions
54 lines (45 loc) · 1.75 KB
/
useragent.go
File metadata and controls
54 lines (45 loc) · 1.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
// Package useragent 提供解析和生成 User-Agent 字符串的功能。
//
// 此包提供高级 API 用于:
// - 解析 User-Agent 字符串以提取浏览器、操作系统和设备信息
// - 生成具有可自定义选项的真实 User-Agent 字符串
// - 支持特定和随机 User-Agent 生成
//
// 主要入口点是 Parse() 和 Generate() 函数,用于常见操作。
package useragent
import (
"github.com/sohaha/zlsgo/zutil"
"github.com/zlsgo/useragent/generator"
"github.com/zlsgo/useragent/parser"
"github.com/zlsgo/useragent/types"
)
var defaultParser = zutil.Once(func() types.Parser {
return parser.New()
})
var defaultGenerator = zutil.Once(func() types.Generator {
return generator.New()
})
// Parse 解析 User-Agent 字符串并返回关于浏览器、操作系统和设备的详细信息。
func Parse(ua string) (types.Result, error) {
return defaultParser().Parse(ua)
}
// ParseBrowser 解析 User-Agent 字符串并仅返回浏览器信息。
func ParseBrowser(ua string) (types.BrowserInfo, error) {
return defaultParser().ParseBrowser(ua)
}
// ParseOS 解析 User-Agent 字符串并仅返回操作系统信息。
func ParseOS(ua string) (types.OSInfo, error) {
return defaultParser().ParseOS(ua)
}
// ParseDevice 解析 User-Agent 字符串并仅返回设备信息。
func ParseDevice(ua string) (types.DeviceInfo, error) {
return defaultParser().ParseDevice(ua)
}
// Generate 根据提供的选项生成 User-Agent 字符串。
func Generate(options types.Options) (string, error) {
return defaultGenerator().Generate(options)
}
// GenerateRand 为指定的设备类型生成随机 User-Agent 字符串。
func GenerateRand(deviceType ...types.DeviceType) (string, error) {
return defaultGenerator().GenerateRand(deviceType...)
}