Dumbot Save

dumb telegram bot for python.

Project README

dumbot

dumb async telegram bot for python 3.

installation

add dumbot.py to your project or pip install dumbot.

usage

basic

import asyncio
from dumbot import Bot

async def main():
    bot = Bot(token)
    print(await bot.getMe())
    msg = await bot.sendMessage(chat_id=10885151, text='hi lonami')
    if msg.ok:
        print('message sent', msg)
    else:
        print('something went wrong!', msg)

loop = asyncio.get_event_loop()
loop.run_until_complete(main())

files


async def main():
    ...
    await bot.sendDocument(chat_id=10885151, file=dict(
        type='document',
        file='/home/lonami/holiday.jpg'
    ))

updates

async def on_update(update):
    await bot.sendMessage(
        chat_id=update.message.chat.id,
        text=update.message.text[::-1]
    )

...
bot.on_update = on_update
bot.run()

subclassing

class Subbot(Bot):
    async def init(self):
        self.me = await self.getMe()

    async def on_update(self, update):
        await self.sendMessage(
            chat_id=update.message.chat.id,
            text='i am {}'.format(self.me.username)
        )

Subbot(token).run()

faq

what methods are available?

https://core.telegram.org/bots/api.

can i send opened files or bytes directly?

yes.

can i change a document's filename or mime?

yes, with name or mime fields in the dict.

how can i handle exceptions?

there aren't, simply check the .ok property.

what's the return value?

a magic object, accessing unknown properties returns a false-y magic object:

from dumbot import Obj

lonami = Obj(name='lonami', hobby='developer')
print(lonami.name, 'is', lonami.age or 20)

lonami.friend.name = 'kate'
print(lonami.friend)

no dependencies?

python alone is enough dependencies.

how does this work without urllib or aiohttp?

it's simple, we construct http requests manually.

why would you reimplement http?

it's a fun good learning experience, and avoids bloat dependencies.

what do you have against uppercase?

scary. there would be less upper case if it weren't for python's naming conventions or telegram's for that matter.

Open Source Agenda is not affiliated with "Dumbot" Project. README Source: Lonami/dumbot
Stars
32
Open Issues
2
Last Commit
7 months ago
Repository
License
MIT

Open Source Agenda Badge

Open Source Agenda Rating