From 077249f5f5d47a77e108946a3f2a8b8b75f9ee56 Mon Sep 17 00:00:00 2001 From: Mattia Date: Thu, 17 Oct 2019 16:15:25 +0200 Subject: [PATCH 1/2] Added two basic code examples --- examples/echo.py | 43 ++++++++++++++++++++++++++ examples/inline_keyboards.py | 58 ++++++++++++++++++++++++++++++++++++ 2 files changed, 101 insertions(+) create mode 100644 examples/echo.py create mode 100644 examples/inline_keyboards.py diff --git a/examples/echo.py b/examples/echo.py new file mode 100644 index 0000000..e85062b --- /dev/null +++ b/examples/echo.py @@ -0,0 +1,43 @@ +# Copyright (c) 2015-2019 The Botogram Authors (see AUTHORS) +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + +import botogram +bot = botogram.create("256918030:AAEUIEgYrgBBvTF3iwK4tP6DVJf659dPMlc") + + +def disable_command_not_found_message(chat, message): + """ This function will disable the "command not found" message, so that + if the user sends a message starting with "/" it will be echoed without + the bot sending the "command not found" + """ + pass + + +@bot.before_processing +def message_reading(chat, message): + chat.send(message.text) + + +# Enable the custom "command not found" function +bot._components[0]._Component__no_commands = [] +bot._main_component._add_no_commands_hook(disable_command_not_found_message) + + +if __name__ == "__main__": + bot.run() diff --git a/examples/inline_keyboards.py b/examples/inline_keyboards.py new file mode 100644 index 0000000..c3d4579 --- /dev/null +++ b/examples/inline_keyboards.py @@ -0,0 +1,58 @@ +# Copyright (c) 2015-2019 The Botogram Authors (see AUTHORS) +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + +import botogram +bot = botogram.create("API-KEY") + + +@bot.command("start") +def start(chat, message): + """ Starts the bot!""" + btns = botogram.Buttons() + btns[0].callback("Button 1", "button-1") + btns[0].callback("Button 2", "button-2") + btns[1].url("Button 3", "https://botogram.dev") + btns[2].switch_inline_query("Button 4", "Inline query") + text = ( + "This is an inline keyboard.\n\n" + "Button 1 will edit the message and display a " + "non-popup message.\n" + "Button 2 will send a new message and display a " + "popup message.\n" + "Button 3 is a url button.\n" + "Button 4 is a switch inline query button, " + "will start the bot in inline-mode to a user-chosen chat." + ) + chat.send(text, attach=btns) + + +@bot.callback("button-1") +def button_1(query, message, chat): + query.notify("Non-popup message!") + message.edit("The message has been edited!") + + +@bot.callback("button-2") +def button_1(query, message, chat): + query.notify("Popup message!", alert=True) + chat.send("A new message has been sent!") + + +if __name__ == "__main__": + bot.run() From 58a0fb2128b2311f0338a83f703562304a4d791c Mon Sep 17 00:00:00 2001 From: Mattia Date: Thu, 17 Oct 2019 16:23:32 +0200 Subject: [PATCH 2/2] Improved the API token request method --- examples/echo.py | 5 ++++- examples/inline_keyboards.py | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/examples/echo.py b/examples/echo.py index e85062b..6cd73d6 100644 --- a/examples/echo.py +++ b/examples/echo.py @@ -18,7 +18,10 @@ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER import botogram -bot = botogram.create("256918030:AAEUIEgYrgBBvTF3iwK4tP6DVJf659dPMlc") + +token = input("Insert your API token: ") + +bot = botogram.create(token) def disable_command_not_found_message(chat, message): diff --git a/examples/inline_keyboards.py b/examples/inline_keyboards.py index c3d4579..68658af 100644 --- a/examples/inline_keyboards.py +++ b/examples/inline_keyboards.py @@ -18,7 +18,10 @@ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER import botogram -bot = botogram.create("API-KEY") + +token = input("Insert your API token: ") + +bot = botogram.create(token) @bot.command("start")