diff --git a/Pipfile b/Pipfile index 46bea30..9aa83bc 100644 --- a/Pipfile +++ b/Pipfile @@ -13,6 +13,7 @@ gunicorn = "*" [dev-packages] pylint = "*" black = "==21.7b0" +tgintegration = "*" [requires] python_version = "3.7" diff --git a/Pipfile.lock b/Pipfile.lock index b83c791..48ddbeb 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "6a7bf767cffdfd6f967bd3f5d766db5156a1f3722007e24852e65dfc2f49900a" + "sha256": "65afadd08b3d8334edd816e53ac9c71decb648fce56644323d0bb3192b9fedde" }, "pipfile-spec": 6, "requires": { @@ -72,11 +72,11 @@ }, "importlib-metadata": { "hashes": [ - "sha256:0645585859e9a6689c523927a5032f2ba5919f1f7d0e84bd4533312320de1ff9", - "sha256:51c6635429c77cf1ae634c997ff9e53ca3438b495f10a55ba28594dd69764a8b" + "sha256:7b30a78db2922d78a6f47fb30683156a14f3c6aa5cc23f77cc8967e9ab2d002f", + "sha256:ed5157fef23a4bc4594615a0dd8eba94b2bb36bf2a343fa3d8bb2fa0a62a99d5" ], "markers": "python_version < '3.8'", - "version": "==4.6.3" + "version": "==4.6.4" }, "itsdangerous": { "hashes": [ @@ -99,30 +99,50 @@ "sha256:0446679737af14f45767963a1a9ef7620189912317d095f2d9ffa183a4d25d2b", "sha256:0717a7390a68be14b8c793ba258e075c6f4ca819f15edfc2a3a027c823718567", "sha256:0955295dd5eec6cb6cc2fe1698f4c6d84af2e92de33fbcac4111913cd100a6ff", + "sha256:0d4b31cc67ab36e3392bbf3862cfbadac3db12bdd8b02a2731f509ed5b829724", "sha256:10f82115e21dc0dfec9ab5c0223652f7197feb168c940f3ef61563fc2d6beb74", + "sha256:168cd0a3642de83558a5153c8bd34f175a9a6e7f6dc6384b9655d2697312a646", "sha256:1d609f577dc6e1aa17d746f8bd3c31aa4d258f4070d61b2aa5c4166c1539de35", + "sha256:1f2ade76b9903f39aa442b4aadd2177decb66525062db244b35d71d0ee8599b6", + "sha256:2a7d351cbd8cfeb19ca00de495e224dea7e7d919659c2841bbb7f420ad03e2d6", + "sha256:2d7d807855b419fc2ed3e631034685db6079889a1f01d5d9dac950f764da3dad", "sha256:2ef54abee730b502252bcdf31b10dacb0a416229b72c18b19e24a4509f273d26", + "sha256:36bc903cbb393720fad60fc28c10de6acf10dc6cc883f3e24ee4012371399a38", + "sha256:37205cac2a79194e3750b0af2a5720d95f786a55ce7df90c3af697bfa100eaac", "sha256:3c112550557578c26af18a1ccc9e090bfe03832ae994343cfdacd287db6a6ae7", + "sha256:3dd007d54ee88b46be476e293f48c85048603f5f516008bee124ddd891398ed6", "sha256:47ab1e7b91c098ab893b828deafa1203de86d0bc6ab587b160f78fe6c4011f75", "sha256:49e3ceeabbfb9d66c3aef5af3a60cc43b85c33df25ce03d0031a608b0a8b2e3f", "sha256:4efca8f86c54b22348a5467704e3fec767b2db12fc39c6d963168ab1d3fc9135", "sha256:53edb4da6925ad13c07b6d26c2a852bd81e364f95301c66e930ab2aef5b5ddd8", + "sha256:5855f8438a7d1d458206a2466bf82b0f104a3724bf96a1c781ab731e4201731a", "sha256:594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a", + "sha256:5bb28c636d87e840583ee3adeb78172efc47c8b26127267f54a9c0ec251d41a9", + "sha256:60bf42e36abfaf9aff1f50f52644b336d4f0a3fd6d8a60ca0d054ac9f713a864", "sha256:611d1ad9a4288cf3e3c16014564df047fe08410e628f89805e475368bd304914", "sha256:6557b31b5e2c9ddf0de32a691f2312a32f77cd7681d8af66c2692efdbef84c18", "sha256:693ce3f9e70a6cf7d2fb9e6c9d8b204b6b39897a2c4a1aa65728d5ac97dcc1d8", "sha256:6a7fae0dd14cf60ad5ff42baa2e95727c3d81ded453457771d02b7d2b3f9c0c2", "sha256:6c4ca60fa24e85fe25b912b01e62cb969d69a23a5d5867682dd3e80b5b02581d", + "sha256:6fcf051089389abe060c9cd7caa212c707e58153afa2c649f00346ce6d260f1b", "sha256:7d91275b0245b1da4d4cfa07e0faedd5b0812efc15b702576d103293e252af1b", "sha256:905fec760bd2fa1388bb5b489ee8ee5f7291d692638ea5f67982d968366bef9f", "sha256:97383d78eb34da7e1fa37dd273c20ad4320929af65d156e35a5e2d89566d9dfb", "sha256:984d76483eb32f1bcb536dc27e4ad56bba4baa70be32fa87152832cdd9db0833", + "sha256:99df47edb6bda1249d3e80fdabb1dab8c08ef3975f69aed437cb69d0a5de1e28", "sha256:a30e67a65b53ea0a5e62fe23682cfe22712e01f453b95233b25502f7c61cb415", "sha256:ab3ef638ace319fa26553db0624c4699e31a28bb2a835c5faca8f8acf6a5a902", + "sha256:add36cb2dbb8b736611303cd3bfcee00afd96471b09cda130da3581cbdc56a6d", "sha256:b2f4bf27480f5e5e8ce285a8c8fd176c0b03e93dcc6646477d4630e83440c6a9", "sha256:b7f2d075102dc8c794cbde1947378051c4e5180d52d276987b8d28a3bd58c17d", + "sha256:baa1a4e8f868845af802979fcdbf0bb11f94f1cb7ced4c4b8a351bb60d108145", "sha256:be98f628055368795d818ebf93da628541e10b75b41c559fdf36d104c5787066", + "sha256:bf5d821ffabf0ef3533c39c518f3357b171a1651c1ff6827325e4489b0e46c3c", + "sha256:c47adbc92fc1bb2b3274c4b3a43ae0e4573d9fbff4f54cd484555edbf030baf1", "sha256:d7f9850398e85aba693bb640262d3611788b1f29a79f0c93c565694658f4071f", + "sha256:d8446c54dc28c01e5a2dbac5a25f071f6653e6e40f3a8818e8b45d790fe6ef53", + "sha256:e0f138900af21926a02425cf736db95be9f4af72ba1bb21453432a07f6082134", + "sha256:e9936f0b261d4df76ad22f8fee3ae83b60d7c3e871292cd42f40b81b70afae85", "sha256:f5653a225f31e113b152e56f154ccbe59eeb1c7487b39b9d9f9cdb58e6c79dc5", "sha256:f826e31d18b516f653fe296d967d700fddad5901ae07c622bb3705955e1faa94", "sha256:f8ba0e8349a38d3001fae7eadded3f6606f0da5d748ee53cc1dab1d6527b9509", @@ -133,10 +153,10 @@ }, "pytelegrambotapi": { "hashes": [ - "sha256:cf83c652b88b4b1535a306a9b0c2f34bf6c390cebb9553ef34369e6290fc9496" + "sha256:afdd887fff42a963f13d09a1f4f5fd24aef08f4b8a594f2ac11e0a29022f1518" ], "index": "pypi", - "version": "==3.8.2" + "version": "==3.8.3" }, "requests": { "hashes": [ @@ -192,6 +212,12 @@ ], "version": "==2.6.6" }, + "async-lru": { + "hashes": [ + "sha256:baa898027619f5cc31b7966f96f00e4fc0df43ba206a8940a5d1af5336a477cb" + ], + "version": "==1.0.2" + }, "black": { "hashes": [ "sha256:1c7aa6ada8ee864db745b22790a32f94b2795c253a75d6d9b5e439ff10d23116", @@ -209,11 +235,11 @@ }, "importlib-metadata": { "hashes": [ - "sha256:0645585859e9a6689c523927a5032f2ba5919f1f7d0e84bd4533312320de1ff9", - "sha256:51c6635429c77cf1ae634c997ff9e53ca3438b495f10a55ba28594dd69764a8b" + "sha256:7b30a78db2922d78a6f47fb30683156a14f3c6aa5cc23f77cc8967e9ab2d002f", + "sha256:ed5157fef23a4bc4594615a0dd8eba94b2bb36bf2a343fa3d8bb2fa0a62a99d5" ], "markers": "python_version < '3.8'", - "version": "==4.6.3" + "version": "==4.6.4" }, "isort": { "hashes": [ @@ -270,6 +296,12 @@ ], "version": "==0.9.0" }, + "pyaes": { + "hashes": [ + "sha256:02c1b1405c38d3c370b085fb952dd8bea3fadcee6411ad99f312cc129c536d8f" + ], + "version": "==1.6.1" + }, "pylint": { "hashes": [ "sha256:2e1a0eb2e8ab41d6b5dbada87f066492bb1557b12b76c47c2ee8aa8a11186594", @@ -278,6 +310,21 @@ "index": "pypi", "version": "==2.9.6" }, + "pyrogram": { + "hashes": [ + "sha256:0f207cac92f4a4d204037214a1ebb54ba272a9557a22633427880fdef844c012", + "sha256:85cacbcebb704f6d849ff52b07e1bb4972b4ff81216c3d45ed385e9a5ab057a7" + ], + "version": "==1.2.9" + }, + "pysocks": { + "hashes": [ + "sha256:08e69f092cc6dbe92a0fdd16eeb9b9ffbc13cadfe5ca4c7bd92ffb078b293299", + "sha256:2725bd0a9925919b9b51739eea5f9e2bae91e83288108a9ad338b2e3a4435ee5", + "sha256:3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0" + ], + "version": "==1.7.1" + }, "regex": { "hashes": [ "sha256:026beb631097a4a3def7299aa5825e05e057de3c6d72b139c37813bfa351274b", @@ -316,6 +363,14 @@ ], "version": "==2021.8.3" }, + "tgintegration": { + "hashes": [ + "sha256:3f6df83e4ac636d2472ebebd86a25159b754ffe40621b63a8faf368f7530f8de", + "sha256:e414af8cdede8b10bbc51410083d48883bee8c319044f8c5612ed39c97ab9cfc" + ], + "index": "pypi", + "version": "==1.1.0" + }, "toml": { "hashes": [ "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b", @@ -363,7 +418,7 @@ "sha256:f8afcf15cc511ada719a88e013cec87c11aff7b91f019295eb4530f96fe5ef2f", "sha256:fb1bbeac803adea29cedd70781399c99138358c26d05fcbd23c13016b7f5ec65" ], - "markers": "implementation_name == 'cpython' and python_version < '3.8'", + "markers": "python_version < '3.8'", "version": "==1.4.3" }, "typing-extensions": { diff --git a/bot/factory.py b/bot/factory.py index a9cca8f..30c79d7 100644 --- a/bot/factory.py +++ b/bot/factory.py @@ -5,9 +5,10 @@ import telebot from deta import Deta from telebot.types import ( - ForceReply, InlineKeyboardButton, InlineKeyboardMarkup, + ReplyKeyboardMarkup, + KeyboardButton, ) from . import messages @@ -61,12 +62,18 @@ def start(message: telebot.types.Message): users.insert({"state": None}, str(message.chat.id)) except Exception: # pylint: disable=W0703 users.update({"state": None}, str(message.chat.id)) + keyboard = ReplyKeyboardMarkup(resize_keyboard=True, row_width=2) + keyboard.add( + KeyboardButton("Basic search"), + KeyboardButton("Advanced search"), + ) bot.send_message( message.chat.id, messages.START_MESSAGE.substitute(), + reply_markup=keyboard, ) - @bot.message_handler(commands=["search"]) + @bot.message_handler(regexp=r"^(/search)|(Basic search)$") def welcome_search(message: telebot.types.Message): """ Handler for /search command. @@ -77,10 +84,9 @@ def welcome_search(message: telebot.types.Message): bot.send_message( message.chat.id, messages.SIMPLE_SEARCH_WELCOME_MESSAGE.substitute(), - reply_markup=ForceReply(), ) - @bot.message_handler(commands=["advanced"]) + @bot.message_handler(regexp=r"^(\/advanced)|(Advanced search)$") def welcome_advanced_search(message: telebot.types.Message): """ Handler for /advanced command. @@ -226,7 +232,6 @@ def add_details(callback: telebot.types.CallbackQuery): message_text, callback.message.chat.id, callback.message.message_id, - reply_markup=ForceReply(), ) else: bot.answer_callback_query(