diff --git a/AUTHORS.rst b/AUTHORS.rst index 56a701896c0..9f0f86d667b 100644 --- a/AUTHORS.rst +++ b/AUTHORS.rst @@ -55,6 +55,7 @@ The following wonderful people contributed directly or indirectly to this projec - `Rahiel Kasim `_ - `Sascha `_ - `Shelomentsev D `_ +- `Simon Schürrle `_ - `sooyhwang `_ - `thodnev `_ - `Valentijn `_ diff --git a/examples/conversationbot.py b/examples/conversationbot.py index 6dcff8643dc..06412ca354f 100644 --- a/examples/conversationbot.py +++ b/examples/conversationbot.py @@ -46,7 +46,7 @@ def start(bot, update): def gender(bot, update): user = update.message.from_user - logger.info("Gender of %s: %s" % (user.first_name, update.message.text)) + logger.info("Gender of %s: %s", user.first_name, update.message.text) update.message.reply_text('I see! Please send me a photo of yourself, ' 'so I know what you look like, or send /skip if you don\'t want to.', reply_markup=ReplyKeyboardRemove()) @@ -58,7 +58,7 @@ def photo(bot, update): user = update.message.from_user photo_file = bot.get_file(update.message.photo[-1].file_id) photo_file.download('user_photo.jpg') - logger.info("Photo of %s: %s" % (user.first_name, 'user_photo.jpg')) + logger.info("Photo of %s: %s", user.first_name, 'user_photo.jpg') update.message.reply_text('Gorgeous! Now, send me your location please, ' 'or send /skip if you don\'t want to.') @@ -67,7 +67,7 @@ def photo(bot, update): def skip_photo(bot, update): user = update.message.from_user - logger.info("User %s did not send a photo." % user.first_name) + logger.info("User %s did not send a photo.", user.first_name) update.message.reply_text('I bet you look great! Now, send me your location please, ' 'or send /skip.') @@ -77,8 +77,8 @@ def skip_photo(bot, update): def location(bot, update): user = update.message.from_user user_location = update.message.location - logger.info("Location of %s: %f / %f" - % (user.first_name, user_location.latitude, user_location.longitude)) + logger.info("Location of %s: %f / %f", user.first_name, user_location.latitude, + user_location.longitude) update.message.reply_text('Maybe I can visit you sometime! ' 'At last, tell me something about yourself.') @@ -87,7 +87,7 @@ def location(bot, update): def skip_location(bot, update): user = update.message.from_user - logger.info("User %s did not send a location." % user.first_name) + logger.info("User %s did not send a location.", user.first_name) update.message.reply_text('You seem a bit paranoid! ' 'At last, tell me something about yourself.') @@ -96,7 +96,7 @@ def skip_location(bot, update): def bio(bot, update): user = update.message.from_user - logger.info("Bio of %s: %s" % (user.first_name, update.message.text)) + logger.info("Bio of %s: %s", user.first_name, update.message.text) update.message.reply_text('Thank you! I hope we can talk again some day.') return ConversationHandler.END @@ -104,7 +104,7 @@ def bio(bot, update): def cancel(bot, update): user = update.message.from_user - logger.info("User %s canceled the conversation." % user.first_name) + logger.info("User %s canceled the conversation.", user.first_name) update.message.reply_text('Bye! I hope we can talk again some day.', reply_markup=ReplyKeyboardRemove()) @@ -112,7 +112,8 @@ def cancel(bot, update): def error(bot, update, error): - logger.warn('Update "%s" caused error "%s"' % (update, error)) + """Log Errors caused by Updates.""" + logger.warning('Update "%s" caused error "%s"', update, error) def main(): diff --git a/examples/conversationbot2.py b/examples/conversationbot2.py index 452f50fbe90..34002792a07 100644 --- a/examples/conversationbot2.py +++ b/examples/conversationbot2.py @@ -41,7 +41,7 @@ def facts_to_str(user_data): facts = list() for key, value in user_data.items(): - facts.append('%s - %s' % (key, value)) + facts.append('{} - {}'.format(key, value)) return "\n".join(facts).join(['\n', '\n']) @@ -58,7 +58,8 @@ def start(bot, update): def regular_choice(bot, update, user_data): text = update.message.text user_data['choice'] = text - update.message.reply_text('Your %s? Yes, I would love to hear about that!' % text.lower()) + update.message.reply_text( + 'Your {}? Yes, I would love to hear about that!'.format(text.lower())) return TYPING_REPLY @@ -77,10 +78,9 @@ def received_information(bot, update, user_data): del user_data['choice'] update.message.reply_text("Neat! Just so you know, this is what you already told me:" - "%s" - "You can tell me more, or change your opinion on something." - % facts_to_str(user_data), - reply_markup=markup) + "{}" + "You can tell me more, or change your opinion on something.".format( + facts_to_str(user_data)), reply_markup=markup) return CHOOSING @@ -90,15 +90,16 @@ def done(bot, update, user_data): del user_data['choice'] update.message.reply_text("I learned these facts about you:" - "%s" - "Until next time!" % facts_to_str(user_data)) + "{}" + "Until next time!".format(facts_to_str(user_data))) user_data.clear() return ConversationHandler.END def error(bot, update, error): - logger.warn('Update "%s" caused error "%s"' % (update, error)) + """Log Errors caused by Updates.""" + logger.warning('Update "%s" caused error "%s"', update, error) def main(): diff --git a/examples/echobot.py b/examples/echobot.py index b7e6e0a4afd..9b72310beac 100644 --- a/examples/echobot.py +++ b/examples/echobot.py @@ -1,9 +1,11 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# -# Simple Bot to reply to Telegram messages. This is built on the API wrapper, see -# echobot2.py to see the same example built on the telegram.ext bot framework. -# This program is dedicated to the public domain under the CC0 license. +"""Simple Bot to reply to Telegram messages. + +This is built on the API wrapper, see echobot2.py to see the same example built +on the telegram.ext bot framework. +This program is dedicated to the public domain under the CC0 license. +""" import logging import telegram from telegram.error import NetworkError, Unauthorized @@ -12,7 +14,9 @@ update_id = None + def main(): + """Run the bot.""" global update_id # Telegram Bot Authorization Token bot = telegram.Bot('TOKEN') @@ -37,6 +41,7 @@ def main(): def echo(bot): + """Echo the message the user sent.""" global update_id # Request updates after the last update_id for update in bot.get_updates(offset=update_id, timeout=10): diff --git a/examples/echobot2.py b/examples/echobot2.py index 4a8652cf491..d6b102bcdfb 100644 --- a/examples/echobot2.py +++ b/examples/echobot2.py @@ -1,9 +1,10 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# -# Simple Bot to reply to Telegram messages -# This program is dedicated to the public domain under the CC0 license. -""" + +"""Simple Bot to reply to Telegram messages. + +This program is dedicated to the public domain under the CC0 license. + This Bot uses the Updater class to handle the bot. First, a few handler functions are defined. Then, those functions are passed to @@ -29,22 +30,27 @@ # Define a few command handlers. These usually take the two arguments bot and # update. Error handlers also receive the raised TelegramError object in error. def start(bot, update): + """Send a message when the command /start is issued.""" update.message.reply_text('Hi!') def help(bot, update): + """Send a message when the command /help is issued.""" update.message.reply_text('Help!') def echo(bot, update): + """Echo the user message.""" update.message.reply_text(update.message.text) def error(bot, update, error): - logger.warn('Update "%s" caused error "%s"' % (update, error)) + """Log Errors caused by Updates.""" + logger.warning('Update "%s" caused error "%s"', update, error) def main(): + """Start the bot.""" # Create the EventHandler and pass it your bot's token. updater = Updater("TOKEN") diff --git a/examples/inlinebot.py b/examples/inlinebot.py index 457ef5bc1ac..4784cba7475 100644 --- a/examples/inlinebot.py +++ b/examples/inlinebot.py @@ -1,9 +1,10 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# -# Simple Bot to reply to Telegram messages -# This program is dedicated to the public domain under the CC0 license. -""" + +"""Simple Bot to reply to Telegram messages. + +This program is dedicated to the public domain under the CC0 license. + This Bot uses the Updater class to handle the bot. First, a few handler functions are defined. Then, those functions are passed to @@ -19,6 +20,8 @@ import re +from telegram.utils.helpers import escape_markdown + from telegram import InlineQueryResultArticle, ParseMode, \ InputTextMessageContent from telegram.ext import Updater, InlineQueryHandler, CommandHandler @@ -34,45 +37,43 @@ # Define a few command handlers. These usually take the two arguments bot and # update. Error handlers also receive the raised TelegramError object in error. def start(bot, update): + """Send a message when the command /start is issued.""" update.message.reply_text('Hi!') def help(bot, update): + """Send a message when the command /help is issued.""" update.message.reply_text('Help!') -def escape_markdown(text): - """Helper function to escape telegram markup symbols""" - escape_chars = '\*_`\[' - return re.sub(r'([%s])' % escape_chars, r'\\\1', text) - - def inlinequery(bot, update): + """Handle the inline query.""" query = update.inline_query.query - results = list() - - results.append(InlineQueryResultArticle(id=uuid4(), - title="Caps", - input_message_content=InputTextMessageContent( - query.upper()))) - - results.append(InlineQueryResultArticle(id=uuid4(), - title="Bold", - input_message_content=InputTextMessageContent( - "*%s*" % escape_markdown(query), - parse_mode=ParseMode.MARKDOWN))) - - results.append(InlineQueryResultArticle(id=uuid4(), - title="Italic", - input_message_content=InputTextMessageContent( - "_%s_" % escape_markdown(query), - parse_mode=ParseMode.MARKDOWN))) + results = [ + InlineQueryResultArticle( + id=uuid4(), + title="Caps", + input_message_content=InputTextMessageContent( + query.upper())), + InlineQueryResultArticle( + id=uuid4(), + title="Bold", + input_message_content=InputTextMessageContent( + "*{}*".format(escape_markdown(query)), + parse_mode=ParseMode.MARKDOWN)), + InlineQueryResultArticle( + id=uuid4(), + title="Italic", + input_message_content=InputTextMessageContent( + "_{}_".format(escape_markdown(query)), + parse_mode=ParseMode.MARKDOWN))] update.inline_query.answer(results) def error(bot, update, error): - logger.warning('Update "%s" caused error "%s"' % (update, error)) + """Log Errors caused by Updates.""" + logger.warning('Update "%s" caused error "%s"', update, error) def main(): diff --git a/examples/inlinekeyboard.py b/examples/inlinekeyboard.py index 4966702b0cc..84c0966adc0 100644 --- a/examples/inlinekeyboard.py +++ b/examples/inlinekeyboard.py @@ -1,15 +1,16 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# -# Basic example for a bot that uses inline keyboards. -# This program is dedicated to the public domain under the CC0 license. +"""Basic example for a bot that uses inline keyboards. +# This program is dedicated to the public domain under the CC0 license. +""" import logging from telegram import InlineKeyboardButton, InlineKeyboardMarkup from telegram.ext import Updater, CommandHandler, CallbackQueryHandler logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO) +logger = logging.getLogger(__name__) def start(bot, update): @@ -26,7 +27,7 @@ def start(bot, update): def button(bot, update): query = update.callback_query - bot.edit_message_text(text="Selected option: %s" % query.data, + bot.edit_message_text(text="Selected option: {}".format(query.data), chat_id=query.message.chat_id, message_id=query.message.message_id) @@ -36,20 +37,26 @@ def help(bot, update): def error(bot, update, error): - logging.warning('Update "%s" caused error "%s"' % (update, error)) + """Log Errors caused by Updates.""" + logger.warning('Update "%s" caused error "%s"', update, error) + + +def main(): + # Create the Updater and pass it your bot's token. + updater = Updater("TOKEN") + updater.dispatcher.add_handler(CommandHandler('start', start)) + updater.dispatcher.add_handler(CallbackQueryHandler(button)) + updater.dispatcher.add_handler(CommandHandler('help', help)) + updater.dispatcher.add_error_handler(error) -# Create the Updater and pass it your bot's token. -updater = Updater("TOKEN") + # Start the Bot + updater.start_polling() -updater.dispatcher.add_handler(CommandHandler('start', start)) -updater.dispatcher.add_handler(CallbackQueryHandler(button)) -updater.dispatcher.add_handler(CommandHandler('help', help)) -updater.dispatcher.add_error_handler(error) + # Run the bot until the user presses Ctrl-C or the process receives SIGINT, + # SIGTERM or SIGABRT + updater.idle() -# Start the Bot -updater.start_polling() -# Run the bot until the user presses Ctrl-C or the process receives SIGINT, -# SIGTERM or SIGABRT -updater.idle() +if __name__ == '__main__': + main() diff --git a/examples/paymentbot.py b/examples/paymentbot.py index 7a0e1341972..a419034de94 100644 --- a/examples/paymentbot.py +++ b/examples/paymentbot.py @@ -1,8 +1,10 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- # -# Basic example for a bot that can receive payment from user. -# This program is dedicated to the public domain under the CC0 license. +"""Basic example for a bot that can receive payment from user. + +This program is dedicated to the public domain under the CC0 license. +""" from telegram import (LabeledPrice, ShippingOption) from telegram.ext import (Updater, CommandHandler, MessageHandler, @@ -10,13 +12,15 @@ import logging # Enable logging -logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO) +logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', + level=logging.INFO) logger = logging.getLogger(__name__) def error(bot, update, error): - logger.warn('Update "%s" caused error "%s"' % (update, error)) + """Log Errors caused by Updates.""" + logger.warning('Update "%s" caused error "%s"', update, error) def start_callback(bot, update): @@ -31,7 +35,7 @@ def start_with_shipping_callback(bot, update): description = "Payment Example using python-telegram-bot" # select a payload just for you to recognize its the donation from your bot payload = "Custom-Payload" - # get your provider_token at @botfather, see https://core.telegram.org/bots/payments#getting-a-token + # In order to get a provider_token see https://core.telegram.org/bots/payments#getting-a-token provider_token = "PROVIDER_TOKEN" start_parameter = "test-payment" currency = "USD" @@ -55,7 +59,7 @@ def start_without_shipping_callback(bot, update): description = "Payment Example using python-telegram-bot" # select a payload just for you to recognize its the donation from your bot payload = "Custom-Payload" - # get your provider_token at @botfather, see https://core.telegram.org/bots/payments#getting-a-token + # In order to get a provider_token see https://core.telegram.org/bots/payments#getting-a-token provider_token = "PROVIDER_TOKEN" start_parameter = "test-payment" currency = "USD" diff --git a/examples/timerbot.py b/examples/timerbot.py index 2a7d7cbe250..1a1c7ff9447 100644 --- a/examples/timerbot.py +++ b/examples/timerbot.py @@ -1,9 +1,11 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# -# Simple Bot to send timed Telegram messages + + +"""Simple Bot to send timed Telegram messages. + # This program is dedicated to the public domain under the CC0 license. -""" + This Bot uses the Updater class to handle the bot and the JobQueue to send timed messages. @@ -17,7 +19,7 @@ bot. """ -from telegram.ext import Updater, CommandHandler, Job +from telegram.ext import Updater, CommandHandler import logging # Enable logging @@ -34,12 +36,12 @@ def start(bot, update): def alarm(bot, job): - """Function to send the alarm message""" + """Send the alarm message.""" bot.send_message(job.context, text='Beep!') -def set(bot, update, args, job_queue, chat_data): - """Adds a job to the queue""" +def set_timer(bot, update, args, job_queue, chat_data): + """Add a job to the queue.""" chat_id = update.message.chat_id try: # args[0] should contain the time for the timer in seconds @@ -59,8 +61,7 @@ def set(bot, update, args, job_queue, chat_data): def unset(bot, update, chat_data): - """Removes the job if the user changed their mind""" - + """Remove the job if the user changed their mind.""" if 'job' not in chat_data: update.message.reply_text('You have no active timer') return @@ -73,10 +74,12 @@ def unset(bot, update, chat_data): def error(bot, update, error): - logger.warning('Update "%s" caused error "%s"' % (update, error)) + """Log Errors caused by Updates.""" + logger.warning('Update "%s" caused error "%s"', update, error) def main(): + """Run bot.""" updater = Updater("TOKEN") # Get the dispatcher to register handlers @@ -85,7 +88,7 @@ def main(): # on different commands - answer in Telegram dp.add_handler(CommandHandler("start", start)) dp.add_handler(CommandHandler("help", start)) - dp.add_handler(CommandHandler("set", set, + dp.add_handler(CommandHandler("set", set_timer, pass_args=True, pass_job_queue=True, pass_chat_data=True)) pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy