Skip to main content

Sans io telegram api with couple io backends

Project description

Sans io implementation of telegram api

Tiny telegram bot-api wrapper library.

Reasons

  • aiotg is framework, not library and have no proxy support.
  • Raw api calls translation is better for understanding and will not break if telegram api will be changed.
  • snake_case

Features

  • support both, sync and async ways to deal with io.
  • Simple as telegram api is.
  • snake_case api converted to telegram camelCase.
  • Polling offset handled for you via get_updates method.
  • Handling timeout between requests automatically (via delay keyword-only argument).
  • Use any io backend you want.

Implementation

Sans io implementation based on generators for simplifying flow and holding state. siotelegram have io backends based on:

  • requests
  • aiohttp

Installation

  • sync: python -m pip install siotelegram[requests]
  • async: python -m pip install siotelegram[aiohttp]

Examples

Common

import asyncio

import siotelegram


TOKEN = "token"


def requests_example():
    api = siotelegram.RequestsTelegramApi(TOKEN, timeout=10)
    response = api.get_updates()
    print(response)


async def aiohttp_example():
    async with siotelegram.AioHTTPTelegramApi(TOKEN, timeout=10) as api:
        response = await api.get_updates()
        print(response)


if __name__ == "__main__":
    import time
    # requests
    requests_example()
    time.sleep(1)
    # aiohttp
    asyncio.run(aiohttp_example())

Send files

import siotelegram
api = siotelegram.RequestsTelegramApi(TOKEN, timeout=10)
name = "capybara.jpg"
api.send_photo(chat_id=chat_id, caption="Hellow world!", files_=dict(photo=open(, "rb")))

# or from in-memory bytes
import pathlib
import io
data = pathlib.Path(name).read_bytes()
f = io.BytesIO(data)
f.name = name
api.send_photo(chat_id=chat_id, caption="Hellow world!", files_=dict(photo=f))

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for siotelegram, version 1.2.0
Filename, size File type Python version Upload date Hashes
Filename, size siotelegram-1.2.0-py3-none-any.whl (5.1 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size siotelegram-1.2.0.tar.gz (4.9 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page