Files
Bot-Template/tgbot/services/api_session.py
T
2026-05-29 09:51:18 +03:00

33 lines
983 B
Python

# - *- coding: utf- 8 - *-
from typing import Optional
import aiohttp
# Пример использования в обработчике
# session = await arSession.get_session()
# response = await session.get(...)
# response = await session.post(...)
# Асинхронная сессия для запросов
class AsyncRequestSession:
def __init__(self, timeout: int = 30) -> None:
self._session: Optional[aiohttp.ClientSession] = None
self._timeout = aiohttp.ClientTimeout(total=timeout)
# Получение сессии
async def get_session(self) -> aiohttp.ClientSession:
if self._session is None:
new_session = aiohttp.ClientSession(timeout=self._timeout)
self._session = new_session
return self._session
# Закрытие сессии
async def close(self) -> None:
if self._session is None:
return
await self._session.close()
self._session = None