From 51ac1a9d6c02307159ddb3598d395518334d75f3 Mon Sep 17 00:00:00 2001 From: Alex Root Junior Date: Tue, 30 May 2017 23:31:59 +0300 Subject: [PATCH] Add setMebhook, deleteWebhook, GetWebhookInfo --- aiogram/api.py | 6 +++--- aiogram/bot.py | 21 +++++++++++++++++++++ 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/aiogram/api.py b/aiogram/api.py index 8ba65091..2408780c 100644 --- a/aiogram/api.py +++ b/aiogram/api.py @@ -86,9 +86,9 @@ async def request(session, token, method, data=None, files=None): class ApiMethods: GET_ME = 'getMe' GET_UPDATES = 'getUpdates' - SET_WEBHOOK = 'setWebhook' # TODO - DELETE_WEBHOOK = 'deleteWebhook' # TODO - GET_WEBHOOK_INFO = 'getWebhookInfo' # TODO + SET_WEBHOOK = 'setWebhook' + DELETE_WEBHOOK = 'deleteWebhook' + GET_WEBHOOK_INFO = 'getWebhookInfo' SEND_MESSAGE = 'sendMessage' FORWARD_MESSAGE = 'forwardMessage' SEND_PHOTO = 'sendPhoto' diff --git a/aiogram/bot.py b/aiogram/bot.py index 6a231923..52904e2f 100644 --- a/aiogram/bot.py +++ b/aiogram/bot.py @@ -5,6 +5,7 @@ import aiohttp from aiogram.types.file import File from aiogram.types.user_profile_photos import UserProfilePhotos +from aiogram.types.webhook_info import WebhookInfo from . import api from .api import ApiMethods from .types.chat import Chat @@ -95,6 +96,26 @@ class AIOGramBot: raw = await self.request(ApiMethods.GET_UPDATES, payload) return [self.prepare_object(Update.de_json(raw_update)) for raw_update in raw] + async def set_webhook(self, url, certificate=None, max_connections=None, allowed_updates=None): + payload = generate_payload(**locals(), exclude='certificate') + if certificate: + cert = {'certificate': certificate} + req = self.request(ApiMethods.SET_WEBHOOK, payload, cert) + else: + req = self.request(ApiMethods.SET_WEBHOOK, payload) + + return self.prepare_object(WebhookInfo.de_json(await req)) + + async def delete_webhook(self): + payload = {} + await self.request(ApiMethods.DELETE_WEBHOOK, payload) + return True + + async def get_webhook_info(self): + payload = {} + webhook_info = await self.request(ApiMethods.GET_WEBHOOK_INFO, payload) + return self.prepare_object(webhook_info) + async def send_message(self, chat_id, text, parse_mode=None, disable_web_page_preview=None, disable_notification=None, reply_to_message_id=None, reply_markup=None): """