gpt4free/g4f/requests_aiohttp.py
Heiner Lohaus a28bab9387 Add aiohttp_socks to requirements
Fix preview for uploaded and generated images in gui
Improve typing, readme
2024-01-29 18:14:46 +01:00

30 lines
1.0 KiB
Python

from __future__ import annotations
from aiohttp import ClientSession, ClientResponse, ClientTimeout
from typing import AsyncGenerator, Any
from .Provider.helper import get_connector
from .defaults import DEFAULT_HEADERS
class StreamResponse(ClientResponse):
async def iter_lines(self) -> AsyncGenerator[bytes, None]:
async for line in self.content:
yield line.rstrip(b"\r\n")
async def json(self) -> Any:
return await super().json(content_type=None)
class StreamSession(ClientSession):
def __init__(self, headers: dict = {}, timeout: int = None, proxies: dict = {}, impersonate = None, **kwargs):
if impersonate:
headers = {
**DEFAULT_HEADERS,
**headers
}
super().__init__(
**kwargs,
timeout=ClientTimeout(timeout) if timeout else None,
response_class=StreamResponse,
connector=get_connector(kwargs.get("connector"), proxies.get("https")),
headers=headers
)