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