mirror of
https://github.com/yasirarism/MissKatyPyro.git
synced 2025-12-29 09:44:50 +00:00
78 lines
2.5 KiB
Python
78 lines
2.5 KiB
Python
"""
|
|
MIT License
|
|
Copyright (c) 2021 TheHamkerCat
|
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
of this software and associated documentation files (the "Software"), to deal
|
|
in the Software without restriction, including without limitation the rights
|
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
copies of the Software, and to permit persons to whom the Software is
|
|
furnished to do so, subject to the following conditions:
|
|
The above copyright notice and this permission notice shall be included in all
|
|
copies or substantial portions of the Software.
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
SOFTWARE.
|
|
"""
|
|
import httpx
|
|
from asyncio import gather
|
|
from aiohttp import ClientSession
|
|
|
|
# Aiohttp Async Client
|
|
session = ClientSession()
|
|
|
|
# HTTPx Async Client
|
|
http = httpx.AsyncClient(
|
|
http2=True,
|
|
timeout=httpx.Timeout(40),
|
|
)
|
|
|
|
|
|
async def get(url: str, *args, **kwargs):
|
|
async with session.get(url, *args, **kwargs) as resp:
|
|
try:
|
|
data = await resp.json()
|
|
except Exception:
|
|
data = await resp.text()
|
|
return data
|
|
|
|
|
|
async def head(url: str, *args, **kwargs):
|
|
async with session.head(url, *args, **kwargs) as resp:
|
|
try:
|
|
data = await resp.json()
|
|
except Exception:
|
|
data = await resp.text()
|
|
return data
|
|
|
|
|
|
async def post(url: str, *args, **kwargs):
|
|
async with session.post(url, *args, **kwargs) as resp:
|
|
try:
|
|
data = await resp.json()
|
|
except Exception:
|
|
data = await resp.text()
|
|
return data
|
|
|
|
|
|
async def multiget(url: str, times: int, *args, **kwargs):
|
|
return await gather(*[get(url, *args, **kwargs) for _ in range(times)])
|
|
|
|
|
|
async def multihead(url: str, times: int, *args, **kwargs):
|
|
return await gather(*[head(url, *args, **kwargs) for _ in range(times)])
|
|
|
|
|
|
async def multipost(url: str, times: int, *args, **kwargs):
|
|
return await gather(*[post(url, *args, **kwargs) for _ in range(times)])
|
|
|
|
|
|
async def resp_get(url: str, *args, **kwargs):
|
|
return await session.get(url, *args, **kwargs)
|
|
|
|
|
|
async def resp_post(url: str, *args, **kwargs):
|
|
return await session.post(url, *args, **kwargs)
|