Implement client.inline_query()

This commit is contained in:
Lonami Exo 2018-08-01 01:06:47 +02:00
parent 49a6cb4ef8
commit 7a2d7d98ad
6 changed files with 61 additions and 4 deletions

View File

@ -54,6 +54,14 @@ telethon\.tl\.custom\.button module
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
telethon\.tl\.custom\.inlineresult module
-----------------------------------------
.. automodule:: telethon.tl.custom.inlineresult
:members:
:undoc-members:
:show-inheritance:
telethon\.tl\.custom\.chatgetter module telethon\.tl\.custom\.chatgetter module
--------------------------------------- ---------------------------------------

View File

@ -20,4 +20,5 @@ from .chats import ChatMethods
from .dialogs import DialogMethods from .dialogs import DialogMethods
from .downloads import DownloadMethods from .downloads import DownloadMethods
from .auth import AuthMethods from .auth import AuthMethods
from .bots import BotMethods
from .telegramclient import TelegramClient from .telegramclient import TelegramClient

45
telethon/client/bots.py Normal file
View File

@ -0,0 +1,45 @@
from .users import UserMethods
from ..tl import types, functions, custom
class BotMethods(UserMethods):
async def inline_query(self, bot, query, *, offset=None, geo_point=None):
"""
Makes the given inline query to the specified bot
i.e. ``@vote My New Poll`` would be as follows:
>>> client = ...
>>> client.inline_query('vote', 'My New Poll')
Args:
bot (`entity`):
The bot entity to which the inline query should be made.
query (`str`):
The query that should be made to the bot.
offset (`str`, optional):
The string offset to use for the bot.
geo_point (:tl:`GeoPoint`, optional)
The geo point location information to send to the bot
for localised results. Available under some bots.
Returns:
A list of `custom.InlineResult
<telethon.tl.custom.inlineresult.InlineResult>`.
"""
bot = await self.get_input_entity(bot)
result = await self(functions.messages.GetInlineBotResultsRequest(
bot=bot,
peer=types.InputPeerEmpty(),
query=query,
offset=offset or '',
geo_point=geo_point
))
# TODO Custom InlineResults(UserList) class with more information
return [
custom.InlineResult(self, x, query_id=result.query_id)
for x in result.results
]

View File

@ -1,12 +1,12 @@
from . import ( from . import (
AuthMethods, DownloadMethods, DialogMethods, ChatMethods, AuthMethods, DownloadMethods, DialogMethods, ChatMethods, BotMethods,
MessageMethods, ButtonMethods, UpdateMethods, UploadMethods, MessageMethods, ButtonMethods, UpdateMethods, UploadMethods,
MessageParseMethods, UserMethods MessageParseMethods, UserMethods
) )
class TelegramClient( class TelegramClient(
AuthMethods, DownloadMethods, DialogMethods, ChatMethods, AuthMethods, DownloadMethods, DialogMethods, ChatMethods, BotMethods,
MessageMethods, UploadMethods, ButtonMethods, UpdateMethods, MessageMethods, UploadMethods, ButtonMethods, UpdateMethods,
MessageParseMethods, UserMethods MessageParseMethods, UserMethods
): ):

View File

@ -17,7 +17,9 @@ import inspect
from async_generator import isasyncgenfunction from async_generator import isasyncgenfunction
from .client.telegramclient import TelegramClient from .client.telegramclient import TelegramClient
from .tl.custom import Draft, Dialog, MessageButton, Forward, Message from .tl.custom import (
Draft, Dialog, MessageButton, Forward, Message, InlineResult
)
from .tl.custom.chatgetter import ChatGetter from .tl.custom.chatgetter import ChatGetter
from .tl.custom.sendergetter import SenderGetter from .tl.custom.sendergetter import SenderGetter
@ -81,4 +83,4 @@ def syncify(*types):
syncify(TelegramClient, Draft, Dialog, MessageButton, syncify(TelegramClient, Draft, Dialog, MessageButton,
ChatGetter, SenderGetter, Forward, Message) ChatGetter, SenderGetter, Forward, Message, InlineResult)

View File

@ -6,3 +6,4 @@ from .forward import Forward
from .message import Message from .message import Message
from .button import Button from .button import Button
from .inline import InlineBuilder from .inline import InlineBuilder
from .inlineresult import InlineResult