From 0fa4bb24be5bc49db3bf9bbc0f56aee6d11d3524 Mon Sep 17 00:00:00 2001 From: Rykov7 Date: Tue, 20 Dec 2022 02:02:22 +0300 Subject: [PATCH] set default configs, refactoring reply redundancy --- app/bot.py | 108 ++++++++++++++++++------------------------------ app/config.py | 2 +- app/reminder.py | 5 +-- 3 files changed, 43 insertions(+), 72 deletions(-) diff --git a/app/bot.py b/app/bot.py index 04d7f38..70209f7 100644 --- a/app/bot.py +++ b/app/bot.py @@ -118,20 +118,14 @@ def delete_message(message: types.Message): def send_lutz_command(message): """ Send Chat Rules link. """ logging.warning('Sent Rules link') - bot.reply_to(message, - '🟡 Правила чата', - parse_mode='HTML', - ) + bot.reply_to(message, '🟡 Правила чата') @bot.message_handler(commands=['faq']) def send_lutz_command(message): """ Send Chat FAQ link. """ logging.warning('Sent FAQ link') - bot.reply_to(message, - '🔵 FAQ', - parse_mode='HTML', - ) + bot.reply_to(message, '🔵 Частые вопросы') @bot.message_handler(commands=['lutz']) @@ -162,11 +156,7 @@ def translate_layout(message): def send_lutz_command(message): """ Send Chat's Library link. """ logging.warning('Send Library link') - bot.reply_to(message, - '📚 Библиотека питониста', - parse_mode='HTML', - disable_notification=True, - ) + bot.reply_to(message, '📚 Библиотека питониста') @bot.inline_handler(lambda query: True) @@ -178,7 +168,7 @@ def default_query(inline_query): if phrase.casefold().startswith(q) or ' ' + q in phrase.casefold(): zen.append(types.InlineQueryResultArticle( f"{id_p + 7000}", f'The Zen of Python #{id_p + 1}', types.InputTextMessageContent( - f"{phrase}", parse_mode='HTML'), description=phrase)) + f"{phrase}"), description=phrase)) bot.answer_inline_query(inline_query.id, zen, cache_time=1200) @@ -186,7 +176,7 @@ def default_query(inline_query): @bot.message_handler(commands=['me']) def command_me(message): """ Send info about user and chat id [Service]. """ - bot.send_message(message.chat.id, get_me(message), parse_mode='HTML') + bot.send_message(message.chat.id, get_me(message)) @bot.message_handler(commands=['remind']) @@ -197,28 +187,26 @@ def remind_manually(message): try: today = dt.strptime(args[1], "%m-%d-%Y") except ValueError as ve: - bot.send_message(message.chat.id, f"Не удалось разобрать дату!\n{ve}", parse_mode='HTML') + bot.send_message(message.chat.id, f"Не удалось разобрать дату!\n{ve}") else: reminder.remind(message.chat.id, today) else: bot.send_message(message.chat.id, f"Формат даты: MM-DD-YYYY\n\n" f"Примеры:\n" f"/remind 09-12-2024\n" - f"/remind 09-13-2022", parse_mode='HTML') + f"/remind 09-13-2022") @bot.message_handler(commands=['jobs']) def list_jobs(message): """ List all the jobs in schedule. """ if message.chat.id == ADMIN_ID: - bot.send_message(ADMIN_ID, reminder.print_get_jobs(), - parse_mode='HTML', disable_web_page_preview=True) + bot.send_message(ADMIN_ID, reminder.print_get_jobs()) @bot.message_handler(commands=['stats']) def send_stats(message): - bot.send_message(message.chat.id, report.create_report_text(), - parse_mode='HTML', disable_web_page_preview=True) + bot.send_message(message.chat.id, report.create_report_text()) @bot.message_handler(commands=['add']) @@ -226,8 +214,7 @@ def add_stan_quote(message): if message.reply_to_message and message.reply_to_message.text: with open('Stan.txt', 'a', encoding='utf8') as stan_quotes: stan_quotes.write('\n' + message.reply_to_message.text) - bot.send_message(message.chat.id, f'Добавил: {message.reply_to_message.text}', - parse_mode='HTML', disable_web_page_preview=True) + bot.send_message(message.chat.id, f'Добавил: {message.reply_to_message.text}') @bot.message_handler(commands=['quote']) @@ -238,8 +225,7 @@ def stan_speak(message): @bot.message_handler(commands=['reset_stats']) def send_stats(message): report.reset_report_stats() - bot.send_message(message.chat.id, report.reset_report_stats(), - parse_mode='HTML', disable_web_page_preview=True) + bot.send_message(message.chat.id, report.reset_report_stats()) @bot.message_handler(commands=['reload']) @@ -268,14 +254,34 @@ def admin_panel(message: types.Message): logging.warning(f'[UNBAN (M)] {unban_id}') +def send_or_reply(m: types.Message, answer): + if m.reply_to_message: + bot.reply_to(m.reply_to_message, answer) + else: + bot.send_message(m.chat.id, answer) + + @bot.message_handler(commands=['tsya']) def send_tsya_link(message: types.Message): """ тся/ться """ - answer = '-тся/-ться' - if message.reply_to_message: - bot.reply_to(message.reply_to_message, answer, parse_mode='HTML', disable_web_page_preview=True) - else: - bot.send_message(message.chat.id, answer, parse_mode='HTML', disable_web_page_preview=True) + send_or_reply(message, '-тся/-ться') + + +@bot.message_handler(commands=['nometa']) +def send_nometa(message: types.Message): + """ No meta """ + send_or_reply(message, 'Пожалуйста, не задавайте мета-вопросов в чате!') + + +@bot.message_handler(commands=['neprivet']) +def send_neprivet(message: types.Message): + """ Neprivet. """ + send_or_reply(message, 'Непривет') + + +""" +Caution commands: nojob, nobot, nogui +""" @bot.message_handler(commands=['nojob']) @@ -284,55 +290,21 @@ def send_no_job(message): answer = """Мы здесь не для того, чтобы за тебя решать задачи. Здесь помогают по конкретным вопросам в ТВОЁМ коде, поэтому тебе нужно показать код, который ты написал сам и объяснить где и почему застрял... всё просто. 🤷🏻‍♂️""" - if message.reply_to_message: - bot.reply_to(message.reply_to_message, answer, parse_mode='HTML', disable_web_page_preview=True) - else: - bot.send_message(message.chat.id, answer, parse_mode='HTML', disable_web_page_preview=True) - - -@bot.message_handler(commands=['nometa']) -def send_nometa(message: types.Message): - """ No meta """ - answer = 'Пожалуйста, не задавайте мета-вопросов в чате!' - if message.reply_to_message: - bot.reply_to(message.reply_to_message, answer, parse_mode='HTML', disable_web_page_preview=True) - else: - bot.send_message(message.chat.id, answer, parse_mode='HTML', disable_web_page_preview=True) - - -@bot.message_handler(commands=['neprivet']) -def send_neprivet(message: types.Message): - """ Neprivet. """ - answer = 'Непривет' - if message.reply_to_message: - bot.reply_to(message.reply_to_message, answer, parse_mode='HTML', disable_web_page_preview=True) - else: - bot.send_message(message.chat.id, answer, parse_mode='HTML', disable_web_page_preview=True) - - -""" -Caution commands: nobot, noparse, nogui -""" + send_or_reply(message, answer) @bot.message_handler(commands=['nobot']) def nobot(message: types.Message): answer = """Внимание: Телеграм бот не должен быть твоим первым проектом на Python. Пожалуйста, изучи основы Python, работу с модулями, основы веб-технологий, асинхронное программирование и отладку до начала работы с Телеграм ботами. Существует много ресурсов для этого в интернете.""" - if message.reply_to_message: - bot.reply_to(message.reply_to_message, answer, parse_mode='HTML', disable_web_page_preview=True) - else: - bot.send_message(message.chat.id, answer, parse_mode='HTML', disable_web_page_preview=True) + send_or_reply(message, answer) @bot.message_handler(commands=['nogui']) def nogui(message: types.Message): answer = """Внимание: GUI приложение не должно быть твоим первым проектом на Python. Пожалуйста, изучи основы Python, работу с модулями, циклы событий и отладку до начала работы с какими-либо GUI-фреймворками. Существует много ресурсов для этого в интернете.""" - if message.reply_to_message: - bot.reply_to(message.reply_to_message, answer, parse_mode='HTML', disable_web_page_preview=True) - else: - bot.send_message(message.chat.id, answer, parse_mode='HTML', disable_web_page_preview=True) + send_or_reply(message, answer) @bot.message_handler(commands=['g']) @@ -349,7 +321,7 @@ def google_it(message: types.Message): else: if len(message.text.split()) > 1: r = parse.quote_plus(' '.join(message.text.split()[1:])) - bot.reply_to(message, f"{search_engine}{r}", disable_web_page_preview=True) + bot.reply_to(message, f"{search_engine}{r}") """ Tease for blogger mentions. """ diff --git a/app/config.py b/app/config.py index bd7ed10..28e5404 100644 --- a/app/config.py +++ b/app/config.py @@ -6,7 +6,7 @@ from dotenv import load_dotenv load_dotenv() TOKEN = os.environ.get('LUTZPYBOT', 'Token not in ENVIRON') -bot = TeleBot(TOKEN) +bot = TeleBot(TOKEN, 'HTML', skip_pending=True, disable_web_page_preview=True, allow_sending_without_reply=True) ADMIN_ID = 280887861 # Rykov7 PYTHONCHATRU = -1001338616632 # pythonchatru diff --git a/app/reminder.py b/app/reminder.py index acf4939..8a722cd 100644 --- a/app/reminder.py +++ b/app/reminder.py @@ -36,13 +36,12 @@ def remind(chat_to_repeat, today): if date.year != 1000: age = today.year - date.year notification += f'\n\n🥳 {age}-ая годовщина' - bot.send_message(chat_to_repeat, notification, parse_mode='HTML') + bot.send_message(chat_to_repeat, notification) @repeat(every().day.at('06:00'), PYTHONCHATRU) def stat_report(chat_to_repeat): - bot.send_message(chat_to_repeat, report.create_report_text(), - parse_mode='HTML', disable_web_page_preview=True) + bot.send_message(chat_to_repeat, report.create_report_text()) report.reset_report_stats()