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
  • httpx

Installation

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

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.

Source Distribution

siotelegram-1.3.0.tar.gz (5.5 kB view details)

Uploaded Source

Built Distribution

siotelegram-1.3.0-py3-none-any.whl (6.0 kB view details)

Uploaded Python 3

File details

Details for the file siotelegram-1.3.0.tar.gz.

File metadata

  • Download URL: siotelegram-1.3.0.tar.gz
  • Upload date:
  • Size: 5.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.3

File hashes

Hashes for siotelegram-1.3.0.tar.gz
Algorithm Hash digest
SHA256 9a202163e69f35b6c2350d90818ede33879f69698bd7b77241706b7bc7b47771
MD5 d6505cb4d5089bf0287eac03c0d6ad19
BLAKE2b-256 527f6aa04e80a76dedfbf9901da7e3de5b5aa3a03fd499e9a3137fbb8179934f

See more details on using hashes here.

File details

Details for the file siotelegram-1.3.0-py3-none-any.whl.

File metadata

  • Download URL: siotelegram-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 6.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.3

File hashes

Hashes for siotelegram-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3ea69d48fcda500e05439f671aec026a362fcb7089740ad854ea18ec10b5accd
MD5 160d60a00ef615a3debd0a5d99b88470
BLAKE2b-256 1ac56cc32bade515035aac2d56b40993e794a8d9e7308d289158318ce4669bc9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page