Skip to main content

No project description provided

Project description

OrigamiBot - A Pythonic telegram bot API library

This is WORK IN PROGRESS

Library for creating bots for telegram with Python.

TODO

  • implement methods for sending messages, media, etc.

Usage example

Here goes a simple example of a bot:

from sys import argv
from time import sleep

from origamibot import OrigamiBot as Bot


class BotsCommands:
    def __init__(self, bot: Bot):  # Can initialize however you like
        self.bot = bot

    def start(self, message):   # /start command
        self.bot.send_message(
            message.chat.id,
            'Hello user!\nThis is an example bot.')

    def echo(self, message, value: str):  # /echo [value: str] command
        self.bot.send_message(
            message.chat.id,
        	value)

    def add(self, message, a: float, b: float):   # /add [a: float] [b: float] command
        self.bot.send_message(
        	message.chat.id,
            str(a + b))


if __name__ == '__main__':
    token = (argv[1]
             if len(argv) > 1 else 
             input('Enter bot token: '))
    bot = Bot(token)
    bot.add_commands(BotsCommands(bot))
    bot.start()   # start bot's threads
    while True:
        sleep(1)
        # Can also do some useful work i main thread
        # Like autoposting to channels for example

Commands are added as methods of an object(be it class or instance of it), if their names don't start with _ which makes it possible to also contain some utility functions inside command container.

For the command to be called two conditions must be met:

  1. command name must match with method name
  2. command's arguments must match signature of a method

Method signature supports any number of arguments with simple typing(str, int, float, bool) or without a typing(in this case all arguments are strings by default), as well as variable number of arguments *args. More complex types(as lists, tuples, custom object classes) are not supported, as bot does not know how to parse them, and I don't want to enforce my own parsing algorithm, but bot will still attempt to convert it like cls(argument), but a correct result is not guaranteed.

Boolean values are considered True if their string representation is in {'True', 'true', '1'}, and False if in {'False', 'false', '0'}

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

origamibot-0.1.0.tar.gz (15.0 kB view details)

Uploaded Source

Built Distribution

origamibot-0.1.0-py3-none-any.whl (17.4 kB view details)

Uploaded Python 3

File details

Details for the file origamibot-0.1.0.tar.gz.

File metadata

  • Download URL: origamibot-0.1.0.tar.gz
  • Upload date:
  • Size: 15.0 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.46.1 CPython/3.8.3

File hashes

Hashes for origamibot-0.1.0.tar.gz
Algorithm Hash digest
SHA256 51f4510149b1033c6616908d1d135a169aec631549c03da6f8298e4f253bdf1d
MD5 95f6cc54c0223f80b385690c3f1bdcbc
BLAKE2b-256 14057170b4e1e6f99bd8849fd5c26f534e2a6b5dab090e592b4a757868041c4a

See more details on using hashes here.

File details

Details for the file origamibot-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: origamibot-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 17.4 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.46.1 CPython/3.8.3

File hashes

Hashes for origamibot-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a5573e508948910349288a6876dfad03bf52a34391ffa17327ddbe118b7b6453
MD5 060ebb523d89b5521996eff61ee6f121
BLAKE2b-256 8cdde9cca7ebdd6750734a7ca45e4c37bc94db16eece01a2919f4efc9c92399b

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