From 0859cbeaff0683909ea21c69c18f4fa47e49e41e Mon Sep 17 00:00:00 2001 From: iawia002 Date: Wed, 7 Mar 2018 10:42:20 +0800 Subject: [PATCH] main: support specified Referrer --- README.md | 12 ++++++++++++ config/config.go | 2 ++ main.go | 1 + request/request.go | 3 +++ 4 files changed, 18 insertions(+) diff --git a/README.md b/README.md index 1f70709de..46ec5c1df 100644 --- a/README.md +++ b/README.md @@ -113,6 +113,16 @@ $ annie -c "name=value; name2=value2" https://www.bilibili.com/video/av20203945 $ annie -c cookies.txt https://www.bilibili.com/video/av20203945 ``` +### Use specified Referrer + +You can use the `-r` option to tell Annie to use the given Referrer to request. + +```console +$ annie -r https://www.bilibili.com/video/av20383055/ http://cn-scnc1-dx.acgvideo.com/... + +... +``` + ### Debug Mode You can use the `-d` option to see network request message. @@ -147,6 +157,8 @@ Usage of annie: -d Debug mode -i Information only -p Download playlist + -r string + Use specified Referrer -v Show version ``` diff --git a/config/config.go b/config/config.go index dd330585f..06d4c75b6 100644 --- a/config/config.go +++ b/config/config.go @@ -11,6 +11,8 @@ var ( Cookie string // Playlist download playlist Playlist bool + // Refer use specified Referrer + Refer string ) // FakeHeaders fake http headers diff --git a/main.go b/main.go index 39841a479..997c8107e 100644 --- a/main.go +++ b/main.go @@ -16,6 +16,7 @@ func init() { flag.BoolVar(&config.InfoOnly, "i", false, "Information only") flag.StringVar(&config.Cookie, "c", "", "Cookie") flag.BoolVar(&config.Playlist, "p", false, "Download playlist") + flag.StringVar(&config.Refer, "r", "", "Use specified Referrer") } func main() { diff --git a/request/request.go b/request/request.go index 33dacef42..848639374 100644 --- a/request/request.go +++ b/request/request.go @@ -49,6 +49,9 @@ func Request( for k, v := range headers { req.Header.Set(k, v) } + if config.Refer != "" { + req.Header.Set("Referer", config.Refer) + } res, err := client.Do(req) if err != nil { log.Print(url)