Use client instead of direct httpx
This commit is contained in:
@@ -3,7 +3,6 @@ import os
|
|||||||
import re
|
import re
|
||||||
import time
|
import time
|
||||||
from base64 import standard_b64encode
|
from base64 import standard_b64encode
|
||||||
from httpx import NetworkError, ReadTimeout
|
|
||||||
from .chat_processor import ChatProcessor
|
from .chat_processor import ChatProcessor
|
||||||
from .default.processor import DefaultProcessor
|
from .default.processor import DefaultProcessor
|
||||||
from ..exceptions import UnknownConnectionError
|
from ..exceptions import UnknownConnectionError
|
||||||
@@ -48,6 +47,7 @@ class HTMLArchiver(ChatProcessor):
|
|||||||
'''
|
'''
|
||||||
def __init__(self, save_path, callback=None):
|
def __init__(self, save_path, callback=None):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
self.client = httpx.Client(http2=True)
|
||||||
self.save_path = self._checkpath(save_path)
|
self.save_path = self._checkpath(save_path)
|
||||||
self.processor = DefaultProcessor()
|
self.processor = DefaultProcessor()
|
||||||
self.emoji_table = {} # tuble for custom emojis. key: emoji_id, value: base64 encoded image binary.
|
self.emoji_table = {} # tuble for custom emojis. key: emoji_id, value: base64 encoded image binary.
|
||||||
@@ -118,9 +118,9 @@ class HTMLArchiver(ChatProcessor):
|
|||||||
err = None
|
err = None
|
||||||
for _ in range(5):
|
for _ in range(5):
|
||||||
try:
|
try:
|
||||||
resp = httpx.get(url, timeout=30)
|
resp = self.client.get(url, timeout=30)
|
||||||
break
|
break
|
||||||
except (NetworkError, ReadTimeout) as e:
|
except httpx.HTTPError as e:
|
||||||
print("Network Error. retrying...")
|
print("Network Error. retrying...")
|
||||||
err = e
|
err = e
|
||||||
time.sleep(3)
|
time.sleep(3)
|
||||||
|
|||||||
@@ -82,6 +82,7 @@ class VideoInfo:
|
|||||||
|
|
||||||
def __init__(self, video_id):
|
def __init__(self, video_id):
|
||||||
self.video_id = extract_video_id(video_id)
|
self.video_id = extract_video_id(video_id)
|
||||||
|
self.client = httpx.Client(http2=True)
|
||||||
err = None
|
err = None
|
||||||
for _ in range(3):
|
for _ in range(3):
|
||||||
try:
|
try:
|
||||||
@@ -103,7 +104,7 @@ class VideoInfo:
|
|||||||
err = None
|
err = None
|
||||||
for _ in range(3):
|
for _ in range(3):
|
||||||
try:
|
try:
|
||||||
resp = httpx.get(url, headers=headers)
|
resp = self.client.get(url, headers=headers)
|
||||||
resp.raise_for_status()
|
resp.raise_for_status()
|
||||||
break
|
break
|
||||||
except httpx.HTTPError as e:
|
except httpx.HTTPError as e:
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ def _set_test_data(filepath, mocker):
|
|||||||
response_mock = mocker.Mock()
|
response_mock = mocker.Mock()
|
||||||
response_mock.status_code = 200
|
response_mock.status_code = 200
|
||||||
response_mock.text = _text
|
response_mock.text = _text
|
||||||
mocker.patch('httpx.get').return_value = response_mock
|
mocker.patch('httpx.Client.get').return_value = response_mock
|
||||||
|
|
||||||
|
|
||||||
def test_archived_page(mocker):
|
def test_archived_page(mocker):
|
||||||
|
|||||||
Reference in New Issue
Block a user