diff options
Diffstat (limited to 'g4f/.v1/gpt4free/usesless/__init__.py')
-rw-r--r-- | g4f/.v1/gpt4free/usesless/__init__.py | 158 |
1 files changed, 0 insertions, 158 deletions
diff --git a/g4f/.v1/gpt4free/usesless/__init__.py b/g4f/.v1/gpt4free/usesless/__init__.py deleted file mode 100644 index 00f7f75d..00000000 --- a/g4f/.v1/gpt4free/usesless/__init__.py +++ /dev/null @@ -1,158 +0,0 @@ -import string -import time -import re -import json -import requests -import fake_useragent -import random -from password_generator import PasswordGenerator - -from .utils import create_email, check_email - - -class Account: - @staticmethod - def create(logging: bool = False): - is_custom_domain = input( - "Do you want to use your custom domain name for temporary email? [Y/n]: " - ).upper() - - if is_custom_domain == "Y": - mail_address = create_email(custom_domain=True, logging=logging) - elif is_custom_domain == "N": - mail_address = create_email(custom_domain=False, logging=logging) - else: - print("Please, enter either Y or N") - return - - name = string.ascii_lowercase + string.digits - username = "".join(random.choice(name) for i in range(20)) - - pwo = PasswordGenerator() - pwo.minlen = 8 - password = pwo.generate() - - session = requests.Session() - - register_url = "https://ai.usesless.com/api/cms/auth/local/register" - register_json = { - "username": username, - "password": password, - "email": mail_address, - } - headers = { - "authority": "ai.usesless.com", - "accept": "application/json, text/plain, */*", - "accept-language": "en-US,en;q=0.5", - "cache-control": "no-cache", - "sec-fetch-dest": "empty", - "sec-fetch-mode": "cors", - "sec-fetch-site": "same-origin", - "user-agent": fake_useragent.UserAgent().random, - } - register = session.post(register_url, json=register_json, headers=headers) - if logging: - if register.status_code == 200: - print("Registered successfully") - else: - print(register.status_code) - print(register.json()) - print("There was a problem with account registration, try again") - - if register.status_code != 200: - quit() - - while True: - time.sleep(5) - messages = check_email(mail=mail_address, logging=logging) - - # Check if method `message_list()` didn't return None or empty list. - if not messages or len(messages) == 0: - # If it returned None or empty list sleep for 5 seconds to wait for new message. - continue - - message_text = messages[0]["content"] - verification_url = re.findall( - r"http:\/\/ai\.usesless\.com\/api\/cms\/auth\/email-confirmation\?confirmation=\w.+\w\w", - message_text, - )[0] - if verification_url: - break - - session.get(verification_url) - login_json = {"identifier": mail_address, "password": password} - login_request = session.post( - url="https://ai.usesless.com/api/cms/auth/local", json=login_json - ) - - token = login_request.json()["jwt"] - if logging and token: - print(f"Token: {token}") - - with open("account.json", "w") as file: - json.dump({"email": mail_address, "token": token}, file) - if logging: - print( - "\nNew account credentials has been successfully saved in 'account.json' file" - ) - - return token - - -class Completion: - @staticmethod - def create( - token: str, - systemMessage: str = "You are a helpful assistant", - prompt: str = "", - parentMessageId: str = "", - presence_penalty: float = 1, - temperature: float = 1, - model: str = "gpt-3.5-turbo", - ): - headers = { - "authority": "ai.usesless.com", - "accept": "application/json, text/plain, */*", - "accept-language": "en-US,en;q=0.5", - "cache-control": "no-cache", - "sec-fetch-dest": "empty", - "sec-fetch-mode": "cors", - "sec-fetch-site": "same-origin", - "user-agent": fake_useragent.UserAgent().random, - "Authorization": f"Bearer {token}", - } - - json_data = { - "openaiKey": "", - "prompt": prompt, - "options": { - "parentMessageId": parentMessageId, - "systemMessage": systemMessage, - "completionParams": { - "presence_penalty": presence_penalty, - "temperature": temperature, - "model": model, - }, - }, - } - - url = "https://ai.usesless.com/api/chat-process" - request = requests.post(url, headers=headers, json=json_data) - request.encoding = request.apparent_encoding - content = request.content - - response = Completion.__response_to_json(content) - return response - - - @classmethod - def __response_to_json(cls, text) -> str: - text = str(text.decode("utf-8")) - - split_text = text.rsplit("\n", 1) - if len(split_text) > 1: - to_json = json.loads(split_text[1]) - return to_json - else: - return None - |