support custom User-Agent for HTTP requests

This commit is contained in:
Samuel-0-0
2024-06-12 13:49:50 +08:00
parent 29c9b323ab
commit 9db4024700
4 changed files with 35 additions and 16 deletions
+1
View File
@@ -9,3 +9,4 @@ HTTP_RETRY=5
INTERVAL=5 INTERVAL=5
MODE=0 MODE=0
KEY= KEY=
USER_AGENT=
+5 -1
View File
@@ -135,6 +135,7 @@ If you installed teslamate by docker, you can choose alternative solutions.
- MODE=0 - MODE=0
- SINCE=2024-01-24 - SINCE=2024-01-24
- KEY= - KEY=
- USER_AGENT=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36
``` ```
@@ -163,6 +164,7 @@ teslamate_fix_addrs:
- MODE=0 - MODE=0
- SINCE=2024-01-24 - SINCE=2024-01-24
- KEY= - KEY=
- USER_AGENT=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36
``` ```
@@ -170,7 +172,7 @@ teslamate_fix_addrs:
**Run python script** **Run python script**
``` ```
usage: teslamate_fix_addrs.py [-h] -u USER -p PASSWORD -H HOST -P PORT -d DBNAME [-b BATCH] [-t TIMEOUT] [-r RETRY] [-i INTERVAL] usage: teslamate_fix_addrs.py [-h] -u USER -p PASSWORD -H HOST -P PORT -d DBNAME [-b BATCH] [-t TIMEOUT] [-r RETRY] [-i INTERVAL] [-ua USER_AGENT]
Usage of address fixer. Usage of address fixer.
@@ -188,6 +190,7 @@ options:
-m MODE, --mode MODE run mode: 0 -> fix empty record; 1 -> update address by amap; 2 -> do both(MODE). -m MODE, --mode MODE run mode: 0 -> fix empty record; 1 -> update address by amap; 2 -> do both(MODE).
-k KEY, --key KEY API key for calling amap(KEY). -k KEY, --key KEY API key for calling amap(KEY).
-s SINCE, --since SINCE Update from specified date(YYYY-mm-dd). -s SINCE, --since SINCE Update from specified date(YYYY-mm-dd).
-ua USER_AGENT, --user_agent USER_AGENT Custom User-Agent for HTTP requests(USER_AGENT).
``` ```
@@ -244,6 +247,7 @@ Worry about damaging existing data You can have a try in sandbox.
- MODE=0 - MODE=0
- SINCE=2024-01-24 - SINCE=2024-01-24
- KEY= - KEY=
- USER_AGENT=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36
volumes: volumes:
teslamate-grafana-data: teslamate-grafana-data:
+1
View File
@@ -15,3 +15,4 @@ services:
- INTERVAL=5 - INTERVAL=5
- MODE=0 - MODE=0
- KEY= - KEY=
- USER_AGENT=
+15 -2
View File
@@ -138,7 +138,16 @@ parser.add_argument("-s",
action=EnvDefault, action=EnvDefault,
envvar="SINCE", envvar="SINCE",
help="Update from specified date(YYYY-mm-dd).") help="Update from specified date(YYYY-mm-dd).")
parser.add_argument(
"-ua",
"--user_agent",
required=False,
type=str,
default='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36',
action=EnvDefault,
envvar="USER_AGENT",
help="Custom User-Agent for HTTP requests(USER_AGENT)."
)
args = parser.parse_args() args = parser.parse_args()
@@ -247,8 +256,12 @@ def http_request(url):
http_session = requests.Session() http_session = requests.Session()
http_session.mount('http://', HTTPAdapter(max_retries=args.retry)) http_session.mount('http://', HTTPAdapter(max_retries=args.retry))
http_session.mount('https://', HTTPAdapter(max_retries=args.retry)) http_session.mount('https://', HTTPAdapter(max_retries=args.retry))
headers = {
'User-Agent': args.user_agent
}
try: try:
response = http_session.get(url=url, timeout=args.timeout) response = http_session.get(url=url, timeout=args.timeout, headers=headers)
if response.status_code != requests.codes.ok: if response.status_code != requests.codes.ok:
logging.error( logging.error(
"Http request failed by url: %s, code: %d, body: %s" % "Http request failed by url: %s, code: %d, body: %s" %