Add steps and downloads example.

This commit is contained in:
Alex Root Junior 2017-06-02 23:24:28 +03:00
parent 4c210a2641
commit bf9657dfc5

View file

@ -0,0 +1,65 @@
import asyncio
import logging
from aiogram import Bot, types
from aiogram.dispatcher import Dispatcher
from aiogram.types import ContentType
API_TOKEN = 'BOT TOKEN HERE'
logging.basicConfig(level=logging.INFO)
loop = asyncio.get_event_loop()
bot = Bot(token=API_TOKEN, loop=loop)
dp = Dispatcher(bot)
@dp.message_handler(commands=['start'])
async def send_welcome(message):
await message.reply("Hi!\nI'm EchoBot!\nPowered by aiogram.")
@dp.message_handler(commands=['sticker'])
async def save_sticker(message):
async def handle_bad_message(msg):
"""
Handler for unknown messages
"""
await msg.reply('That is not a sticker!')
# Create an reply markup (ForceReply)
markup = types.ForceReply(selective=True)
# Send reply to user
await message.reply('Please send me a sticker.', reply_markup=markup)
# Wait next message
# It can only be a sticker
msg = await dp.next_message(message,
content_types=[ContentType.STICKER],
otherwise=handle_bad_message)
# Download file to memory (io.BytesIO)
photo = await bot.download_file(msg.sticker.file_id)
# And you can use other syntax:
# photo = io.BytesIO()
# await bot.download_file(msg.sticker.file_id, photo)
# Or use filename for download file to filesystem:
# await bot.download_file(msg.sticker.file_id, 'sticker.webp')
# Send photo to user
await bot.send_photo(message.chat.id, photo, caption=msg.sticker.emoji,
reply_to_message_id=message.message_id)
async def main():
count = await dp.skip_updates()
print(f"Skipped {count} updates.")
await dp.start_pooling()
if __name__ == '__main__':
try:
loop.run_until_complete(main())
except KeyboardInterrupt:
loop.stop()