@@ -16,6 +16,19 @@ import (
16
16
"github.com/mileusna/useragent"
17
17
)
18
18
19
+ var DefaultBypassUserAgentNames = []string {
20
+ useragent .Opera ,
21
+ useragent .OperaMini ,
22
+ useragent .OperaTouch ,
23
+ useragent .Chrome ,
24
+ useragent .HeadlessChrome ,
25
+ useragent .Firefox ,
26
+ useragent .InternetExplorer ,
27
+ useragent .Safari ,
28
+ useragent .Edge ,
29
+ useragent .Vivaldi ,
30
+ }
31
+
19
32
type Bartender struct {
20
33
addr string
21
34
target * url.URL
@@ -35,32 +48,18 @@ func New(addr, target string, poolSize int) *Bartender {
35
48
proxy := httputil .NewSingleHostReverseProxy (u )
36
49
37
50
return & Bartender {
38
- addr : addr ,
39
- target : u ,
40
- proxy : proxy ,
41
- bypassList : map [string ]bool {
42
- useragent .Opera : true ,
43
- useragent .OperaMini : true ,
44
- useragent .OperaTouch : true ,
45
- useragent .Chrome : true ,
46
- useragent .HeadlessChrome : true ,
47
- useragent .Firefox : true ,
48
- useragent .InternetExplorer : true ,
49
- useragent .Safari : true ,
50
- useragent .Edge : true ,
51
- useragent .Vivaldi : true ,
52
- },
51
+ addr : addr ,
52
+ target : u ,
53
+ proxy : proxy ,
54
+ bypassList : strToMap (DefaultBypassUserAgentNames ),
53
55
pool : rod .NewPagePool (poolSize ),
54
56
blockRequests : []string {},
55
57
maxWait : 3 * time .Second ,
56
58
}
57
59
}
58
60
59
61
func (b * Bartender ) BypassUserAgentNames (list ... string ) {
60
- b .bypassList = map [string ]bool {}
61
- for _ , ua := range list {
62
- b .bypassList [ua ] = true
63
- }
62
+ b .bypassList = strToMap (list )
64
63
}
65
64
66
65
func (b * Bartender ) BlockRequests (patterns ... string ) {
@@ -198,3 +197,12 @@ func getHeader(ctx context.Context, u string) (int, http.Header) {
198
197
func htmlContentType (h http.Header ) bool {
199
198
return strings .Contains (h .Get ("Content-Type" ), "text/html" )
200
199
}
200
+
201
+ func strToMap (list []string ) map [string ]bool {
202
+ m := map [string ]bool {}
203
+ for _ , s := range list {
204
+ m [s ] = true
205
+ }
206
+
207
+ return m
208
+ }
0 commit comments