diff --git a/pkg/network/network.go b/pkg/network/network.go index f8b3ff42..3ac3b1fa 100755 --- a/pkg/network/network.go +++ b/pkg/network/network.go @@ -17,7 +17,7 @@ import ( ) //Curl make a http request -func Curl(url string, addheader []string) ([]byte, error) { +func Curl(url string, addheader map[string]string) ([]byte, error) { ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second) defer cancel() @@ -30,10 +30,13 @@ func Curl(url string, addheader []string) ([]byte, error) { if err != nil { return nil, err } + request.Header.Set("cache-control", "no-cache") request.Header.Set("User-Agent", RandomAgent()) - if addheader != nil { - request.Header.Set(addheader[0], addheader[1]) + if len(addheader) > 0 { + for k, v := range addheader { + request.Header.Set(k, v) + } } response, err := spaceClient.Do(request.WithContext(ctx)) @@ -62,54 +65,50 @@ func Curl(url string, addheader []string) ([]byte, error) { } //CoolerCurl make a cooler http request *with multitor* -func CoolerCurl(urls string, addheader []string) ([]byte, error) { - counter := 0 - for { - counter++ - ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second) - defer cancel() - proxyURL, err := url.Parse(config.GoSimpConf.MultiTOR) - if err != nil || counter == 3 { - return nil, err - } - - client := &http.Client{ - Transport: &http.Transport{ - Proxy: http.ProxyURL(proxyURL), - DialContext: (&net.Dialer{ - Timeout: 10 * time.Second, - }).DialContext, - }, - } +func CoolerCurl(urls string, addheader map[string]string) ([]byte, error) { + ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second) + defer cancel() + proxyURL, err := url.Parse(config.GoSimpConf.MultiTOR) + if err != nil { + return nil, err + } - request, err := http.NewRequest("GET", urls, nil) - if err != nil || counter == 3 { - return nil, err - } - request.Header.Set("cache-control", "no-cache") - request.Header.Set("User-Agent", RandomAgent()) - if addheader != nil { - request.Header.Set(addheader[0], addheader[1]) - } - response, err := client.Do(request.WithContext(ctx)) - if err != nil || counter == 3 { - return nil, err - } - defer response.Body.Close() + client := &http.Client{ + Transport: &http.Transport{ + Proxy: http.ProxyURL(proxyURL), + DialContext: (&net.Dialer{ + Timeout: 10 * time.Second, + }).DialContext, + }, + } - if response.StatusCode != http.StatusOK && counter == 3 { - return nil, errors.New("Multi Tor get Error") + request, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + request.Header.Set("cache-control", "no-cache") + request.Header.Set("User-Agent", RandomAgent()) + if len(addheader) > 0 { + for k, v := range addheader { + request.Header.Set(k, v) } + } + response, err := client.Do(request.WithContext(ctx)) + if err != nil { + return nil, err + } + defer response.Body.Close() - data, err := ioutil.ReadAll(response.Body) - if err != nil || counter == 3 { - return nil, err - } + if response.StatusCode != http.StatusOK { + return nil, errors.New("multi Tor get Error") + } - if data != nil { - return data, nil - } + data, err := ioutil.ReadAll(response.Body) + if err != nil { + return nil, err } + + return data, nil } //RandomAgent Create random useragent for bypass some IDS diff --git a/service/migrate/main.go b/service/migrate/main.go index d6892078..abeea1ba 100755 --- a/service/migrate/main.go +++ b/service/migrate/main.go @@ -32,7 +32,7 @@ var ( YoutubeToken *string Publish time.Time Roomstatus string - BiliBiliSession []string + BiliBiliSession map[string]string Bot *discordgo.Session TwitchClient *helix.Client configfile config.ConfigFile @@ -83,7 +83,9 @@ func init() { configfile.InitConf() YoutubeToken = engine.GetYtToken() - BiliBiliSession = []string{"Cookie", "SESSDATA=" + configfile.BiliSess} + BiliBiliSession = map[string]string{ + "Cookie": "SESSDATA=" + configfile.BiliSess, + } //[]string{"Cookie", "SESSDATA=" + configfile.BiliSess} Limit = 100 err = Bot.Open() diff --git a/service/subscriber/bilibili.go b/service/subscriber/bilibili.go index 75c1c869..7b14b2d8 100755 --- a/service/subscriber/bilibili.go +++ b/service/subscriber/bilibili.go @@ -15,7 +15,9 @@ import ( ) func CheckBiliBili() { - BiliBiliSession := []string{"Cookie", "SESSDATA=" + configfile.BiliSess} + BiliBiliSession := map[string]string{ + "Cookie": "SESSDATA=" + configfile.BiliSess, + } for _, Group := range *Payload { Names := Group.Members for _, Name := range Names {