From 4ae3d98df8965d741e21a7c113310b0454514ae2 Mon Sep 17 00:00:00 2001 From: Heiner Lohaus Date: Tue, 26 Nov 2024 19:28:41 +0100 Subject: Sort .har files by date, filter None from result --- g4f/Provider/ChatGpt.py | 1 + g4f/Provider/Copilot.py | 11 ++--------- g4f/Provider/needs_auth/OpenaiChat.py | 6 +++--- g4f/Provider/openai/har_file.py | 8 ++++++-- 4 files changed, 12 insertions(+), 14 deletions(-) (limited to 'g4f/Provider') diff --git a/g4f/Provider/ChatGpt.py b/g4f/Provider/ChatGpt.py index 02bbbcc4..ebfc7c2d 100644 --- a/g4f/Provider/ChatGpt.py +++ b/g4f/Provider/ChatGpt.py @@ -205,6 +205,7 @@ class ChatGpt(AbstractProvider, ProviderModelMixin): response = session.post('https://chatgpt.com/backend-anon/conversation', headers=headers, json=json_data, stream=True) + response.raise_for_status() replace = '' for line in response.iter_lines(): diff --git a/g4f/Provider/Copilot.py b/g4f/Provider/Copilot.py index 5721f377..3c431df2 100644 --- a/g4f/Provider/Copilot.py +++ b/g4f/Provider/Copilot.py @@ -23,7 +23,7 @@ from ..typing import CreateResult, Messages, ImageType from ..errors import MissingRequirementsError from ..requests.raise_for_status import raise_for_status from ..providers.asyncio import get_running_loop -from ..Provider.openai.har_file import NoValidHarFileError, get_headers +from ..Provider.openai.har_file import NoValidHarFileError, get_headers, get_har_files from ..requests import get_nodriver from ..image import ImageResponse, to_bytes, is_accepted_format from ..cookies import get_cookies_dir @@ -188,16 +188,9 @@ class Copilot(AbstractProvider): return access_token, cookies def readHAR(): - harPath = [] - for root, _, files in os.walk(get_cookies_dir()): - for file in files: - if file.endswith(".har"): - harPath.append(os.path.join(root, file)) - if not harPath: - raise NoValidHarFileError("No .har file found") api_key = None cookies = None - for path in harPath: + for path in get_har_files(): with open(path, 'rb') as file: try: harFile = json.loads(file.read()) diff --git a/g4f/Provider/needs_auth/OpenaiChat.py b/g4f/Provider/needs_auth/OpenaiChat.py index 37bdf074..392d4d5d 100644 --- a/g4f/Provider/needs_auth/OpenaiChat.py +++ b/g4f/Provider/needs_auth/OpenaiChat.py @@ -424,10 +424,10 @@ class OpenaiChat(AsyncGeneratorProvider, ProviderModelMixin): for element in c.get("parts"): if isinstance(element, dict) and element.get("content_type") == "image_asset_pointer": image = cls.get_generated_image(session, cls._headers, element) - if image is not None: - generated_images.append(image) + generated_images.append(image) for image_response in await asyncio.gather(*generated_images): - yield image_response + if image_response is not None: + yield image_response if m.get("author", {}).get("role") == "assistant": fields.message_id = v.get("message", {}).get("id") return diff --git a/g4f/Provider/openai/har_file.py b/g4f/Provider/openai/har_file.py index e863b6ac..819952cd 100644 --- a/g4f/Provider/openai/har_file.py +++ b/g4f/Provider/openai/har_file.py @@ -45,7 +45,7 @@ class arkReq: self.arkCookies = arkCookies self.userAgent = userAgent -def readHAR(): +def get_har_files(): harPath = [] for root, _, files in os.walk(get_cookies_dir()): for file in files: @@ -53,7 +53,11 @@ def readHAR(): harPath.append(os.path.join(root, file)) if not harPath: raise NoValidHarFileError("No .har file found") - for path in harPath: + harPath.sort(key=lambda x: os.path.getmtime(x)) + return harPath + +def readHAR(): + for path in get_har_files(): with open(path, 'rb') as file: try: harFile = json.loads(file.read()) -- cgit v1.2.3