Add MissingRequirementsError to You

pull/1869/head
Heiner Lohaus 3 weeks ago
parent db2d6cffd9
commit f66cd9f8a3

@ -1,4 +1,5 @@
recursive-include g4f/gui/server *
recursive-include g4f/gui/client *
recursive-include g4f/Provider/npm *
recursive-include g4f/Provider/gigachat_crt *
recursive-include g4f/Provider/gigachat_crt *
recursive-include g4f/Provider/you *

@ -11,6 +11,7 @@ from .helper import format_prompt
from ..image import ImageResponse, to_bytes, is_accepted_format
from ..requests import StreamSession, FormData, raise_for_status
from .you.har_file import get_telemetry_ids
from .. import debug
class You(AsyncGeneratorProvider, ProviderModelMixin):
url = "https://you.com"
@ -163,6 +164,9 @@ class You(AsyncGeneratorProvider, ProviderModelMixin):
if not cls._telemetry_ids:
cls._telemetry_ids = await get_telemetry_ids()
user_uuid = str(uuid.uuid4())
telemetry_id = cls._telemetry_ids.pop()
if debug.logging:
print(f"Use telemetry_id: {telemetry_id}")
async with client.post(
"https://web.stytch.com/sdk/v1/passwords",
headers={
@ -173,7 +177,7 @@ class You(AsyncGeneratorProvider, ProviderModelMixin):
"Referer": "https://you.com/"
},
json={
"dfp_telemetry_id": cls._telemetry_ids.pop(),
"dfp_telemetry_id": telemetry_id,
"email": f"{user_uuid}@gmail.com",
"password": f"{user_uuid}#{user_uuid}",
"session_duration_minutes": 129600

@ -2,10 +2,12 @@ from __future__ import annotations
import json
import os
import os.path
import random
import requests
from ...requests import StreamSession, raise_for_status
from ...errors import MissingRequirementsError
from ... import debug
class NoValidHarFileError(Exception):
@ -71,21 +73,13 @@ async def get_dfp_telemetry_id(proxy: str = None):
chatArks = readHAR()
return await sendRequest(random.choice(chatArks), proxy)
def read_telemetry_file() -> list:
with open("hardir/you.com_telemetry_ids.txt", "r") as f:
ids = f.readlines()
random.shuffle(ids)
return ids
async def get_telemetry_ids(proxy: str = None) -> list:
if debug.logging:
print('Getting telemetry_id for you.com with nodriver')
try:
from nodriver import start
except ImportError:
if debug.logging:
print('Install "nodriver" package | pip install -U nodriver')
return read_telemetry_file()
raise MissingRequirementsError('Install "nodriver" package | pip install -U nodriver')
try:
browser = await start()
tab = browser.main_tab
@ -103,7 +97,7 @@ async def get_telemetry_ids(proxy: str = None) -> list:
# with open("hardir/you.com_telemetry_ids.txt", "a") as f:
# f.write((await get_telemetry_id()) + "\n")
return [await get_telemetry_id() for _ in range(10)]
return [await get_telemetry_id() for _ in range(4)]
finally:
try:
await tab.close()

Loading…
Cancel
Save