mirror of
https://github.com/lanqian528/chat2api.git
synced 2026-06-13 21:02:46 +08:00
47 lines
1.7 KiB
Python
47 lines
1.7 KiB
Python
import random
|
|
|
|
from curl_cffi.requests import AsyncSession
|
|
|
|
|
|
class Client:
|
|
def __init__(self, proxy=None, timeout=30, verify=True):
|
|
self.proxies = {
|
|
"http": proxy,
|
|
"https": proxy,
|
|
}
|
|
self.timeout = timeout
|
|
self.verify = verify
|
|
self.headers = None
|
|
self.cookies = None
|
|
self.impersonate = random.choice(["chrome", "safari", "safari_ios"])
|
|
|
|
async def post(self, *args, headers=None, cookies=None, **kwargs):
|
|
if not headers:
|
|
headers = self.headers
|
|
if not cookies:
|
|
cookies = self.cookies
|
|
s = AsyncSession(proxies=self.proxies, timeout=self.timeout, verify=self.verify)
|
|
r = await s.post(*args, headers=headers, cookies=cookies, impersonate=self.impersonate, **kwargs)
|
|
self.cookies = r.cookies
|
|
return r
|
|
|
|
async def get(self, *args, headers=None, cookies=None, **kwargs):
|
|
s = AsyncSession(proxies=self.proxies, timeout=self.timeout, verify=self.verify)
|
|
if not headers:
|
|
headers = self.headers
|
|
if not cookies:
|
|
cookies = self.cookies
|
|
r = await s.get(*args, headers=headers, cookies=cookies, impersonate=self.impersonate, **kwargs)
|
|
self.cookies = r.cookies
|
|
return r
|
|
|
|
async def request(self, *args, headers=None, cookies=None, **kwargs):
|
|
s = AsyncSession(proxies=self.proxies, timeout=self.timeout, verify=self.verify)
|
|
if not headers:
|
|
headers = self.headers
|
|
if not cookies:
|
|
cookies = self.cookies
|
|
r = await s.request(*args, headers=headers, cookies=cookies, impersonate=self.impersonate, **kwargs)
|
|
self.cookies = r.cookies
|
|
return r
|