Skip to main content

Telegram bot API

Project description

Telegram-botup

The library has several utilities:

  • Dispatcher handles incoming updates
  • Sender implements Telegram API methods
  • Other utils, types and etc

Installation

$ pip install telegram-botup

Example

$ pip install telegram-botup flask
# app.py

from botup import Dispatcher, Sender
from botup.wsgi import WSGIApp  # using Flask

TOKEN = "token"

sender = Sender(TOKEN)
dispatcher = Dispatcher()
app = WSGIApp(__name__, botup_dispatcher=dispatcher, botup_token=TOKEN)


@dispatcher.message_handler('hello')
def hello_handler(chat_id, update):
    sender.send_message(chat_id, f'Hello {update.message.from_.first_name}')
$ flask run

Tests

$ pytest -v

AutoStart (experimental)

Bot generating from yaml file

# botup.yml

config:
  token: "token"
  webhook_url: "https://webhook.example.com"
  proxy_string: "socks5h://localhost:3333"
  webhook_auto_setup: True

entrypoint:
  type: Dispatcher
  key: main
  handlers:
    CommandHandler:
      - pattern: /start
        function: send_message
        kwargs:
          text: "Hello"
$ botup start

send_photo

- pattern: /photo
    function: send_photo
    kwargs:
      photo:
        type: InputFile
        kwargs:
          path: /home/user/Pictures/example.jpeg

keyboard

- pattern: /kb
    function: send_message
    kwargs:
      text: "keyboard\n/remove"
      reply_markup:
        type: ReplyKeyboardMarkup
        kwargs:
          keyboard:
            - - text: 1
              - text: 2
              - text: 3
            - - text: 4
              - text: 5
              - text: 6
          resize_keyboard: True
  - pattern: /remove
    function: send_message
    kwargs:
      text: removed
      reply_markup:
        type: ReplyKeyboardRemove

states

config:
  token: "token"
  webhook_url: "https://webhook.example.com"
  proxy_string: "socks5h://localhost:3333"
  webhook_auto_setup: True
  redis:
    host: "localhost"
    port: 6379
    db: 0

entrypoint:
  type: StateDispatcher
  key: main
  handlers:
    CommandHandler:
      - pattern: /start
        function: send_message
        kwargs:
          text: "For change state click below command\n/change\n\nFor print current state click command\n/print"
      - pattern: /print
        function: send_message
        kwargs:
          text: "state = main"
      - pattern: /change
        states:
          main: changed
        function: send_message
        kwargs:
          text: "For return press\n/back\n\nFor print current state click command\n/print"
  children:
    - type: Dispatcher
      key: changed
      handlers:
        CommandHandler:
          - pattern: /print
            function: send_message
            kwargs:
              text: "state = changed"
          - pattern: /back
            states:
              main: reset
            function: send_message
            kwargs:
              text: "Return to default\n/start"

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

telegram-botup-0.7.4.tar.gz (30.2 kB view hashes)

Uploaded Source

Built Distribution

telegram_botup-0.7.4-py3-none-any.whl (33.5 kB view hashes)

Uploaded Python 3

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