From 74f78bcc58cea6c5a16af1b04849e0e2b3538e90 Mon Sep 17 00:00:00 2001 From: Rykov7 Date: Mon, 23 Jan 2023 16:14:41 +0300 Subject: [PATCH] add buttons --- app/bot.py | 24 ++++++++++++++++++------ app/config.py | 8 ++++---- app/filters.py | 6 +++--- 3 files changed, 25 insertions(+), 13 deletions(-) diff --git a/app/bot.py b/app/bot.py index 6980de8..b1f83ed 100644 --- a/app/bot.py +++ b/app/bot.py @@ -71,26 +71,38 @@ def delete_message(message: types.Message): @bot.message_handler(commands=['links']) def send_links(message): - send_or_reply(message, f"{RULES}\n{FAQ}\n{LIB}") + markup = types.InlineKeyboardMarkup() + markup.add(RULES, FAQ, LIB, row_width=1) + answer = "Почитай на досуге" + if message.reply_to_message: + bot.reply_to(message.reply_to_message, answer, reply_maarkup=markup) + else: + bot.send_message(message.chat.id, answer, reply_markup=markup) -@bot.message_handler(commands=['rules', 'r']) +@bot.message_handler(commands=['rules', 'rule', 'r']) def send_rules(message): + markup = types.InlineKeyboardMarkup() + markup.add(RULES, row_width=1) args = message.text.split() if len(args) > 1 and args[-1].isdigit(): - send_or_reply(message, rules.get_rule(args[-1])) + send_or_reply(message, f'Правило {args[-1]}\n{rules.get_rule(args[-1])}', reply_markup=markup) else: - send_or_reply(message, f'{RULES}') + send_or_reply(message, 'Почитай', reply_markup=markup) @bot.message_handler(commands=['faq']) def send_faq(message): - send_or_reply(message, f'{FAQ}') + markup = types.InlineKeyboardMarkup() + markup.add(FAQ, row_width=1) + send_or_reply(message, 'Почитай', reply_markup=markup) @bot.message_handler(commands=['lib', 'library', 'books']) def send_lib(message): - send_or_reply(message, f'{LIB}') + markup = types.InlineKeyboardMarkup() + markup.add(LIB, row_width=1) + send_or_reply(message, 'Советую', reply_markup=markup) @bot.message_handler(commands=['lutz']) diff --git a/app/config.py b/app/config.py index e6af5db..72261fa 100644 --- a/app/config.py +++ b/app/config.py @@ -1,7 +1,7 @@ import os import re import logging -from telebot import TeleBot, logger +from telebot import TeleBot, logger, types from dotenv import load_dotenv logging.basicConfig(level=logging.INFO, format='%(asctime)s %(message)s', datefmt='%Y.%m.%d %H:%M:%S') @@ -31,9 +31,9 @@ ENG = """`qwertyuiop[]asdfghjkl;'zxcvbnm,./~!@#$%^&QWERTYUIOP{}|ASDFGHJKL:"ZXCVB RUS_ENG_TABLE = str.maketrans(RUS, ENG) ENG_RUS_TABLE = str.maketrans(ENG, RUS) -RULES = '🟡 Правила чата' -FAQ = '🔵 Частые вопросы' -LIB = '📚 Библиотека питониста' +RULES = types.InlineKeyboardButton('🟡 Правила чата', url='https://telegra.ph/pythonchatru-07-07') +FAQ = types.InlineKeyboardButton('🔵 Частые вопросы', url='https://telegra.ph/faq-10-07-4') +LIB = types.InlineKeyboardButton('📚 Библиотека', url='https://telegra.ph/what-to-read-10-06') SPAM = ['me.sv/', 'tg.sv/', 'goo.by/', 'go.sv/', 'intim.video/', 'uclck.ru/'] NON_GRATA = ['дудар', 'хауди', 'dudar'] diff --git a/app/filters.py b/app/filters.py index 5069f36..a22c154 100644 --- a/app/filters.py +++ b/app/filters.py @@ -53,8 +53,8 @@ def is_white(message: types.Message) -> bool: return message.from_user.username in WHITEUN or message.from_user.id in WHITEIDS -def send_or_reply(m: types.Message, answer): +def send_or_reply(m: types.Message, answer, **kwargs): if m.reply_to_message: - bot.reply_to(m.reply_to_message, answer) + bot.reply_to(m.reply_to_message, answer, **kwargs) else: - bot.send_message(m.chat.id, answer) + bot.send_message(m.chat.id, answer, **kwargs)