Use client instead of direct httpx

This commit is contained in:
taizan-hokouto
2020-11-01 21:58:41 +09:00
parent d362152c77
commit 37c8b7ae45
3 changed files with 6 additions and 5 deletions

View File

@@ -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)

View File

@@ -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:

View File

@@ -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):