diff --git a/unfinished/bard/README.md b/unfinished/bard/README.md new file mode 100644 index 0000000..67e8645 --- /dev/null +++ b/unfinished/bard/README.md @@ -0,0 +1,2 @@ +to do: +- code refractoring \ No newline at end of file diff --git a/experimental/bard/__init__.py b/unfinished/bard/__init__.py similarity index 100% rename from experimental/bard/__init__.py rename to unfinished/bard/__init__.py diff --git a/experimental/bard/typings.py b/unfinished/bard/typings.py similarity index 100% rename from experimental/bard/typings.py rename to unfinished/bard/typings.py diff --git a/unfinished/bing/README.md b/unfinished/bing/README.md new file mode 100644 index 0000000..67e8645 --- /dev/null +++ b/unfinished/bing/README.md @@ -0,0 +1,2 @@ +to do: +- code refractoring \ No newline at end of file diff --git a/experimental/bing/__ini__.py b/unfinished/bing/__ini__.py similarity index 100% rename from experimental/bing/__ini__.py rename to unfinished/bing/__ini__.py diff --git a/unfinished/gptbz/README.md b/unfinished/gptbz/README.md new file mode 100644 index 0000000..05bc277 --- /dev/null +++ b/unfinished/gptbz/README.md @@ -0,0 +1,4 @@ +https://chat.gpt.bz + +to do: +- code refractoring \ No newline at end of file diff --git a/unfinished/gptbz/__init__.py b/unfinished/gptbz/__init__.py new file mode 100644 index 0000000..6762b4a --- /dev/null +++ b/unfinished/gptbz/__init__.py @@ -0,0 +1,31 @@ +import asyncio +import websockets + +from json import dumps, loads + +async def test(): + async with websockets.connect('wss://chatgpt.func.icu/conversation+ws') as wss: + + await wss.send(dumps(separators=(',', ':'), obj = { + 'content_type':'text', + 'engine':'chat-gpt', + 'parts':['hello world'], + 'options':{} + } + )) + + ended = None + + while not ended: + try: + response = await wss.recv() + json_response = loads(response) + ended = json_response.get('eof') + + if not ended: + print(json_response['content']['parts'][0]) + + except websockets.ConnectionClosed: + break + +asyncio.run(test()) \ No newline at end of file diff --git a/unfinished/openai/README.md b/unfinished/openai/README.md new file mode 100644 index 0000000..67e8645 --- /dev/null +++ b/unfinished/openai/README.md @@ -0,0 +1,2 @@ +to do: +- code refractoring \ No newline at end of file diff --git a/experimental/openai/__ini__.py b/unfinished/openai/__ini__.py similarity index 100% rename from experimental/openai/__ini__.py rename to unfinished/openai/__ini__.py diff --git a/unfinished/openprompt/README.md b/unfinished/openprompt/README.md new file mode 100644 index 0000000..489d054 --- /dev/null +++ b/unfinished/openprompt/README.md @@ -0,0 +1,5 @@ +https://openprompt.co/ + +to do: +- finish integrating email client +- code refractoring \ No newline at end of file diff --git a/unfinished/openprompt/create.py b/unfinished/openprompt/create.py new file mode 100644 index 0000000..6ccb66f --- /dev/null +++ b/unfinished/openprompt/create.py @@ -0,0 +1,64 @@ +from requests import post, get +from json import dumps +#from mail import MailClient +from time import sleep +from re import findall + +html = get('https://developermail.com/mail/') +print(html.cookies.get('mailboxId')) +email = findall(r'mailto:(.*)">', html.text)[0] + +headers = { + 'apikey': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InVzanNtdWZ1emRjcnJjZXVobnlqIiwicm9sZSI6ImFub24iLCJpYXQiOjE2NzgyODYyMzYsImV4cCI6MTk5Mzg2MjIzNn0.2MQ9Lkh-gPqQwV08inIgqozfbYm5jdYWtf-rn-wfQ7U', + 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', + 'x-client-info': '@supabase/auth-helpers-nextjs@0.5.6', +} + +json_data = { + 'email' : email, + 'password': 'T4xyt4Yn6WWQ4NC', + 'data' : {}, + 'gotrue_meta_security': {}, +} + +response = post('https://usjsmufuzdcrrceuhnyj.supabase.co/auth/v1/signup', headers=headers, json=json_data) +print(response.json()) + +# email_link = None +# while not email_link: +# sleep(1) + +# mails = mailbox.getmails() +# print(mails) + + +quit() + +url = input("Enter the url: ") +response = get(url, allow_redirects=False) + +# https://openprompt.co/#access_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJhdXRoZW50aWNhdGVkIiwiZXhwIjoxNjgyMjk0ODcxLCJzdWIiOiI4NWNkNTNiNC1lZTUwLTRiMDQtOGJhNS0wNTUyNjk4ODliZDIiLCJlbWFpbCI6ImNsc2J5emdqcGhiQGJ1Z2Zvby5jb20iLCJwaG9uZSI6IiIsImFwcF9tZXRhZGF0YSI6eyJwcm92aWRlciI6ImVtYWlsIiwicHJvdmlkZXJzIjpbImVtYWlsIl19LCJ1c2VyX21ldGFkYXRhIjp7fSwicm9sZSI6ImF1dGhlbnRpY2F0ZWQiLCJhYWwiOiJhYWwxIiwiYW1yIjpbeyJtZXRob2QiOiJvdHAiLCJ0aW1lc3RhbXAiOjE2ODE2OTAwNzF9XSwic2Vzc2lvbl9pZCI6ImY4MTg1YTM5LTkxYzgtNGFmMy1iNzAxLTdhY2MwY2MwMGNlNSJ9.UvcTfpyIM1TdzM8ZV6UAPWfa0rgNq4AiqeD0INy6zV8&expires_in=604800&refresh_token=_Zp8uXIA2InTDKYgo8TCqA&token_type=bearer&type=signup + +redirect = response.headers.get('location') +access_token = redirect.split('&')[0].split('=')[1] +refresh_token = redirect.split('&')[2].split('=')[1] + +supabase_auth_token = dumps([access_token, refresh_token, None, None, None], separators=(',', ':')) +print(supabase_auth_token) + +cookies = { + 'supabase-auth-token': supabase_auth_token +} + +json_data = { + 'messages': [ + { + 'role': 'user', + 'content': 'how do I reverse a string in python?' + } + ] +} + +response = post('https://openprompt.co/api/chat2', cookies=cookies, json=json_data, stream=True) +for chunk in response.iter_content(chunk_size=1024): + print(chunk) \ No newline at end of file diff --git a/unfinished/openprompt/mail.py b/unfinished/openprompt/mail.py new file mode 100644 index 0000000..082ac9f --- /dev/null +++ b/unfinished/openprompt/mail.py @@ -0,0 +1,109 @@ +import requests +import email + +class MailClient: + + def __init__(self): + self.username = None + self.token = None + self.raw = None + self.mailids = None + self.mails = None + self.mail = None + + def create(self, force=False): + headers = { + 'accept': 'application/json', + } + + if self.username: + pass + else: + self.response = requests.put( + 'https://www.developermail.com/api/v1/mailbox', headers=headers) + self.response = self.response.json() + self.username = self.response['result']['name'] + self.token = self.response['result']['token'] + + return {'username': self.username, 'token': self.token} + + def destroy(self): + headers = { + 'accept': 'application/json', + 'X-MailboxToken': self.token, + } + self.response = requests.delete( + f'https://www.developermail.com/api/v1/mailbox/{self.username}', headers=headers) + self.response = self.response.json() + self.username = None + self.token = None + return self.response + + def newtoken(self): + headers = { + 'accept': 'application/json', + 'X-MailboxToken': self.token, + } + self.response = requests.put( + f'https://www.developermail.com/api/v1/mailbox/{self.username}/token', headers=headers) + self.response = self.response.json() + self.token = self.response['result']['token'] + return {'username': self.username, 'token': self.token} + + def getmailids(self): + headers = { + 'accept': 'application/json', + 'X-MailboxToken': self.token, + } + + self.response = requests.get( + f'https://www.developermail.com/api/v1/mailbox/{self.username}', headers=headers) + self.response = self.response.json() + self.mailids = self.response['result'] + return self.mailids + + def getmails(self, mailids: list = None): + headers = { + 'accept': 'application/json', + 'X-MailboxToken': self.token, + 'Content-Type': 'application/json', + } + + if mailids is None: + mailids = self.mailids + + data = str(mailids) + + self.response = requests.post( + f'https://www.developermail.com/api/v1/mailbox/{self.username}/messages', headers=headers, data=data) + self.response = self.response.json() + self.mails = self.response['result'] + return self.mails + + def getmail(self, mailid: str, raw=False): + headers = { + 'accept': 'application/json', + 'X-MailboxToken': self.token, + } + self.response = requests.get( + f'https://www.developermail.com/api/v1/mailbox/{self.username}/messages/{mailid}', headers=headers) + self.response = self.response.json() + self.mail = self.response['result'] + if raw is False: + self.mail = email.message_from_string(self.mail) + return self.mail + + def delmail(self, mailid: str): + headers = { + 'accept': 'application/json', + 'X-MailboxToken': self.token, + } + self.response = requests.delete( + f'https://www.developermail.com/api/v1/mailbox/{self.username}/messages/{mailid}', headers=headers) + self.response = self.response.json() + return self.response + + +client = MailClient() +client.newtoken() +print(client.getmails()) \ No newline at end of file diff --git a/unfinished/openprompt/main.py b/unfinished/openprompt/main.py new file mode 100644 index 0000000..2fa4508 --- /dev/null +++ b/unfinished/openprompt/main.py @@ -0,0 +1,37 @@ +import requests + +cookies = { + 'supabase-auth-token': '["eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJhdXRoZW50aWNhdGVkIiwiZXhwIjoxNjgyMjk1NzQyLCJzdWIiOiJlOGExOTdiNS03YTAxLTQ3MmEtODQ5My1mNGUzNTNjMzIwNWUiLCJlbWFpbCI6InFlY3RncHZhamlibGNjQGJ1Z2Zvby5jb20iLCJwaG9uZSI6IiIsImFwcF9tZXRhZGF0YSI6eyJwcm92aWRlciI6ImVtYWlsIiwicHJvdmlkZXJzIjpbImVtYWlsIl19LCJ1c2VyX21ldGFkYXRhIjp7fSwicm9sZSI6ImF1dGhlbnRpY2F0ZWQiLCJhYWwiOiJhYWwxIiwiYW1yIjpbeyJtZXRob2QiOiJvdHAiLCJ0aW1lc3RhbXAiOjE2ODE2OTA5NDJ9XSwic2Vzc2lvbl9pZCI6IjIwNTg5MmE5LWU5YTAtNDk2Yi1hN2FjLWEyMWVkMTkwZDA4NCJ9.o7UgHpiJMfa6W-UKCSCnAncIfeOeiHz-51sBmokg0MA","RtPKeb7KMMC9Dn2fZOfiHA",null,null,null]', +} + +headers = { + 'authority': 'openprompt.co', + 'accept': '*/*', + 'accept-language': 'en,fr-FR;q=0.9,fr;q=0.8,es-ES;q=0.7,es;q=0.6,en-US;q=0.5,am;q=0.4,de;q=0.3', + 'content-type': 'application/json', + # 'cookie': 'supabase-auth-token=%5B%22eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJhdXRoZW50aWNhdGVkIiwiZXhwIjoxNjgyMjkzMjQ4LCJzdWIiOiJlODQwNTZkNC0xZWJhLTQwZDktOWU1Mi1jMTc4MTUwN2VmNzgiLCJlbWFpbCI6InNia2didGJnZHB2bHB0ZUBidWdmb28uY29tIiwicGhvbmUiOiIiLCJhcHBfbWV0YWRhdGEiOnsicHJvdmlkZXIiOiJlbWFpbCIsInByb3ZpZGVycyI6WyJlbWFpbCJdfSwidXNlcl9tZXRhZGF0YSI6e30sInJvbGUiOiJhdXRoZW50aWNhdGVkIiwiYWFsIjoiYWFsMSIsImFtciI6W3sibWV0aG9kIjoib3RwIiwidGltZXN0YW1wIjoxNjgxNjg4NDQ4fV0sInNlc3Npb25faWQiOiJiNDhlMmU3NS04NzlhLTQxZmEtYjQ4MS01OWY0OTgxMzg3YWQifQ.5-3E7WvMMVkXewD1qA26Rv4OFSTT82wYUBXNGcYaYfQ%22%2C%22u5TGGMMeT3zZA0agm5HGuA%22%2Cnull%2Cnull%2Cnull%5D', + 'origin': 'https://openprompt.co', + 'referer': 'https://openprompt.co/ChatGPT', + 'sec-ch-ua': '"Chromium";v="112", "Google Chrome";v="112", "Not:A-Brand";v="99"', + 'sec-ch-ua-mobile': '?0', + 'sec-ch-ua-platform': '"macOS"', + 'sec-fetch-dest': 'empty', + 'sec-fetch-mode': 'cors', + 'sec-fetch-site': 'same-origin', + 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', +} + +json_data = { + 'messages': [ + { + 'role': 'user', + 'content': 'hello world', + }, + ], +} + +response = requests.post('https://openprompt.co/api/chat2', cookies=cookies, headers=headers, json=json_data, stream=True) +for chunk in response.iter_content(chunk_size=1024): + print(chunk) + + diff --git a/unfinished/openprompt/test.py b/unfinished/openprompt/test.py new file mode 100644 index 0000000..d178462 --- /dev/null +++ b/unfinished/openprompt/test.py @@ -0,0 +1,7 @@ +access_token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJhdXRoZW50aWNhdGVkIiwiZXhwIjoxNjgyMjk0ODcxLCJzdWIiOiI4NWNkNTNiNC1lZTUwLTRiMDQtOGJhNS0wNTUyNjk4ODliZDIiLCJlbWFpbCI6ImNsc2J5emdqcGhiQGJ1Z2Zvby5jb20iLCJwaG9uZSI6IiIsImFwcF9tZXRhZGF0YSI6eyJwcm92aWRlciI6ImVtYWlsIiwicHJvdmlkZXJzIjpbImVtYWlsIl19LCJ1c2VyX21ldGFkYXRhIjp7fSwicm9sZSI6ImF1dGhlbnRpY2F0ZWQiLCJhYWwiOiJhYWwxIiwiYW1yIjpbeyJtZXRob2QiOiJvdHAiLCJ0aW1lc3RhbXAiOjE2ODE2OTAwNzF9XSwic2Vzc2lvbl9pZCI6ImY4MTg1YTM5LTkxYzgtNGFmMy1iNzAxLTdhY2MwY2MwMGNlNSJ9.UvcTfpyIM1TdzM8ZV6UAPWfa0rgNq4AiqeD0INy6zV' +supabase_auth_token= '%5B%22eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJhdXRoZW50aWNhdGVkIiwiZXhwIjoxNjgyMjk0ODcxLCJzdWIiOiI4NWNkNTNiNC1lZTUwLTRiMDQtOGJhNS0wNTUyNjk4ODliZDIiLCJlbWFpbCI6ImNsc2J5emdqcGhiQGJ1Z2Zvby5jb20iLCJwaG9uZSI6IiIsImFwcF9tZXRhZGF0YSI6eyJwcm92aWRlciI6ImVtYWlsIiwicHJvdmlkZXJzIjpbImVtYWlsIl19LCJ1c2VyX21ldGFkYXRhIjp7fSwicm9sZSI6ImF1dGhlbnRpY2F0ZWQiLCJhYWwiOiJhYWwxIiwiYW1yIjpbeyJtZXRob2QiOiJvdHAiLCJ0aW1lc3RhbXAiOjE2ODE2OTAwNzF9XSwic2Vzc2lvbl9pZCI6ImY4MTg1YTM5LTkxYzgtNGFmMy1iNzAxLTdhY2MwY2MwMGNlNSJ9.UvcTfpyIM1TdzM8ZV6UAPWfa0rgNq4AiqeD0INy6zV8%22%2C%22_Zp8uXIA2InTDKYgo8TCqA%22%2Cnull%2Cnull%2Cnull%5D' + + +idk = [ + "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJhdXRoZW50aWNhdGVkIiwiZXhwIjoxNjgyMjk0ODcxLCJzdWIiOiI4NWNkNTNiNC1lZTUwLTRiMDQtOGJhNS0wNTUyNjk4ODliZDIiLCJlbWFpbCI6ImNsc2J5emdqcGhiQGJ1Z2Zvby5jb20iLCJwaG9uZSI6IiIsImFwcF9tZXRhZGF0YSI6eyJwcm92aWRlciI6ImVtYWlsIiwicHJvdmlkZXJzIjpbImVtYWlsIl19LCJ1c2VyX21ldGFkYXRhIjp7fSwicm9sZSI6ImF1dGhlbnRpY2F0ZWQiLCJhYWwiOiJhYWwxIiwiYW1yIjpbeyJtZXRob2QiOiJvdHAiLCJ0aW1lc3RhbXAiOjE2ODE2OTAwNzF9XSwic2Vzc2lvbl9pZCI6ImY4MTg1YTM5LTkxYzgtNGFmMy1iNzAxLTdhY2MwY2MwMGNlNSJ9.UvcTfpyIM1TdzM8ZV6UAPWfa0rgNq4AiqeD0INy6zV8", + "_Zp8uXIA2InTDKYgo8TCqA",None,None,None] \ No newline at end of file diff --git a/unfinished/sqlchat/README.md b/unfinished/sqlchat/README.md new file mode 100644 index 0000000..ddd5c8f --- /dev/null +++ b/unfinished/sqlchat/README.md @@ -0,0 +1,3 @@ +https://www.sqlchat.ai/ +to do: +- code refractoring \ No newline at end of file diff --git a/unfinished/sqlchat/__init__.py b/unfinished/sqlchat/__init__.py new file mode 100644 index 0000000..a7c2c54 --- /dev/null +++ b/unfinished/sqlchat/__init__.py @@ -0,0 +1,29 @@ +import requests + +headers = { + 'authority': 'www.sqlchat.ai', + 'accept': '*/*', + 'accept-language': 'en,fr-FR;q=0.9,fr;q=0.8,es-ES;q=0.7,es;q=0.6,en-US;q=0.5,am;q=0.4,de;q=0.3', + 'content-type': 'text/plain;charset=UTF-8', + 'origin': 'https://www.sqlchat.ai', + 'referer': 'https://www.sqlchat.ai/', + 'sec-fetch-dest': 'empty', + 'sec-fetch-mode': 'cors', + 'sec-fetch-site': 'same-origin', + 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', +} + +data = { + 'messages':[ + {'role':'system','content':''}, + {'role':'user','content':'hello world'}, + ], + 'openAIApiConfig':{ + 'key':'', + 'endpoint':'' + } +} + +response = requests.post('https://www.sqlchat.ai/api/chat', headers=headers, json=data, stream=True) +for message in response.iter_content(chunk_size=1024): + print(message) \ No newline at end of file diff --git a/unfinished/theb.ai/README.md b/unfinished/theb.ai/README.md new file mode 100644 index 0000000..c221f86 --- /dev/null +++ b/unfinished/theb.ai/README.md @@ -0,0 +1,3 @@ +https://chatbot.theb.ai/ +to do: +- code refractoring \ No newline at end of file diff --git a/unfinished/theb.ai/__init__.py b/unfinished/theb.ai/__init__.py new file mode 100644 index 0000000..a90a32f --- /dev/null +++ b/unfinished/theb.ai/__init__.py @@ -0,0 +1,57 @@ +from curl_cffi import requests +from json import loads +from re import findall +from threading import Thread +from queue import Queue, Empty + +class Completion: + # experimental + part1 = '{"role":"assistant","id":"chatcmpl' + part2 = '"},"index":0,"finish_reason":null}]}}' + regex = rf'{part1}(.*){part2}' + + timer = None + message_queue = Queue() + stream_completed = False + + def request(): + headers = { + 'authority' : 'chatbot.theb.ai', + 'content-type': 'application/json', + 'origin' : 'https://chatbot.theb.ai', + 'user-agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36', + } + + requests.post('https://chatbot.theb.ai/api/chat-process', headers=headers, content_callback=Completion.handle_stream_response, + json = { + 'prompt' : 'hello world', + 'options': {} + } + ) + + Completion.stream_completed = True + + @staticmethod + def create(): + Thread(target=Completion.request).start() + + while Completion.stream_completed != True or not Completion.message_queue.empty(): + try: + message = Completion.message_queue.get(timeout=0.01) + for message in findall(Completion.regex, message): + yield loads(Completion.part1 + message + Completion.part2) + + except Empty: + pass + + @staticmethod + def handle_stream_response(response): + Completion.message_queue.put(response.decode()) + +def start(): + for message in Completion.create(): + yield message['delta'] + +if __name__ == '__main__': + for message in start(): + print(message)