summaryrefslogtreecommitdiffstats
path: root/g4f/requests
diff options
context:
space:
mode:
authorHeiner Lohaus <hlohaus@users.noreply.github.com>2024-04-20 20:06:35 +0200
committerHeiner Lohaus <hlohaus@users.noreply.github.com>2024-04-20 20:06:35 +0200
commitfdc8b88d17f7b9fa59aafa02612017c8cb32dbf9 (patch)
tree364445e7d5f3305ea345ece50a5d4c5c8abac5c9 /g4f/requests
parentAdd AbraGeoBlockedError handling (diff)
downloadgpt4free-fdc8b88d17f7b9fa59aafa02612017c8cb32dbf9.tar
gpt4free-fdc8b88d17f7b9fa59aafa02612017c8cb32dbf9.tar.gz
gpt4free-fdc8b88d17f7b9fa59aafa02612017c8cb32dbf9.tar.bz2
gpt4free-fdc8b88d17f7b9fa59aafa02612017c8cb32dbf9.tar.lz
gpt4free-fdc8b88d17f7b9fa59aafa02612017c8cb32dbf9.tar.xz
gpt4free-fdc8b88d17f7b9fa59aafa02612017c8cb32dbf9.tar.zst
gpt4free-fdc8b88d17f7b9fa59aafa02612017c8cb32dbf9.zip
Diffstat (limited to 'g4f/requests')
-rw-r--r--g4f/requests/curl_cffi.py16
1 files changed, 9 insertions, 7 deletions
diff --git a/g4f/requests/curl_cffi.py b/g4f/requests/curl_cffi.py
index d0d44ba7..1464cb32 100644
--- a/g4f/requests/curl_cffi.py
+++ b/g4f/requests/curl_cffi.py
@@ -79,10 +79,10 @@ class StreamSession(AsyncSession):
return StreamResponse(super().request(method, url, stream=True, **kwargs))
def ws_connect(self, url, *args, **kwargs):
- return WebSocket(self, url)
+ return WebSocket(self, url, **kwargs)
- def _ws_connect(self, url):
- return super().ws_connect(url)
+ def _ws_connect(self, url, **kwargs):
+ return super().ws_connect(url, **kwargs)
# Defining HTTP methods as partial methods of the request method.
head = partialmethod(request, "HEAD")
@@ -102,20 +102,22 @@ else:
raise RuntimeError("CurlMimi in curl_cffi is missing | pip install -U g4f[curl_cffi]")
class WebSocket():
- def __init__(self, session, url) -> None:
+ def __init__(self, session, url, **kwargs) -> None:
if not has_curl_ws:
raise RuntimeError("CurlWsFlag in curl_cffi is missing | pip install -U g4f[curl_cffi]")
self.session: StreamSession = session
self.url: str = url
+ del kwargs["autoping"]
+ self.options: dict = kwargs
async def __aenter__(self):
- self.inner = await self.session._ws_connect(self.url)
+ self.inner = await self.session._ws_connect(self.url, **self.options)
return self
async def __aexit__(self, *args):
- self.inner.aclose()
+ await self.inner.aclose()
- async def receive_str(self) -> str:
+ async def receive_str(self, **kwargs) -> str:
bytes, _ = await self.inner.arecv()
return bytes.decode(errors="ignore")