2018-10-01 23:29:46 +02:00
|
|
|
#!/usr/bin/env python
|
2015-08-11 21:58:17 +02:00
|
|
|
#
|
|
|
|
# A library that provides a Python interface to the Telegram Bot API
|
2020-02-02 22:08:54 +01:00
|
|
|
# Copyright (C) 2015-2020
|
2016-01-05 14:12:03 +01:00
|
|
|
# Leandro Toledo de Souza <devs@python-telegram-bot.org>
|
2015-08-11 21:58:17 +02:00
|
|
|
#
|
|
|
|
# This program is free software: you can redistribute it and/or modify
|
|
|
|
# it under the terms of the GNU Lesser Public License as published by
|
|
|
|
# the Free Software Foundation, either version 3 of the License, or
|
|
|
|
# (at your option) any later version.
|
|
|
|
#
|
|
|
|
# This program is distributed in the hope that it will be useful,
|
|
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
# GNU Lesser Public License for more details.
|
|
|
|
#
|
|
|
|
# You should have received a copy of the GNU Lesser Public License
|
|
|
|
# along with this program. If not, see [http://www.gnu.org/licenses/].
|
2015-08-28 17:19:30 +02:00
|
|
|
"""A library that provides a Python interface to the Telegram Bot API"""
|
2015-07-07 21:50:36 +02:00
|
|
|
|
2015-07-20 12:53:58 +02:00
|
|
|
from .base import TelegramObject
|
2020-04-10 19:22:45 +02:00
|
|
|
from .botcommand import BotCommand
|
2015-07-12 15:39:11 +02:00
|
|
|
from .user import User
|
2017-07-01 17:08:45 +02:00
|
|
|
from .files.chatphoto import ChatPhoto
|
2015-12-16 15:31:02 +01:00
|
|
|
from .chat import Chat
|
2016-05-24 01:22:31 +02:00
|
|
|
from .chatmember import ChatMember
|
2019-09-06 21:41:43 +02:00
|
|
|
from .chatpermissions import ChatPermissions
|
2017-06-18 12:35:00 +02:00
|
|
|
from .files.photosize import PhotoSize
|
|
|
|
from .files.audio import Audio
|
|
|
|
from .files.voice import Voice
|
|
|
|
from .files.document import Document
|
Bot API 4.0 (#1168)
Telegram Passport (#1174):
- Add full support for telegram passport.
- New types: PassportData, PassportFile, EncryptedPassportElement, EncryptedCredentials, PassportElementError, PassportElementErrorDataField, PassportElementErrorFrontSide, PassportElementErrorReverseSide, PassportElementErrorSelfie, PassportElementErrorFile and PassportElementErrorFiles.
- New bot method: set_passport_data_errors
- New filter: Filters.passport_data
- Field passport_data field on Message
- PassportData is automagically decrypted when you specify your private key when creating Updater or Bot.
- PassportFiles is also automagically decrypted as you download/retrieve them.
- See new passportbot.py example for details on how to use, or go to our telegram passport wiki page for more info
- NOTE: Passport decryption requires new dependency `cryptography`.
Inputfile rework (#1184):
- Change how Inputfile is handled internally
- This allows support for specifying the thumbnails of photos and videos using the thumb= argument in the different send_ methods.
- Also allows Bot.send_media_group to actually finally send more than one media.
- Add thumb to Audio, Video and Videonote
- Add Bot.edit_message_media together with InputMediaAnimation, InputMediaAudio, and inputMediaDocument.
Other Bot API 4.0 changes:
- Add forusquare_type to Venue, InlineQueryResultVenue, InputVenueMessageContent, and Bot.send_venue. (#1170)
- Add vCard support by adding vcard field to Contact, InlineQueryResultContact, InputContactMessageContent, and Bot.send_contact. (#1166)
- Support new message entities: CASHTAG and PHONE_NUMBER. (#1179)
- Cashtag seems to be things like $USD and $GBP, but it seems telegram doesn't currently send them to bots.
- Phone number also seems to have limited support for now
- Add Bot.send_animation, add width, height, and duration to Animation, and add Filters.animation. (#1172)
Co-authored-by: Jasmin Bom <jsmnbom@gmail.com>
Co-authored-by: code1mountain <32801117+code1mountain@users.noreply.github.com>
Co-authored-by: Eldinnie <pieter.schutz+github@gmail.com>
Co-authored-by: mathefreak1 <mathefreak@hi2.in>
2018-08-29 14:18:58 +02:00
|
|
|
from .files.animation import Animation
|
2017-07-22 13:34:51 +02:00
|
|
|
from .files.sticker import Sticker, StickerSet, MaskPosition
|
2017-06-18 12:35:00 +02:00
|
|
|
from .files.video import Video
|
|
|
|
from .files.contact import Contact
|
|
|
|
from .files.location import Location
|
|
|
|
from .files.venue import Venue
|
2017-06-20 22:41:02 +02:00
|
|
|
from .files.videonote import VideoNote
|
2015-07-12 15:39:11 +02:00
|
|
|
from .chataction import ChatAction
|
2020-04-10 19:22:45 +02:00
|
|
|
from .dice import Dice
|
2015-07-12 15:39:11 +02:00
|
|
|
from .userprofilephotos import UserProfilePhotos
|
2016-04-14 07:21:00 +02:00
|
|
|
from .keyboardbutton import KeyboardButton
|
2020-03-29 09:52:30 +02:00
|
|
|
from .keyboardbuttonpolltype import KeyboardButtonPollType
|
2015-07-20 04:06:04 +02:00
|
|
|
from .replymarkup import ReplyMarkup
|
2015-07-12 15:39:11 +02:00
|
|
|
from .replykeyboardmarkup import ReplyKeyboardMarkup
|
2017-07-23 21:58:20 +02:00
|
|
|
from .replykeyboardremove import ReplyKeyboardRemove
|
2015-07-12 15:39:11 +02:00
|
|
|
from .forcereply import ForceReply
|
|
|
|
from .error import TelegramError
|
2017-06-18 12:35:00 +02:00
|
|
|
from .files.inputfile import InputFile
|
|
|
|
from .files.file import File
|
2015-09-10 19:15:20 +02:00
|
|
|
from .parsemode import ParseMode
|
2016-04-16 16:33:58 +02:00
|
|
|
from .messageentity import MessageEntity
|
2017-06-18 12:35:00 +02:00
|
|
|
from .games.game import Game
|
2020-03-29 09:52:30 +02:00
|
|
|
from .poll import Poll, PollOption, PollAnswer
|
2019-08-23 21:20:41 +02:00
|
|
|
from .loginurl import LoginUrl
|
2017-07-23 22:33:08 +02:00
|
|
|
from .games.callbackgame import CallbackGame
|
2017-06-18 12:35:00 +02:00
|
|
|
from .payment.shippingaddress import ShippingAddress
|
|
|
|
from .payment.orderinfo import OrderInfo
|
|
|
|
from .payment.successfulpayment import SuccessfulPayment
|
|
|
|
from .payment.invoice import Invoice
|
Bot API 4.0 (#1168)
Telegram Passport (#1174):
- Add full support for telegram passport.
- New types: PassportData, PassportFile, EncryptedPassportElement, EncryptedCredentials, PassportElementError, PassportElementErrorDataField, PassportElementErrorFrontSide, PassportElementErrorReverseSide, PassportElementErrorSelfie, PassportElementErrorFile and PassportElementErrorFiles.
- New bot method: set_passport_data_errors
- New filter: Filters.passport_data
- Field passport_data field on Message
- PassportData is automagically decrypted when you specify your private key when creating Updater or Bot.
- PassportFiles is also automagically decrypted as you download/retrieve them.
- See new passportbot.py example for details on how to use, or go to our telegram passport wiki page for more info
- NOTE: Passport decryption requires new dependency `cryptography`.
Inputfile rework (#1184):
- Change how Inputfile is handled internally
- This allows support for specifying the thumbnails of photos and videos using the thumb= argument in the different send_ methods.
- Also allows Bot.send_media_group to actually finally send more than one media.
- Add thumb to Audio, Video and Videonote
- Add Bot.edit_message_media together with InputMediaAnimation, InputMediaAudio, and inputMediaDocument.
Other Bot API 4.0 changes:
- Add forusquare_type to Venue, InlineQueryResultVenue, InputVenueMessageContent, and Bot.send_venue. (#1170)
- Add vCard support by adding vcard field to Contact, InlineQueryResultContact, InputContactMessageContent, and Bot.send_contact. (#1166)
- Support new message entities: CASHTAG and PHONE_NUMBER. (#1179)
- Cashtag seems to be things like $USD and $GBP, but it seems telegram doesn't currently send them to bots.
- Phone number also seems to have limited support for now
- Add Bot.send_animation, add width, height, and duration to Animation, and add Filters.animation. (#1172)
Co-authored-by: Jasmin Bom <jsmnbom@gmail.com>
Co-authored-by: code1mountain <32801117+code1mountain@users.noreply.github.com>
Co-authored-by: Eldinnie <pieter.schutz+github@gmail.com>
Co-authored-by: mathefreak1 <mathefreak@hi2.in>
2018-08-29 14:18:58 +02:00
|
|
|
from .passport.credentials import EncryptedCredentials
|
|
|
|
from .passport.passportfile import PassportFile
|
|
|
|
from .passport.data import IdDocumentData, PersonalDetails, ResidentialAddress
|
|
|
|
from .passport.encryptedpassportelement import EncryptedPassportElement
|
|
|
|
from .passport.passportdata import PassportData
|
2019-08-23 21:20:41 +02:00
|
|
|
from .inline.inlinekeyboardbutton import InlineKeyboardButton
|
|
|
|
from .inline.inlinekeyboardmarkup import InlineKeyboardMarkup
|
2016-04-17 12:42:41 +02:00
|
|
|
from .message import Message
|
2016-04-14 02:10:04 +02:00
|
|
|
from .callbackquery import CallbackQuery
|
2016-01-04 17:31:06 +01:00
|
|
|
from .choseninlineresult import ChosenInlineResult
|
2017-06-18 12:35:00 +02:00
|
|
|
from .inline.inputmessagecontent import InputMessageContent
|
|
|
|
from .inline.inlinequery import InlineQuery
|
|
|
|
from .inline.inlinequeryresult import InlineQueryResult
|
|
|
|
from .inline.inlinequeryresultarticle import InlineQueryResultArticle
|
|
|
|
from .inline.inlinequeryresultaudio import InlineQueryResultAudio
|
|
|
|
from .inline.inlinequeryresultcachedaudio import InlineQueryResultCachedAudio
|
|
|
|
from .inline.inlinequeryresultcacheddocument import InlineQueryResultCachedDocument
|
|
|
|
from .inline.inlinequeryresultcachedgif import InlineQueryResultCachedGif
|
|
|
|
from .inline.inlinequeryresultcachedmpeg4gif import InlineQueryResultCachedMpeg4Gif
|
|
|
|
from .inline.inlinequeryresultcachedphoto import InlineQueryResultCachedPhoto
|
|
|
|
from .inline.inlinequeryresultcachedsticker import InlineQueryResultCachedSticker
|
|
|
|
from .inline.inlinequeryresultcachedvideo import InlineQueryResultCachedVideo
|
|
|
|
from .inline.inlinequeryresultcachedvoice import InlineQueryResultCachedVoice
|
|
|
|
from .inline.inlinequeryresultcontact import InlineQueryResultContact
|
|
|
|
from .inline.inlinequeryresultdocument import InlineQueryResultDocument
|
|
|
|
from .inline.inlinequeryresultgif import InlineQueryResultGif
|
|
|
|
from .inline.inlinequeryresultlocation import InlineQueryResultLocation
|
|
|
|
from .inline.inlinequeryresultmpeg4gif import InlineQueryResultMpeg4Gif
|
|
|
|
from .inline.inlinequeryresultphoto import InlineQueryResultPhoto
|
|
|
|
from .inline.inlinequeryresultvenue import InlineQueryResultVenue
|
|
|
|
from .inline.inlinequeryresultvideo import InlineQueryResultVideo
|
|
|
|
from .inline.inlinequeryresultvoice import InlineQueryResultVoice
|
|
|
|
from .inline.inlinequeryresultgame import InlineQueryResultGame
|
|
|
|
from .inline.inputtextmessagecontent import InputTextMessageContent
|
|
|
|
from .inline.inputlocationmessagecontent import InputLocationMessageContent
|
|
|
|
from .inline.inputvenuemessagecontent import InputVenueMessageContent
|
|
|
|
from .inline.inputcontactmessagecontent import InputContactMessageContent
|
|
|
|
from .payment.labeledprice import LabeledPrice
|
|
|
|
from .payment.shippingoption import ShippingOption
|
|
|
|
from .payment.precheckoutquery import PreCheckoutQuery
|
|
|
|
from .payment.shippingquery import ShippingQuery
|
2016-10-03 20:34:08 +02:00
|
|
|
from .webhookinfo import WebhookInfo
|
2017-06-18 12:35:00 +02:00
|
|
|
from .games.gamehighscore import GameHighScore
|
2015-08-22 04:15:29 +02:00
|
|
|
from .update import Update
|
2020-10-09 17:22:07 +02:00
|
|
|
from .files.inputmedia import (
|
|
|
|
InputMedia,
|
|
|
|
InputMediaVideo,
|
|
|
|
InputMediaPhoto,
|
|
|
|
InputMediaAnimation,
|
|
|
|
InputMediaAudio,
|
|
|
|
InputMediaDocument,
|
|
|
|
)
|
|
|
|
from .constants import (
|
|
|
|
MAX_MESSAGE_LENGTH,
|
|
|
|
MAX_CAPTION_LENGTH,
|
|
|
|
SUPPORTED_WEBHOOK_PORTS,
|
|
|
|
MAX_FILESIZE_DOWNLOAD,
|
|
|
|
MAX_FILESIZE_UPLOAD,
|
|
|
|
MAX_MESSAGES_PER_SECOND_PER_CHAT,
|
|
|
|
MAX_MESSAGES_PER_SECOND,
|
|
|
|
MAX_MESSAGES_PER_MINUTE_PER_GROUP,
|
|
|
|
)
|
|
|
|
from .passport.passportelementerrors import (
|
|
|
|
PassportElementError,
|
|
|
|
PassportElementErrorDataField,
|
|
|
|
PassportElementErrorFile,
|
|
|
|
PassportElementErrorFiles,
|
|
|
|
PassportElementErrorFrontSide,
|
|
|
|
PassportElementErrorReverseSide,
|
|
|
|
PassportElementErrorSelfie,
|
|
|
|
PassportElementErrorTranslationFile,
|
|
|
|
PassportElementErrorTranslationFiles,
|
|
|
|
PassportElementErrorUnspecified,
|
|
|
|
)
|
|
|
|
from .passport.credentials import (
|
|
|
|
Credentials,
|
|
|
|
DataCredentials,
|
|
|
|
SecureData,
|
|
|
|
FileCredentials,
|
|
|
|
TelegramDecryptionError,
|
|
|
|
)
|
2020-10-06 19:28:40 +02:00
|
|
|
from .bot import Bot
|
2018-11-01 10:52:36 +01:00
|
|
|
from .version import __version__ # noqa: F401
|
2016-03-12 15:22:50 +01:00
|
|
|
|
2016-01-13 17:23:15 +01:00
|
|
|
__author__ = 'devs@python-telegram-bot.org'
|
2016-07-29 17:40:11 +02:00
|
|
|
|
2016-10-03 20:55:21 +02:00
|
|
|
__all__ = [
|
2020-10-09 17:22:07 +02:00
|
|
|
'Audio',
|
|
|
|
'Bot',
|
|
|
|
'Chat',
|
|
|
|
'ChatMember',
|
|
|
|
'ChatPermissions',
|
|
|
|
'ChatAction',
|
|
|
|
'ChosenInlineResult',
|
|
|
|
'CallbackQuery',
|
|
|
|
'Contact',
|
|
|
|
'Document',
|
|
|
|
'File',
|
|
|
|
'ForceReply',
|
|
|
|
'InlineKeyboardButton',
|
|
|
|
'InlineKeyboardMarkup',
|
|
|
|
'InlineQuery',
|
|
|
|
'InlineQueryResult',
|
|
|
|
'InlineQueryResult',
|
|
|
|
'InlineQueryResultArticle',
|
|
|
|
'InlineQueryResultAudio',
|
|
|
|
'InlineQueryResultCachedAudio',
|
|
|
|
'InlineQueryResultCachedDocument',
|
|
|
|
'InlineQueryResultCachedGif',
|
|
|
|
'InlineQueryResultCachedMpeg4Gif',
|
|
|
|
'InlineQueryResultCachedPhoto',
|
|
|
|
'InlineQueryResultCachedSticker',
|
|
|
|
'InlineQueryResultCachedVideo',
|
|
|
|
'InlineQueryResultCachedVoice',
|
|
|
|
'InlineQueryResultContact',
|
|
|
|
'InlineQueryResultDocument',
|
|
|
|
'InlineQueryResultGif',
|
|
|
|
'InlineQueryResultLocation',
|
|
|
|
'InlineQueryResultMpeg4Gif',
|
|
|
|
'InlineQueryResultPhoto',
|
|
|
|
'InlineQueryResultVenue',
|
|
|
|
'InlineQueryResultVideo',
|
|
|
|
'InlineQueryResultVoice',
|
|
|
|
'InlineQueryResultGame',
|
|
|
|
'InputContactMessageContent',
|
|
|
|
'InputFile',
|
|
|
|
'InputLocationMessageContent',
|
|
|
|
'InputMessageContent',
|
|
|
|
'InputTextMessageContent',
|
|
|
|
'InputVenueMessageContent',
|
|
|
|
'Location',
|
|
|
|
'EncryptedCredentials',
|
|
|
|
'PassportFile',
|
|
|
|
'EncryptedPassportElement',
|
|
|
|
'PassportData',
|
|
|
|
'Message',
|
|
|
|
'MessageEntity',
|
|
|
|
'ParseMode',
|
|
|
|
'PhotoSize',
|
|
|
|
'ReplyKeyboardRemove',
|
|
|
|
'ReplyKeyboardMarkup',
|
|
|
|
'ReplyMarkup',
|
|
|
|
'Sticker',
|
|
|
|
'TelegramError',
|
|
|
|
'TelegramObject',
|
|
|
|
'Update',
|
|
|
|
'User',
|
|
|
|
'UserProfilePhotos',
|
|
|
|
'Venue',
|
|
|
|
'Video',
|
|
|
|
'Voice',
|
|
|
|
'MAX_MESSAGE_LENGTH',
|
|
|
|
'MAX_CAPTION_LENGTH',
|
|
|
|
'SUPPORTED_WEBHOOK_PORTS',
|
|
|
|
'MAX_FILESIZE_DOWNLOAD',
|
|
|
|
'MAX_FILESIZE_UPLOAD',
|
|
|
|
'MAX_MESSAGES_PER_SECOND_PER_CHAT',
|
|
|
|
'MAX_MESSAGES_PER_SECOND',
|
|
|
|
'MAX_MESSAGES_PER_MINUTE_PER_GROUP',
|
|
|
|
'WebhookInfo',
|
|
|
|
'Animation',
|
|
|
|
'Game',
|
|
|
|
'GameHighScore',
|
|
|
|
'VideoNote',
|
|
|
|
'LabeledPrice',
|
|
|
|
'SuccessfulPayment',
|
|
|
|
'ShippingOption',
|
|
|
|
'ShippingAddress',
|
|
|
|
'PreCheckoutQuery',
|
|
|
|
'OrderInfo',
|
|
|
|
'Invoice',
|
|
|
|
'ShippingQuery',
|
|
|
|
'ChatPhoto',
|
|
|
|
'StickerSet',
|
|
|
|
'MaskPosition',
|
|
|
|
'CallbackGame',
|
|
|
|
'InputMedia',
|
|
|
|
'InputMediaPhoto',
|
|
|
|
'InputMediaVideo',
|
|
|
|
'PassportElementError',
|
|
|
|
'PassportElementErrorFile',
|
|
|
|
'PassportElementErrorReverseSide',
|
|
|
|
'PassportElementErrorFrontSide',
|
|
|
|
'PassportElementErrorFiles',
|
|
|
|
'PassportElementErrorDataField',
|
|
|
|
'PassportElementErrorFile',
|
|
|
|
'Credentials',
|
|
|
|
'DataCredentials',
|
|
|
|
'SecureData',
|
|
|
|
'FileCredentials',
|
|
|
|
'IdDocumentData',
|
|
|
|
'PersonalDetails',
|
|
|
|
'ResidentialAddress',
|
|
|
|
'InputMediaVideo',
|
|
|
|
'InputMediaAnimation',
|
|
|
|
'InputMediaAudio',
|
|
|
|
'InputMediaDocument',
|
|
|
|
'TelegramDecryptionError',
|
|
|
|
'PassportElementErrorSelfie',
|
|
|
|
'PassportElementErrorTranslationFile',
|
|
|
|
'PassportElementErrorTranslationFiles',
|
|
|
|
'PassportElementErrorUnspecified',
|
|
|
|
'Poll',
|
|
|
|
'PollOption',
|
|
|
|
'PollAnswer',
|
|
|
|
'LoginUrl',
|
|
|
|
'KeyboardButton',
|
|
|
|
'KeyboardButtonPollType',
|
|
|
|
'Dice',
|
|
|
|
'BotCommand',
|
2016-10-03 20:55:21 +02:00
|
|
|
]
|