aboutsummaryrefslogtreecommitdiff
path: root/backend/internal/ibd/transport/standard.go
blob: 9fa9ff94f4cb926b3575eb6e99a4f1ff7d0345eb (plain) (blame)
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
package transport

import (
	"net/http"

	"github.com/EDDYCJY/fake-useragent"
)

type StandardTransport http.Client

func NewStandardTransport(client *http.Client) *StandardTransport {
	return (*StandardTransport)(client)
}

func (t *StandardTransport) Do(req *http.Request) (*http.Response, error) {
	addFakeHeaders(req)
	return (*http.Client)(t).Do(req)
}

func (t *StandardTransport) String() string {
	return "standard"
}

func (t *StandardTransport) Properties() Properties {
	return PropertiesFree
}

func addFakeHeaders(req *http.Request) {
	req.Header.Set("User-Agent", browser.Linux())
	req.Header.Set("Sec-CH-UA", `"Not)A;Brand";v="99", "Google Chrome";v="127", "Chromium";v="127"`)
	req.Header.Set("Sec-CH-UA-Mobile", "?0")
	req.Header.Set("Sec-CH-UA-Platform", "Linux")
	req.Header.Set("Upgrade-Insecure-Requests", "1")
	req.Header.Set("Priority", "u=0, i")
	req.Header.Set("Sec-Fetch-Site", "none")
	req.Header.Set("Sec-Fetch-Mode", "navigate")
	req.Header.Set("Sec-Fetch-Dest", "document")
	req.Header.Set("Sec-Fetch-User", "?1")
	req.Header.Set("Accept-Language", "en-US,en;q=0.9")
	req.Header.Set("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7")
}