@@ -12,6 +12,18 @@ import (
12
12
"strings"
13
13
)
14
14
15
+ const (
16
+ defaultUserAgent = "writeas-cli v" + version
17
+ )
18
+
19
+ func userAgent (c * cli.Context ) string {
20
+ ua := c .String ("user-agent" )
21
+ if ua == "" {
22
+ return defaultUserAgent
23
+ }
24
+ return ua + " (" + defaultUserAgent + ")"
25
+ }
26
+
15
27
func client (read , tor bool , path , query string ) (string , * http.Client ) {
16
28
var u * url.URL
17
29
var client * http.Client
@@ -34,13 +46,13 @@ func client(read, tor bool, path, query string) (string, *http.Client) {
34
46
35
47
// DoFetch retrieves the Write.as post with the given friendlyID,
36
48
// optionally via the Tor hidden service.
37
- func DoFetch (friendlyID string , tor bool ) error {
49
+ func DoFetch (friendlyID , ua string , tor bool ) error {
38
50
path := friendlyID
39
51
40
52
urlStr , client := client (true , tor , path , "" )
41
53
42
54
r , _ := http .NewRequest ("GET" , urlStr , nil )
43
- r .Header .Add ("User-Agent" , "writeas-cli v" + version )
55
+ r .Header .Add ("User-Agent" , ua )
44
56
45
57
resp , err := client .Do (r )
46
58
if err != nil {
@@ -76,7 +88,7 @@ func DoPost(c *cli.Context, post []byte, font string, encrypt, tor, code bool) e
76
88
urlStr , client := client (false , tor , "" , "" )
77
89
78
90
r , _ := http .NewRequest ("POST" , urlStr , bytes .NewBufferString (data .Encode ()))
79
- r .Header .Add ("User-Agent" , "writeas-cli v" + version )
91
+ r .Header .Add ("User-Agent" , userAgent ( c ) )
80
92
r .Header .Add ("Content-Type" , "application/x-www-form-urlencoded" )
81
93
r .Header .Add ("Content-Length" , strconv .Itoa (len (data .Encode ())))
82
94
@@ -130,7 +142,7 @@ func DoUpdate(c *cli.Context, post []byte, friendlyID, token, font string, tor,
130
142
}
131
143
132
144
r , _ := http .NewRequest ("POST" , urlStr , bytes .NewBufferString (data .Encode ()))
133
- r .Header .Add ("User-Agent" , "writeas-cli v" + version )
145
+ r .Header .Add ("User-Agent" , userAgent ( c ) )
134
146
r .Header .Add ("Content-Type" , "application/x-www-form-urlencoded" )
135
147
r .Header .Add ("Content-Length" , strconv .Itoa (len (data .Encode ())))
136
148
@@ -161,7 +173,7 @@ func DoDelete(c *cli.Context, friendlyID, token string, tor bool) error {
161
173
urlStr , client := client (false , tor , friendlyID , fmt .Sprintf ("t=%s" , token ))
162
174
163
175
r , _ := http .NewRequest ("DELETE" , urlStr , nil )
164
- r .Header .Add ("User-Agent" , "writeas-cli v" + version )
176
+ r .Header .Add ("User-Agent" , userAgent ( c ) )
165
177
r .Header .Add ("Content-Type" , "application/x-www-form-urlencoded" )
166
178
167
179
resp , err := client .Do (r )
0 commit comments