Skip to content

Commit

Permalink
Merge pull request xtekky#345 from sudouser777/feature/delete_poe_acc…
Browse files Browse the repository at this point in the history
…ount

Feature/delete poe account
  • Loading branch information
xtekky committed May 1, 2023
2 parents 06d17a1 + bcd8592 commit 9c0b440
Show file tree
Hide file tree
Showing 14 changed files with 75 additions and 51 deletions.
7 changes: 3 additions & 4 deletions gpt4free/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
from gpt4free import forefront
from gpt4free import quora
from gpt4free import theb
from gpt4free import you
from gpt4free import usesless
from gpt4free import you


class Provider(Enum):
Expand All @@ -24,7 +24,6 @@ class Completion:

@staticmethod
def create(provider: Provider, prompt: str, **kwargs) -> str:

"""
Invokes the given provider with given prompt and addition arguments and returns the string response
Expand All @@ -47,10 +46,10 @@ def create(provider: Provider, prompt: str, **kwargs) -> str:
return Completion.__useless_service(prompt, **kwargs)
else:
raise Exception('Provider not exist, Please try again')

@staticmethod
def __useless_service(prompt: str, **kwargs) -> str:
return usesless.Completion.create(prompt = prompt, **kwargs)
return usesless.Completion.create(prompt=prompt, **kwargs)

@staticmethod
def __you_service(prompt: str, **kwargs) -> str:
Expand Down
16 changes: 6 additions & 10 deletions gpt4free/forefront/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
from uuid import uuid4

from fake_useragent import UserAgent
from requests import post
from pymailtm import MailTm, Message
from requests import post
from tls_client import Session

from .typing import ForeFrontResponse
Expand Down Expand Up @@ -43,10 +43,7 @@ def create(proxy: Optional[str] = None, logging: bool = False):

response = client.post(
f'https://clerk.forefront.ai/v1/client/sign_ups/{trace_token}/prepare_verification?_clerk_js_version=4.38.4',
data={
'strategy': 'email_link',
'redirect_url': 'https://accounts.forefront.ai/sign-up/verify'
},
data={'strategy': 'email_link', 'redirect_url': 'https://accounts.forefront.ai/sign-up/verify'},
)

if logging:
Expand Down Expand Up @@ -93,14 +90,14 @@ def create(
action_type='new',
default_persona='607e41fe-95be-497e-8e97-010a59b2e2c0', # default
model='gpt-4',
proxy=None
proxy=None,
) -> Generator[ForeFrontResponse, None, None]:
if not token:
raise Exception('Token is required!')
if not chat_id:
chat_id = str(uuid4())

proxies = { 'http': 'http:https://' + proxy, 'https': 'http:https://' + proxy } if proxy else None
proxies = {'http': 'http:https://' + proxy, 'https': 'http:https://' + proxy} if proxy else None

headers = {
'authority': 'chat-server.tenant-forefront-default.knative.chi.coreweave.com',
Expand Down Expand Up @@ -168,7 +165,7 @@ def create(
action_type='new',
default_persona='607e41fe-95be-497e-8e97-010a59b2e2c0', # default
model='gpt-4',
proxy=None
proxy=None,
) -> ForeFrontResponse:
text = ''
final_response = None
Expand All @@ -179,7 +176,7 @@ def create(
action_type=action_type,
default_persona=default_persona,
model=model,
proxy=proxy
proxy=proxy,
):
if response:
final_response = response
Expand All @@ -191,4 +188,3 @@ def create(
raise Exception('Unable to get the response, Please try again')

return final_response

3 changes: 2 additions & 1 deletion gpt4free/forefront/typing.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from typing import Any, List

from pydantic import BaseModel


Expand All @@ -22,4 +23,4 @@ class ForeFrontResponse(BaseModel):
model: str
choices: List[Choice]
usage: Usage
text: str
text: str
9 changes: 9 additions & 0 deletions gpt4free/quora/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,4 +65,13 @@ poe.chat('who won the football world cup most?')
# new bot creation
poe.create_bot('new_bot_name', prompt='You are new test bot', base_model='gpt-3.5-turbo')

# delete account
poe.delete_account()
```

### Deleting the Poe Account
```python
from gpt4free import quora

quora.Account.delete(token='')
```
23 changes: 12 additions & 11 deletions gpt4free/quora/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -285,6 +285,11 @@ def get(self):
cookies = open(Path(__file__).resolve().parent / 'cookies.txt', 'r').read().splitlines()
return choice(cookies)

@staticmethod
def delete(token: str, proxy: Optional[str] = None):
client = PoeClient(token, proxy=proxy)
client.delete_account()


class StreamingCompletion:
@staticmethod
Expand All @@ -293,11 +298,11 @@ def create(
custom_model: bool = None,
prompt: str = 'hello world',
token: str = '',
proxy: Optional[str] = None
proxy: Optional[str] = None,
) -> Generator[PoeResponse, None, None]:
_model = MODELS[model] if not custom_model else custom_model

proxies = { 'http': 'http:https://' + proxy, 'https': 'http:https://' + proxy } if proxy else False
proxies = {'http': 'http:https://' + proxy, 'https': 'http:https://' + proxy} if proxy else False
client = PoeClient(token)
client.proxy = proxies

Expand Down Expand Up @@ -333,7 +338,7 @@ def create(
custom_model: str = None,
prompt: str = 'hello world',
token: str = '',
proxy: Optional[str] = None
proxy: Optional[str] = None,
) -> PoeResponse:
_model = MODELS[model] if not custom_model else custom_model

Expand Down Expand Up @@ -454,14 +459,7 @@ def chat(self, message: str, model: Optional[str] = None) -> str:
response = chunk['text']
return response

def create_bot(
self,
name: str,
/,
prompt: str = '',
base_model: str = 'ChatGPT',
description: str = '',
) -> None:
def create_bot(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.')

Expand All @@ -475,3 +473,6 @@ def create_bot(

def list_bots(self) -> list:
return list(self.client.bot_names.values())

def delete_account(self) -> None:
self.client.delete_account()
6 changes: 6 additions & 0 deletions gpt4free/quora/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -541,5 +541,11 @@ def edit_bot(
self.get_bots()
return data

def delete_account(self) -> None:
response = self.send_query('SettingsDeleteAccountButton_deleteAccountMutation_Mutation', {})
data = response['data']['deleteAccount']
if 'viewer' not in data:
raise RuntimeError(f'Error occurred while deleting the account, Please try again!')


load_queries()
30 changes: 19 additions & 11 deletions gpt4free/quora/backup-mail.py
Original file line number Diff line number Diff line change
@@ -1,37 +1,45 @@
from requests import Session
from time import sleep
from json import loads
from re import findall
from time import sleep

from requests import Session


class Mail:
def __init__(self) -> None:
self.client = Session()
self.client.post("https://etempmail.com/")
self.cookies = {'acceptcookie': 'true'}
self.cookies["ci_session"] = self.client.cookies.get_dict()["ci_session"]
self.email = None

def get_mail(self):
respone=self.client.post("https://etempmail.com/getEmailAddress")
#cookies
respone = self.client.post("https://etempmail.com/getEmailAddress")
# cookies
self.cookies["lisansimo"] = eval(respone.text)["recover_key"]
self.email = eval(respone.text)["address"]
return self.email

def get_message(self):
print("Waiting for message...")
while True:
sleep(5)
respone=self.client.post("https://etempmail.com/getInbox")
mail_token=loads(respone.text)
respone = self.client.post("https://etempmail.com/getInbox")
mail_token = loads(respone.text)
print(self.client.cookies.get_dict())
if len(mail_token) == 1:
break

params = {'id': '1',}
self.mail_context = self.client.post("https://etempmail.com/getInbox",params=params)

params = {
'id': '1',
}
self.mail_context = self.client.post("https://etempmail.com/getInbox", params=params)
self.mail_context = eval(self.mail_context.text)[0]["body"]
return self.mail_context
#,cookies=self.cookies

# ,cookies=self.cookies
def get_verification_code(self):
message = self.mail_context
code = findall(r';">(\d{6,7})</div>', message)[0]
print(f"Verification code: {code}")
return code
return code
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
mutation SettingsDeleteAccountButton_deleteAccountMutation_Mutation{ deleteAccount { viewer { uid id } }}
6 changes: 4 additions & 2 deletions gpt4free/theb/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ class Completion:
last_msg_id = None

@staticmethod
def request(prompt: str, proxy: Optional[str]=None):
def request(prompt: str, proxy: Optional[str] = None):
headers = {
'authority': 'chatbot.theb.ai',
'content-type': 'application/json',
Expand All @@ -45,8 +45,10 @@ def request(prompt: str, proxy: Optional[str]=None):
Completion.stream_completed = True

@staticmethod
def create(prompt: str, proxy: Optional[str]=None) -> Generator[str, None, None]:

def create(prompt: str, proxy: Optional[str] = None) -> Generator[str, None, None]:
Completion.stream_completed = False

Thread(target=Completion.request, args=[prompt, proxy]).start()

while not Completion.stream_completed or not Completion.message_queue.empty():
Expand Down
9 changes: 5 additions & 4 deletions gpt4free/usesless/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import requests
import json

import requests


class Completion:
headers = {
Expand All @@ -24,7 +25,7 @@ def create(
model: str = "gpt-3.5-turbo",
):
print(parentMessageId, prompt)

json_data = {
"openaiKey": "",
"prompt": prompt,
Expand All @@ -42,14 +43,14 @@ def create(
url = "https://ai.usesless.com/api/chat-process"
request = requests.post(url, headers=Completion.headers, json=json_data)
content = request.content

response = Completion.__response_to_json(content)
return response

@classmethod
def __response_to_json(cls, text) -> dict:
text = str(text.decode("utf-8"))

split_text = text.rsplit("\n", 1)[1]
to_json = json.loads(split_text)
return to_json
4 changes: 2 additions & 2 deletions gpt4free/you/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,12 @@ def create(
include_links: bool = False,
detailed: bool = False,
debug: bool = False,
proxy: Optional[str] = None
proxy: Optional[str] = None,
) -> PoeResponse:
if chat is None:
chat = []

proxies = { 'http': 'http:https://' + proxy, 'https': 'http:https://' + proxy } if proxy else {}
proxies = {'http': 'http:https://' + proxy, 'https': 'http:https://' + proxy} if proxy else {}

client = Session(client_identifier='chrome_108')
client.headers = Completion.__get_headers()
Expand Down
4 changes: 3 additions & 1 deletion testing/poe_test.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from time import sleep

from gpt4free import quora
from gpt4free import quora

token = quora.Account.create(proxy=None, logging=True)
print('token', token)
Expand All @@ -9,3 +9,5 @@

for response in quora.StreamingCompletion.create(model='ChatGPT', prompt='hello world', token=token):
print(response.text, flush=True)

quora.Account.delete(token)
2 changes: 1 addition & 1 deletion testing/theb_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@

for token in theb.Completion.create('hello world'):
print(token, end='', flush=True)
print('asdsos')
print('asdsos')
6 changes: 2 additions & 4 deletions testing/useless_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
print(f"Answer: {req['text']}")
message_id = req["id"]


import gpt4free

message_id = ""
Expand All @@ -20,8 +19,7 @@
if prompt == "!stop":
break

req = gpt4free.Completion.create(provider = gpt4free.Provider.UseLess,
prompt=prompt, parentMessageId=message_id)
req = gpt4free.Completion.create(provider=gpt4free.Provider.UseLess, prompt=prompt, parentMessageId=message_id)

print(f"Answer: {req['text']}")
message_id = req["id"]
message_id = req["id"]

0 comments on commit 9c0b440

Please sign in to comment.