diff options
author | Heiner Lohaus <hlohaus@users.noreply.github.com> | 2024-02-12 11:41:27 +0100 |
---|---|---|
committer | Heiner Lohaus <hlohaus@users.noreply.github.com> | 2024-02-12 11:41:27 +0100 |
commit | aba4b96f23ef38ca75195b3b78a88bb92035b4a9 (patch) | |
tree | 92575678f27d48e2258e823fa299ed21af6cbad2 /g4f/Provider/BingCreateImages.py | |
parent | Improve preview in image generation of Gemini (diff) | |
download | gpt4free-aba4b96f23ef38ca75195b3b78a88bb92035b4a9.tar gpt4free-aba4b96f23ef38ca75195b3b78a88bb92035b4a9.tar.gz gpt4free-aba4b96f23ef38ca75195b3b78a88bb92035b4a9.tar.bz2 gpt4free-aba4b96f23ef38ca75195b3b78a88bb92035b4a9.tar.lz gpt4free-aba4b96f23ef38ca75195b3b78a88bb92035b4a9.tar.xz gpt4free-aba4b96f23ef38ca75195b3b78a88bb92035b4a9.tar.zst gpt4free-aba4b96f23ef38ca75195b3b78a88bb92035b4a9.zip |
Diffstat (limited to '')
-rw-r--r-- | g4f/Provider/BingCreateImages.py (renamed from g4f/Provider/CreateImagesBing.py) | 46 |
1 files changed, 4 insertions, 42 deletions
diff --git a/g4f/Provider/CreateImagesBing.py b/g4f/Provider/BingCreateImages.py index 59eafe0c..901b7787 100644 --- a/g4f/Provider/CreateImagesBing.py +++ b/g4f/Provider/BingCreateImages.py @@ -1,60 +1,22 @@ from __future__ import annotations import asyncio -import time import os from typing import Generator from ..cookies import get_cookies -from ..webdriver import WebDriver, get_driver_cookies, get_browser from ..image import ImageResponse from ..errors import MissingRequirementsError, MissingAuthError -from .bing.create_images import BING_URL, create_images, create_session +from .bing.create_images import create_images, create_session, get_cookies_from_browser -BING_URL = "https://www.bing.com" -TIMEOUT_LOGIN = 1200 - -def wait_for_login(driver: WebDriver, timeout: int = TIMEOUT_LOGIN) -> None: - """ - Waits for the user to log in within a given timeout period. - - Args: - driver (WebDriver): Webdriver for browser automation. - timeout (int): Maximum waiting time in seconds. - - Raises: - RuntimeError: If the login process exceeds the timeout. - """ - driver.get(f"{BING_URL}/") - start_time = time.time() - while not driver.get_cookie("_U"): - if time.time() - start_time > timeout: - raise RuntimeError("Timeout error") - time.sleep(0.5) - -def get_cookies_from_browser(proxy: str = None) -> dict[str, str]: - """ - Retrieves cookies from the browser using webdriver. - - Args: - proxy (str, optional): Proxy configuration. - - Returns: - dict[str, str]: Retrieved cookies. - """ - with get_browser(proxy=proxy) as driver: - wait_for_login(driver) - time.sleep(1) - return get_driver_cookies(driver) - -class CreateImagesBing: +class BingCreateImages: """A class for creating images using Bing.""" def __init__(self, cookies: dict[str, str] = {}, proxy: str = None) -> None: self.cookies = cookies self.proxy = proxy - def create_completion(self, prompt: str) -> Generator[ImageResponse, None, None]: + def create(self, prompt: str) -> Generator[ImageResponse, None, None]: """ Generator for creating imagecompletion based on a prompt. @@ -91,4 +53,4 @@ class CreateImagesBing: proxy = self.proxy or os.environ.get("G4F_PROXY") async with create_session(cookies, proxy) as session: images = await create_images(session, prompt, proxy) - return ImageResponse(images, prompt, {"preview": "{image}?w=200&h=200"})
\ No newline at end of file + return ImageResponse(images, prompt, {"preview": "{image}?w=200&h=200"} if len(images) > 1 else {})
\ No newline at end of file |