summaryrefslogtreecommitdiffstats
path: root/quora
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--gpt4free/quora/README.md (renamed from quora/README.md)19
-rw-r--r--gpt4free/quora/__init__.py (renamed from quora/__init__.py)152
-rw-r--r--gpt4free/quora/api.py (renamed from quora/api.py)0
-rw-r--r--gpt4free/quora/cookies.txt (renamed from quora/cookies.txt)0
-rw-r--r--gpt4free/quora/graphql/AddHumanMessageMutation.graphql (renamed from quora/graphql/AddHumanMessageMutation.graphql)0
-rw-r--r--gpt4free/quora/graphql/AddMessageBreakMutation.graphql (renamed from quora/graphql/AddMessageBreakMutation.graphql)0
-rw-r--r--gpt4free/quora/graphql/AutoSubscriptionMutation.graphql (renamed from quora/graphql/AutoSubscriptionMutation.graphql)0
-rw-r--r--gpt4free/quora/graphql/BioFragment.graphql (renamed from quora/graphql/BioFragment.graphql)0
-rw-r--r--gpt4free/quora/graphql/ChatAddedSubscription.graphql (renamed from quora/graphql/ChatAddedSubscription.graphql)0
-rw-r--r--gpt4free/quora/graphql/ChatFragment.graphql (renamed from quora/graphql/ChatFragment.graphql)0
-rw-r--r--gpt4free/quora/graphql/ChatListPaginationQuery.graphql (renamed from quora/graphql/ChatListPaginationQuery.graphql)0
-rw-r--r--gpt4free/quora/graphql/ChatPaginationQuery.graphql (renamed from quora/graphql/ChatPaginationQuery.graphql)0
-rw-r--r--gpt4free/quora/graphql/ChatViewQuery.graphql (renamed from quora/graphql/ChatViewQuery.graphql)0
-rw-r--r--gpt4free/quora/graphql/DeleteHumanMessagesMutation.graphql (renamed from quora/graphql/DeleteHumanMessagesMutation.graphql)0
-rw-r--r--gpt4free/quora/graphql/DeleteMessageMutation.graphql (renamed from quora/graphql/DeleteMessageMutation.graphql)0
-rw-r--r--gpt4free/quora/graphql/HandleFragment.graphql (renamed from quora/graphql/HandleFragment.graphql)0
-rw-r--r--gpt4free/quora/graphql/LoginWithVerificationCodeMutation.graphql (renamed from quora/graphql/LoginWithVerificationCodeMutation.graphql)0
-rw-r--r--gpt4free/quora/graphql/MessageAddedSubscription.graphql (renamed from quora/graphql/MessageAddedSubscription.graphql)0
-rw-r--r--gpt4free/quora/graphql/MessageDeletedSubscription.graphql (renamed from quora/graphql/MessageDeletedSubscription.graphql)0
-rw-r--r--gpt4free/quora/graphql/MessageFragment.graphql (renamed from quora/graphql/MessageFragment.graphql)0
-rw-r--r--gpt4free/quora/graphql/MessageRemoveVoteMutation.graphql (renamed from quora/graphql/MessageRemoveVoteMutation.graphql)0
-rw-r--r--gpt4free/quora/graphql/MessageSetVoteMutation.graphql (renamed from quora/graphql/MessageSetVoteMutation.graphql)0
-rw-r--r--gpt4free/quora/graphql/PoeBotCreateMutation.graphql (renamed from quora/graphql/PoeBotCreateMutation.graphql)0
-rw-r--r--gpt4free/quora/graphql/PoeBotEditMutation.graphql (renamed from quora/graphql/PoeBotEditMutation.graphql)0
-rw-r--r--gpt4free/quora/graphql/SendMessageMutation.graphql (renamed from quora/graphql/SendMessageMutation.graphql)0
-rw-r--r--gpt4free/quora/graphql/SendVerificationCodeForLoginMutation.graphql (renamed from quora/graphql/SendVerificationCodeForLoginMutation.graphql)0
-rw-r--r--gpt4free/quora/graphql/ShareMessagesMutation.graphql (renamed from quora/graphql/ShareMessagesMutation.graphql)0
-rw-r--r--gpt4free/quora/graphql/SignupWithVerificationCodeMutation.graphql (renamed from quora/graphql/SignupWithVerificationCodeMutation.graphql)0
-rw-r--r--gpt4free/quora/graphql/StaleChatUpdateMutation.graphql (renamed from quora/graphql/StaleChatUpdateMutation.graphql)0
-rw-r--r--gpt4free/quora/graphql/SubscriptionsMutation.graphql (renamed from quora/graphql/SubscriptionsMutation.graphql)0
-rw-r--r--gpt4free/quora/graphql/SummarizePlainPostQuery.graphql (renamed from quora/graphql/SummarizePlainPostQuery.graphql)0
-rw-r--r--gpt4free/quora/graphql/SummarizeQuotePostQuery.graphql (renamed from quora/graphql/SummarizeQuotePostQuery.graphql)0
-rw-r--r--gpt4free/quora/graphql/SummarizeSharePostQuery.graphql (renamed from quora/graphql/SummarizeSharePostQuery.graphql)0
-rw-r--r--gpt4free/quora/graphql/UserSnippetFragment.graphql (renamed from quora/graphql/UserSnippetFragment.graphql)0
-rw-r--r--gpt4free/quora/graphql/ViewerInfoQuery.graphql (renamed from quora/graphql/ViewerInfoQuery.graphql)0
-rw-r--r--gpt4free/quora/graphql/ViewerStateFragment.graphql (renamed from quora/graphql/ViewerStateFragment.graphql)0
-rw-r--r--gpt4free/quora/graphql/ViewerStateUpdatedSubscription.graphql (renamed from quora/graphql/ViewerStateUpdatedSubscription.graphql)0
-rw-r--r--gpt4free/quora/graphql/__init__.py (renamed from quora/graphql/__init__.py)0
-rw-r--r--gpt4free/quora/mail.py (renamed from quora/mail.py)0
39 files changed, 73 insertions, 98 deletions
diff --git a/quora/README.md b/gpt4free/quora/README.md
index 24679277..c6eeac3e 100644
--- a/quora/README.md
+++ b/gpt4free/quora/README.md
@@ -21,26 +21,25 @@ models = {
```python
# import quora (poe) package
-import quora
+from gpt4free import quora
# create account
# make sure to set enable_bot_creation to True
-token = quora.Account.create(logging = True, enable_bot_creation=True)
+token = quora.Account.create(logging=True, enable_bot_creation=True)
model = quora.Model.create(
- token = token,
- model = 'gpt-3.5-turbo', # or claude-instant-v1.0
- system_prompt = 'you are ChatGPT a large language model ...'
+ token=token,
+ model='gpt-3.5-turbo', # or claude-instant-v1.0
+ system_prompt='you are ChatGPT a large language model ...'
)
-print(model.name) # gptx....
+print(model.name) # gptx....
# streaming response
for response in quora.StreamingCompletion.create(
- custom_model = model.name,
- prompt ='hello world',
- token = token):
-
+ custom_model=model.name,
+ prompt='hello world',
+ token=token):
print(response.completion.choices[0].text)
```
diff --git a/quora/__init__.py b/gpt4free/quora/__init__.py
index cd5ec8f9..31526e0c 100644
--- a/quora/__init__.py
+++ b/gpt4free/quora/__init__.py
@@ -6,11 +6,12 @@ from pathlib import Path
from random import choice, choices, randint
from re import search, findall
from string import ascii_letters, digits
-from typing import Optional, Union
+from typing import Optional, Union, List, Any, Generator
from urllib.parse import unquote
import selenium.webdriver.support.expected_conditions as EC
from fake_useragent import UserAgent
+from pydantic import BaseModel
from pypasser import reCaptchaV3
from requests import Session
from selenium.webdriver import Firefox, Chrome, FirefoxOptions, ChromeOptions
@@ -18,8 +19,8 @@ from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from tls_client import Session as TLS
-from quora.api import Client as PoeClient
-from quora.mail import Emailnator
+from .api import Client as PoeClient
+from .mail import Emailnator
SELENIUM_WEB_DRIVER_ERROR_MSG = b'''The error message you are receiving is due to the `geckodriver` executable not
being found in your system\'s PATH. To resolve this issue, you need to download the geckodriver and add its location
@@ -67,42 +68,27 @@ def extract_formkey(html):
return formkey
-class PoeResponse:
- class Completion:
- class Choices:
- def __init__(self, choice: dict) -> None:
- self.text = choice['text']
- self.content = self.text.encode()
- self.index = choice['index']
- self.logprobs = choice['logprobs']
- self.finish_reason = choice['finish_reason']
+class Choice(BaseModel):
+ text: str
+ index: int
+ logprobs: Any
+ finish_reason: str
- def __repr__(self) -> str:
- return f'''<__main__.APIResponse.Completion.Choices(\n text = {self.text.encode()},\n index = {self.index},\n logprobs = {self.logprobs},\n finish_reason = {self.finish_reason})object at 0x1337>'''
- def __init__(self, choices: dict) -> None:
- self.choices = [self.Choices(choice) for choice in choices]
+class Usage(BaseModel):
+ prompt_tokens: int
+ completion_tokens: int
+ total_tokens: int
- class Usage:
- def __init__(self, usage_dict: dict) -> None:
- self.prompt_tokens = usage_dict['prompt_tokens']
- self.completion_tokens = usage_dict['completion_tokens']
- self.total_tokens = usage_dict['total_tokens']
- def __repr__(self):
- return f'''<__main__.APIResponse.Usage(\n prompt_tokens = {self.prompt_tokens},\n completion_tokens = {self.completion_tokens},\n total_tokens = {self.total_tokens})object at 0x1337>'''
-
- def __init__(self, response_dict: dict) -> None:
- self.response_dict = response_dict
- self.id = response_dict['id']
- self.object = response_dict['object']
- self.created = response_dict['created']
- self.model = response_dict['model']
- self.completion = self.Completion(response_dict['choices'])
- self.usage = self.Usage(response_dict['usage'])
-
- def json(self) -> dict:
- return self.response_dict
+class PoeResponse(BaseModel):
+ id: int
+ object: str
+ created: int
+ model: str
+ choices: List[Choice]
+ usage: Usage
+ text: str
class ModelResponse:
@@ -116,18 +102,12 @@ class ModelResponse:
class Model:
@staticmethod
def create(
- token: str,
- model: str = 'gpt-3.5-turbo', # claude-instant
- system_prompt: str = 'You are ChatGPT a large language model developed by Openai. Answer as consisely as possible',
- description: str = 'gpt-3.5 language model from openai, skidded by poe.com',
- handle: str = None,
+ token: str,
+ model: str = 'gpt-3.5-turbo', # claude-instant
+ system_prompt: str = 'You are ChatGPT a large language model developed by Openai. Answer as consisely as possible',
+ description: str = 'gpt-3.5 language model from openai, skidded by poe.com',
+ handle: str = None,
) -> ModelResponse:
- models = {
- 'gpt-3.5-turbo': 'chinchilla',
- 'claude-instant-v1.0': 'a2',
- 'gpt-4': 'beaver',
- }
-
if not handle:
handle = f'gptx{randint(1111111, 9999999)}'
@@ -162,7 +142,7 @@ class Model:
obj={
'queryName': 'CreateBotMain_poeBotCreate_Mutation',
'variables': {
- 'model': models[model],
+ 'model': MODELS[model],
'handle': handle,
'prompt': system_prompt,
'isPromptPublic': True,
@@ -202,9 +182,9 @@ class Model:
class Account:
@staticmethod
def create(
- proxy: Optional[str] = None,
- logging: bool = False,
- enable_bot_creation: bool = False,
+ proxy: Optional[str] = None,
+ logging: bool = False,
+ enable_bot_creation: bool = False,
):
client = TLS(client_identifier='chrome110')
client.proxies = {'http': f'http://{proxy}', 'https': f'http://{proxy}'} if proxy else None
@@ -309,22 +289,23 @@ class Account:
class StreamingCompletion:
@staticmethod
def create(
- model: str = 'gpt-4',
- custom_model: bool = None,
- prompt: str = 'hello world',
- token: str = '',
- ):
+ model: str = 'gpt-4',
+ custom_model: bool = None,
+ prompt: str = 'hello world',
+ token: str = '',
+ ) -> Generator[PoeResponse, None, None]:
_model = MODELS[model] if not custom_model else custom_model
client = PoeClient(token)
for chunk in client.send_message(_model, prompt):
yield PoeResponse(
- {
+ **{
'id': chunk['messageId'],
'object': 'text_completion',
'created': chunk['creationTime'],
'model': _model,
+ 'text': chunk['text_new'],
'choices': [
{
'text': chunk['text_new'],
@@ -343,33 +324,28 @@ class StreamingCompletion:
class Completion:
+ @staticmethod
def create(
- model: str = 'gpt-4',
- custom_model: str = None,
- prompt: str = 'hello world',
- token: str = '',
- ):
- models = {
- 'sage': 'capybara',
- 'gpt-4': 'beaver',
- 'claude-v1.2': 'a2_2',
- 'claude-instant-v1.0': 'a2',
- 'gpt-3.5-turbo': 'chinchilla',
- }
-
- _model = models[model] if not custom_model else custom_model
+ model: str = 'gpt-4',
+ custom_model: str = None,
+ prompt: str = 'hello world',
+ token: str = '',
+ ) -> PoeResponse:
+ _model = MODELS[model] if not custom_model else custom_model
client = PoeClient(token)
- for chunk in client.send_message(_model, prompt):
- pass
+ chunk = None
+ for response in client.send_message(_model, prompt):
+ chunk = response
return PoeResponse(
- {
+ **{
'id': chunk['messageId'],
'object': 'text_completion',
'created': chunk['creationTime'],
'model': _model,
+ 'text': chunk['text'],
'choices': [
{
'text': chunk['text'],
@@ -389,12 +365,12 @@ class Completion:
class Poe:
def __init__(
- self,
- model: str = 'ChatGPT',
- driver: str = 'firefox',
- download_driver: bool = False,
- driver_path: Optional[str] = None,
- cookie_path: str = './quora/cookie.json',
+ self,
+ model: str = 'ChatGPT',
+ driver: str = 'firefox',
+ download_driver: bool = False,
+ driver_path: Optional[str] = None,
+ cookie_path: str = './quora/cookie.json',
):
# validating the model
if model and model not in MODELS:
@@ -451,8 +427,8 @@ class Poe:
driver.close()
return cookie
- @classmethod
- def __resolve_driver(cls, driver: str, driver_path: Optional[str] = None) -> Union[Firefox, Chrome]:
+ @staticmethod
+ def __resolve_driver(driver: str, driver_path: Optional[str] = None) -> Union[Firefox, Chrome]:
options = FirefoxOptions() if driver == 'firefox' else ChromeOptions()
options.add_argument('-headless')
@@ -473,12 +449,12 @@ class Poe:
return response
def create_bot(
- self,
- name: str,
- /,
- prompt: str = '',
- base_model: str = 'ChatGPT',
- description: str = '',
+ self,
+ name: str,
+ /,
+ prompt: str = '',
+ base_model: str = 'ChatGPT',
+ description: str = '',
) -> None:
if base_model not in MODELS:
raise RuntimeError('Sorry, the base_model you provided does not exist. Please check and try again.')
@@ -492,4 +468,4 @@ class Poe:
print(f'Successfully created bot with name: {response["bot"]["displayName"]}')
def list_bots(self) -> list:
- return list(self.client.bot_names.values())
+ return list(self.client.bot_names.values()) \ No newline at end of file
diff --git a/quora/api.py b/gpt4free/quora/api.py
index 697f6663..697f6663 100644
--- a/quora/api.py
+++ b/gpt4free/quora/api.py
diff --git a/quora/cookies.txt b/gpt4free/quora/cookies.txt
index 9cccf6ba..9cccf6ba 100644
--- a/quora/cookies.txt
+++ b/gpt4free/quora/cookies.txt
diff --git a/quora/graphql/AddHumanMessageMutation.graphql b/gpt4free/quora/graphql/AddHumanMessageMutation.graphql
index 01e6bc8c..01e6bc8c 100644
--- a/quora/graphql/AddHumanMessageMutation.graphql
+++ b/gpt4free/quora/graphql/AddHumanMessageMutation.graphql
diff --git a/quora/graphql/AddMessageBreakMutation.graphql b/gpt4free/quora/graphql/AddMessageBreakMutation.graphql
index b28d9903..b28d9903 100644
--- a/quora/graphql/AddMessageBreakMutation.graphql
+++ b/gpt4free/quora/graphql/AddMessageBreakMutation.graphql
diff --git a/quora/graphql/AutoSubscriptionMutation.graphql b/gpt4free/quora/graphql/AutoSubscriptionMutation.graphql
index 6cf7bf74..6cf7bf74 100644
--- a/quora/graphql/AutoSubscriptionMutation.graphql
+++ b/gpt4free/quora/graphql/AutoSubscriptionMutation.graphql
diff --git a/quora/graphql/BioFragment.graphql b/gpt4free/quora/graphql/BioFragment.graphql
index c4218030..c4218030 100644
--- a/quora/graphql/BioFragment.graphql
+++ b/gpt4free/quora/graphql/BioFragment.graphql
diff --git a/quora/graphql/ChatAddedSubscription.graphql b/gpt4free/quora/graphql/ChatAddedSubscription.graphql
index 664b107f..664b107f 100644
--- a/quora/graphql/ChatAddedSubscription.graphql
+++ b/gpt4free/quora/graphql/ChatAddedSubscription.graphql
diff --git a/quora/graphql/ChatFragment.graphql b/gpt4free/quora/graphql/ChatFragment.graphql
index 605645ff..605645ff 100644
--- a/quora/graphql/ChatFragment.graphql
+++ b/gpt4free/quora/graphql/ChatFragment.graphql
diff --git a/quora/graphql/ChatListPaginationQuery.graphql b/gpt4free/quora/graphql/ChatListPaginationQuery.graphql
index 6d9ae884..6d9ae884 100644
--- a/quora/graphql/ChatListPaginationQuery.graphql
+++ b/gpt4free/quora/graphql/ChatListPaginationQuery.graphql
diff --git a/quora/graphql/ChatPaginationQuery.graphql b/gpt4free/quora/graphql/ChatPaginationQuery.graphql
index f2452cd6..f2452cd6 100644
--- a/quora/graphql/ChatPaginationQuery.graphql
+++ b/gpt4free/quora/graphql/ChatPaginationQuery.graphql
diff --git a/quora/graphql/ChatViewQuery.graphql b/gpt4free/quora/graphql/ChatViewQuery.graphql
index c330107d..c330107d 100644
--- a/quora/graphql/ChatViewQuery.graphql
+++ b/gpt4free/quora/graphql/ChatViewQuery.graphql
diff --git a/quora/graphql/DeleteHumanMessagesMutation.graphql b/gpt4free/quora/graphql/DeleteHumanMessagesMutation.graphql
index 42692c6e..42692c6e 100644
--- a/quora/graphql/DeleteHumanMessagesMutation.graphql
+++ b/gpt4free/quora/graphql/DeleteHumanMessagesMutation.graphql
diff --git a/quora/graphql/DeleteMessageMutation.graphql b/gpt4free/quora/graphql/DeleteMessageMutation.graphql
index 7b9e36d4..7b9e36d4 100644
--- a/quora/graphql/DeleteMessageMutation.graphql
+++ b/gpt4free/quora/graphql/DeleteMessageMutation.graphql
diff --git a/quora/graphql/HandleFragment.graphql b/gpt4free/quora/graphql/HandleFragment.graphql
index f53c484b..f53c484b 100644
--- a/quora/graphql/HandleFragment.graphql
+++ b/gpt4free/quora/graphql/HandleFragment.graphql
diff --git a/quora/graphql/LoginWithVerificationCodeMutation.graphql b/gpt4free/quora/graphql/LoginWithVerificationCodeMutation.graphql
index 723b1f44..723b1f44 100644
--- a/quora/graphql/LoginWithVerificationCodeMutation.graphql
+++ b/gpt4free/quora/graphql/LoginWithVerificationCodeMutation.graphql
diff --git a/quora/graphql/MessageAddedSubscription.graphql b/gpt4free/quora/graphql/MessageAddedSubscription.graphql
index 8dc9499c..8dc9499c 100644
--- a/quora/graphql/MessageAddedSubscription.graphql
+++ b/gpt4free/quora/graphql/MessageAddedSubscription.graphql
diff --git a/quora/graphql/MessageDeletedSubscription.graphql b/gpt4free/quora/graphql/MessageDeletedSubscription.graphql
index 54c1c164..54c1c164 100644
--- a/quora/graphql/MessageDeletedSubscription.graphql
+++ b/gpt4free/quora/graphql/MessageDeletedSubscription.graphql
diff --git a/quora/graphql/MessageFragment.graphql b/gpt4free/quora/graphql/MessageFragment.graphql
index cc860811..cc860811 100644
--- a/quora/graphql/MessageFragment.graphql
+++ b/gpt4free/quora/graphql/MessageFragment.graphql
diff --git a/quora/graphql/MessageRemoveVoteMutation.graphql b/gpt4free/quora/graphql/MessageRemoveVoteMutation.graphql
index d5e6e610..d5e6e610 100644
--- a/quora/graphql/MessageRemoveVoteMutation.graphql
+++ b/gpt4free/quora/graphql/MessageRemoveVoteMutation.graphql
diff --git a/quora/graphql/MessageSetVoteMutation.graphql b/gpt4free/quora/graphql/MessageSetVoteMutation.graphql
index 76000df0..76000df0 100644
--- a/quora/graphql/MessageSetVoteMutation.graphql
+++ b/gpt4free/quora/graphql/MessageSetVoteMutation.graphql
diff --git a/quora/graphql/PoeBotCreateMutation.graphql b/gpt4free/quora/graphql/PoeBotCreateMutation.graphql
index 971b4248..971b4248 100644
--- a/quora/graphql/PoeBotCreateMutation.graphql
+++ b/gpt4free/quora/graphql/PoeBotCreateMutation.graphql
diff --git a/quora/graphql/PoeBotEditMutation.graphql b/gpt4free/quora/graphql/PoeBotEditMutation.graphql
index fdd309ef..fdd309ef 100644
--- a/quora/graphql/PoeBotEditMutation.graphql
+++ b/gpt4free/quora/graphql/PoeBotEditMutation.graphql
diff --git a/quora/graphql/SendMessageMutation.graphql b/gpt4free/quora/graphql/SendMessageMutation.graphql
index 4b0a4383..4b0a4383 100644
--- a/quora/graphql/SendMessageMutation.graphql
+++ b/gpt4free/quora/graphql/SendMessageMutation.graphql
diff --git a/quora/graphql/SendVerificationCodeForLoginMutation.graphql b/gpt4free/quora/graphql/SendVerificationCodeForLoginMutation.graphql
index 45af4799..45af4799 100644
--- a/quora/graphql/SendVerificationCodeForLoginMutation.graphql
+++ b/gpt4free/quora/graphql/SendVerificationCodeForLoginMutation.graphql
diff --git a/quora/graphql/ShareMessagesMutation.graphql b/gpt4free/quora/graphql/ShareMessagesMutation.graphql
index 92e80db5..92e80db5 100644
--- a/quora/graphql/ShareMessagesMutation.graphql
+++ b/gpt4free/quora/graphql/ShareMessagesMutation.graphql
diff --git a/quora/graphql/SignupWithVerificationCodeMutation.graphql b/gpt4free/quora/graphql/SignupWithVerificationCodeMutation.graphql
index 06b2826f..06b2826f 100644
--- a/quora/graphql/SignupWithVerificationCodeMutation.graphql
+++ b/gpt4free/quora/graphql/SignupWithVerificationCodeMutation.graphql
diff --git a/quora/graphql/StaleChatUpdateMutation.graphql b/gpt4free/quora/graphql/StaleChatUpdateMutation.graphql
index de203d47..de203d47 100644
--- a/quora/graphql/StaleChatUpdateMutation.graphql
+++ b/gpt4free/quora/graphql/StaleChatUpdateMutation.graphql
diff --git a/quora/graphql/SubscriptionsMutation.graphql b/gpt4free/quora/graphql/SubscriptionsMutation.graphql
index b864bd60..b864bd60 100644
--- a/quora/graphql/SubscriptionsMutation.graphql
+++ b/gpt4free/quora/graphql/SubscriptionsMutation.graphql
diff --git a/quora/graphql/SummarizePlainPostQuery.graphql b/gpt4free/quora/graphql/SummarizePlainPostQuery.graphql
index afa2a84c..afa2a84c 100644
--- a/quora/graphql/SummarizePlainPostQuery.graphql
+++ b/gpt4free/quora/graphql/SummarizePlainPostQuery.graphql
diff --git a/quora/graphql/SummarizeQuotePostQuery.graphql b/gpt4free/quora/graphql/SummarizeQuotePostQuery.graphql
index 5147c3c5..5147c3c5 100644
--- a/quora/graphql/SummarizeQuotePostQuery.graphql
+++ b/gpt4free/quora/graphql/SummarizeQuotePostQuery.graphql
diff --git a/quora/graphql/SummarizeSharePostQuery.graphql b/gpt4free/quora/graphql/SummarizeSharePostQuery.graphql
index cb4a623c..cb4a623c 100644
--- a/quora/graphql/SummarizeSharePostQuery.graphql
+++ b/gpt4free/quora/graphql/SummarizeSharePostQuery.graphql
diff --git a/quora/graphql/UserSnippetFragment.graphql b/gpt4free/quora/graphql/UserSnippetFragment.graphql
index 17fc8426..17fc8426 100644
--- a/quora/graphql/UserSnippetFragment.graphql
+++ b/gpt4free/quora/graphql/UserSnippetFragment.graphql
diff --git a/quora/graphql/ViewerInfoQuery.graphql b/gpt4free/quora/graphql/ViewerInfoQuery.graphql
index 1ecaf9e8..1ecaf9e8 100644
--- a/quora/graphql/ViewerInfoQuery.graphql
+++ b/gpt4free/quora/graphql/ViewerInfoQuery.graphql
diff --git a/quora/graphql/ViewerStateFragment.graphql b/gpt4free/quora/graphql/ViewerStateFragment.graphql
index 3cd83e9c..3cd83e9c 100644
--- a/quora/graphql/ViewerStateFragment.graphql
+++ b/gpt4free/quora/graphql/ViewerStateFragment.graphql
diff --git a/quora/graphql/ViewerStateUpdatedSubscription.graphql b/gpt4free/quora/graphql/ViewerStateUpdatedSubscription.graphql
index 03fc73d1..03fc73d1 100644
--- a/quora/graphql/ViewerStateUpdatedSubscription.graphql
+++ b/gpt4free/quora/graphql/ViewerStateUpdatedSubscription.graphql
diff --git a/quora/graphql/__init__.py b/gpt4free/quora/graphql/__init__.py
index e69de29b..e69de29b 100644
--- a/quora/graphql/__init__.py
+++ b/gpt4free/quora/graphql/__init__.py
diff --git a/quora/mail.py b/gpt4free/quora/mail.py
index e6ce96c2..e6ce96c2 100644
--- a/quora/mail.py
+++ b/gpt4free/quora/mail.py