|
from __future__ import annotations |
|
|
|
import random, string, time |
|
from aiohttp import ClientSession |
|
|
|
from .base_provider import AsyncProvider |
|
|
|
|
|
class Wewordle(AsyncProvider): |
|
url = "https://wewordle.org" |
|
working = True |
|
supports_gpt_35_turbo = True |
|
|
|
@classmethod |
|
async def create_async( |
|
cls, |
|
model: str, |
|
messages: list[dict[str, str]], |
|
proxy: str = None, |
|
**kwargs |
|
) -> str: |
|
|
|
headers = { |
|
"accept" : "*/*", |
|
"pragma" : "no-cache", |
|
"Content-Type" : "application/json", |
|
"Connection" : "keep-alive" |
|
} |
|
|
|
_user_id = "".join(random.choices(f"{string.ascii_lowercase}{string.digits}", k=16)) |
|
_app_id = "".join(random.choices(f"{string.ascii_lowercase}{string.digits}", k=31)) |
|
_request_date = time.strftime("%Y-%m-%dT%H:%M:%S.000Z", time.gmtime()) |
|
data = { |
|
"user" : _user_id, |
|
"messages" : messages, |
|
"subscriber": { |
|
"originalPurchaseDate" : None, |
|
"originalApplicationVersion" : None, |
|
"allPurchaseDatesMillis" : {}, |
|
"entitlements" : {"active": {}, "all": {}}, |
|
"allPurchaseDates" : {}, |
|
"allExpirationDatesMillis" : {}, |
|
"allExpirationDates" : {}, |
|
"originalAppUserId" : f"$RCAnonymousID:{_app_id}", |
|
"latestExpirationDate" : None, |
|
"requestDate" : _request_date, |
|
"latestExpirationDateMillis" : None, |
|
"nonSubscriptionTransactions" : [], |
|
"originalPurchaseDateMillis" : None, |
|
"managementURL" : None, |
|
"allPurchasedProductIdentifiers": [], |
|
"firstSeen" : _request_date, |
|
"activeSubscriptions" : [], |
|
} |
|
} |
|
|
|
|
|
async with ClientSession( |
|
headers=headers |
|
) as session: |
|
async with session.post(f"{cls.url}/gptapi/v1/android/turbo", proxy=proxy, json=data) as response: |
|
response.raise_for_status() |
|
content = (await response.json())["message"]["content"] |
|
if content: |
|
return content |