https://github.com/aiogram/aiohttp-session
Session extension for aiogram
https://github.com/aiogram/aiohttp-session
aiogram aiohttp-client
Last synced: 10 months ago
JSON representation
Session extension for aiogram
- Host: GitHub
- URL: https://github.com/aiogram/aiohttp-session
- Owner: aiogram
- Created: 2020-05-17T01:24:35.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2020-05-17T15:20:40.000Z (over 5 years ago)
- Last Synced: 2025-02-13T08:28:40.808Z (11 months ago)
- Topics: aiogram, aiohttp-client
- Language: Python
- Size: 22.5 KB
- Stars: 1
- Watchers: 4
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.rst
Awesome Lists containing this project
README
Aiohttp extension for aiogram
#############################
Using aiogram with aiohttp as http client
AiohttpSession represents a wrapper-class around `ClientSession` from `aiohttp `_
Installation
============
::
pip install aiogram_aiohttp_session
Basic Usage example
===================
.. code-block:: python
from aiogram import Bot
from aiogram_aiohttp_session import AiohttpSession
session = AiohttpSession()
Bot('token', session=session)
Proxy requests in AiohttpSession
================================
In order to use AiohttpSession with proxy connector you have to install `aiohttp-socks `_
Create proxy session
--------------------
.. code-block:: python
from aiogram import Bot
from aiogram_aiohttp_session import AiohttpSession
session = AiohttpSession(proxy="protocol://host:port/")
Bot(token="bot token", session=session)
.. note:: Only following protocols are supported: http(tunneling), socks4(a), socks5 as aiohttp_socks documentation claims.
Authorization
-------------
Proxy authorization credentials can be specified in proxy URL or come as an instance of `aiohttp.BasicAuth` containing
login and password.
Consider examples:
.. code-block:: python
from aiohttp import BasicAuth
from aiogram_aiohttp_session import AiohttpSession
auth = BasicAuth(login="user", password="password")
session = AiohttpSession(proxy=("protocol://host:port", auth))
# or simply include your basic auth credential in URL
session = AiohttpSession(proxy="protocol://user:password@host:port")
.. note:: Library prefers `BasicAuth` over username and password in URL, so
if proxy URL contains login and password and `BasicAuth` object is passed at the same time
aiogram will use login and password from `BasicAuth` instance.
Proxy chains
------------
Since `aiohttp-socks `_ supports proxy chains, you're able to use them in aiogram
Example of chain proxies:
^^^^^^^^^^^^^^^^^^^^^^^^^
.. code-block:: python
from aiohttp import BasicAuth
from aiogram_aiohttp_session import AiohttpSession
auth = BasicAuth(login="user", password="password")
session = AiohttpSession(
proxy={"protocol0://host:port0",
"protocol1://user:password@host:port1",
("protocol2://host:port2", auth),} # can be any iterable if not set
)
Rationale
=========
Get rid of huge redundant code-base in main repo. Make an example of session extension for aiogram