Files
AutoShop-Wednesday/tgbot/services/api_session.py
T
2026-07-15 07:17:25 +05:00

32 lines
991 B
Python

# - *- coding: utf- 8 - *-
import ssl
from typing import Optional
import aiohttp
import certifi
# Асинхронная сессия для запросов
class AsyncRequestSession:
# Создание ленивой aiohttp-сессии
def __init__(self) -> None:
self._session: Optional[aiohttp.ClientSession] = None
# Получение объекта сессии
async def get_session(self) -> aiohttp.ClientSession:
if self._session is None:
ssl_context = ssl.create_default_context(cafile=certifi.where())
timeout = aiohttp.ClientTimeout(total=15, connect=5, sock_read=10)
connector = aiohttp.TCPConnector(ssl=ssl_context)
self._session = aiohttp.ClientSession(timeout=timeout, connector=connector)
return self._session
# Закрытие сессии
async def close(self) -> None:
if self._session is None:
return None
await self._session.close()