mirror of https://github.com/xtekky/gpt4free.git
Add MissingRequirementsError to You
This commit is contained in:
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…
Reference in New Issue