From f9026e85a19a2deec994dddf924654d2446da1ff Mon Sep 17 00:00:00 2001 From: KerradKerridi Date: Sat, 27 Aug 2022 21:20:38 +0300 Subject: [PATCH] change way to open stickers --- main.py | 139 +++++++++++++++++++++++++++++--------------------------- 1 file changed, 72 insertions(+), 67 deletions(-) diff --git a/main.py b/main.py index 426c717..c60f5fd 100644 --- a/main.py +++ b/main.py @@ -1,6 +1,7 @@ import configparser import os import sys +from pathlib import Path from time import sleep import telebot @@ -12,45 +13,40 @@ from telebot.apihelper import ApiTelegramException config_path = os.path.join(sys.path[0], 'settings.ini') config = configparser.ConfigParser() config.read(config_path) +#TELEGRAM BOT_TOKEN = config.get('Telegram', 'BOT_TOKEN') -BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) GROUP_FOR_POST = config.get('Telegram', 'group_for_posts') GROUP_FOR_MESSAGE = config.get('Telegram', 'group_for_message') -TEST_CHANNEL = config.get('Telegram', 'test_channel') MAIN_PUBLIC = config.get('Telegram', 'main_public') GROUP_FOR_LOGS = config.get('Telegram', 'group_for_logs') IMPORTANT_LOGS = config.get('Telegram', 'important_logs') -PROJECT_ROOT = os.path.dirname(__file__) PREVIEW_LINK = config.getboolean('Telegram', 'PREVIEW_LINK') +#SETTINGS +LOGS = config.getboolean('Settings', 'logs') + +#Инициализируем бота bot = telebot.TeleBot(BOT_TOKEN, parse_mode=None) def telegram_bot(): @bot.message_handler(commands=['start']) def send_welcome(message): + #TODO: Здесь переписать через randint + #TODO: Тексты приветствий вынести в отдельный файл try: - hello_stickers = [ - open('Stick/Hello_1.tgs', 'rb'), - open('Stick/Hello_2.tgs', 'rb'), - open('Stick/Hello_3.tgs', 'rb'), - open('Stick/Hello_4.tgs', 'rb'), - open('Stick/Hello_5.tgs', 'rb'), - open('Stick/Hello_6.tgs', 'rb'), - open('Stick/Hello_7.tgs', 'rb'), - open('Stick/Hello_8.tgs', 'rb'), - open('Stick/Hello_9.tgs', 'rb'), - open('Stick/Hello_10.tgs', 'rb'), - ] - random_index = random.randint(0, len(hello_stickers) - 1) - stick = hello_stickers[random_index] + name_stick_hello = list(Path('Stick').rglob('Hello_*')) + number_stick_hello = random.randint(1, len(name_stick_hello)) + random_stick_hello = open(name_stick_hello[number_stick_hello], 'rb') #logging - bot.forward_message(chat_id=GROUP_FOR_LOGS, - from_chat_id=message.chat.id, - message_id=message.message_id) - bot.send_sticker(message.chat.id, stick) - sleep(1) + if LOGS: + bot.forward_message(chat_id=GROUP_FOR_LOGS, + from_chat_id=message.chat.id, + message_id=message.message_id) + bot.send_sticker(message.chat.id, random_stick_hello) + sleep(0.3) except : - bot.send_message(IMPORTANT_LOGS, 'Отправка приветственных стикеров лажает') + if LOGS: + bot.send_message(IMPORTANT_LOGS, 'Отправка приветственных стикеров лажает') markup = types.ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True) item1 = types.KeyboardButton("Предложить свой пост") @@ -70,7 +66,8 @@ def telegram_bot(): message.from_user, bot.get_me()), parse_mode='html', reply_markup=markup, disable_web_page_preview=not PREVIEW_LINK) except: - bot.send_message(IMPORTANT_LOGS, 'Что-то не так с отправкой первого сообщения') + if LOGS: + bot.send_message(IMPORTANT_LOGS, 'Что-то не так с отправкой первого сообщения') bot.register_next_step_handler(message, go_send_messages) @bot.message_handler(commands=['end_command']) @@ -110,11 +107,13 @@ def telegram_bot(): parse_mode='html', reply_markup=markup ) except: - bot.send_message(IMPORTANT_LOGS, 'Не сработала предложка') + if LOGS: + bot.send_message(IMPORTANT_LOGS, 'Не сработала предложка') #logging - bot.forward_message(chat_id=GROUP_FOR_LOGS, - from_chat_id=message.chat.id, - message_id=message.message_id) + if LOGS: + bot.forward_message(chat_id=GROUP_FOR_LOGS, + from_chat_id=message.chat.id, + message_id=message.message_id) bot.register_next_step_handler(msg, resend_message_in_group_for_post) elif message.text == "Связаться с админами": @@ -122,9 +121,10 @@ def telegram_bot(): "Мы постараемся ответить в ближайшее время:)".format(message.from_user), parse_mode="html") #logging - bot.forward_message(chat_id=GROUP_FOR_LOGS, - from_chat_id=message.chat.id, - message_id=message.message_id) + if LOGS: + bot.forward_message(chat_id=GROUP_FOR_LOGS, + from_chat_id=message.chat.id, + message_id=message.message_id) bot.register_next_step_handler(msg, resend_message_in_group_for_message) elif message.text == "Удалить пост": @@ -133,29 +133,21 @@ def telegram_bot(): "\nИмей ввиду, что можно удалить только тот пост в котором ты автор".format( message.from_user), parse_mode="html") #logging - bot.forward_message(chat_id=GROUP_FOR_LOGS, - from_chat_id=message.chat.id, - message_id=message.message_id) + if LOGS: + bot.forward_message(chat_id=GROUP_FOR_LOGS, + from_chat_id=message.chat.id, + message_id=message.message_id) bot.register_next_step_handler(msg, resend_message_in_group_for_message) elif message.text == "Сказать пока!": try: - bye_stickers = [ - open('Stick/Bye_3.tgs', 'rb'), - open('Stick/bye_stick.tgs', 'rb'), - open('Stick/Universal_4.tgs', 'rb'), - open('Stick/Universal_5.tgs', 'rb'), - open('Stick/Universal_6.tgs', 'rb'), - open('Stick/Universal_7.tgs', 'rb'), - open('Stick/Universal_1.tgs', 'rb'), - open('Stick/Universal_2.tgs', 'rb'), - open('Stick/Universal_3.tgs', 'rb'), - ] - random_index = random.randint(0, len(bye_stickers) - 1) - stick = bye_stickers[random_index] - bot.send_sticker(message.chat.id, stick) + name_stick_bye = list(Path('Stick').rglob('Universal_*')) + number_stick_bye = random.randint(1, len(name_stick_bye)) + random_stick_bye = open(name_stick_bye[number_stick_bye], 'rb') + bot.send_sticker(message.chat.id, random_stick_bye) except ApiTelegramException.with_traceback('tb') as r: - bot.send_message(IMPORTANT_LOGS, r) + if LOGS: + bot.send_message(IMPORTANT_LOGS, r) markup = types.ReplyKeyboardRemove() try: @@ -168,11 +160,14 @@ def telegram_bot(): message.from_user, bot.get_me()), parse_mode='html', reply_markup=markup, disable_web_page_preview=not PREVIEW_LINK) except: - bot.send_message(GROUP_FOR_LOGS, 'Что-то не так с прощанием') + if LOGS: + bot.send_message(IMPORTANT_LOGS, 'Что-то не так с прощанием') + + if LOGS: #logging - bot.forward_message(chat_id=GROUP_FOR_LOGS, - from_chat_id=message.chat.id, - message_id=message.message_id) + bot.forward_message(chat_id=GROUP_FOR_LOGS, + from_chat_id=message.chat.id, + message_id=message.message_id) else: bot.send_message(message.chat.id, @@ -180,9 +175,11 @@ def telegram_bot(): "Have a nice time".format( message.from_user, bot.get_me()), parse_mode='html', disable_web_page_preview=not PREVIEW_LINK) - bot.forward_message(chat_id=GROUP_FOR_LOGS, - from_chat_id=message.chat.id, - message_id=message.message_id) + #logging + if LOGS: + bot.forward_message(chat_id=GROUP_FOR_LOGS, + from_chat_id=message.chat.id, + message_id=message.message_id) after_post(message=message) @@ -230,7 +227,8 @@ def telegram_bot(): else: pass except: - bot.send_message(IMPORTANT_LOGS, f'ALARM, у пользователя не отправилось сообщение\n\nАвтор: {message.from_user.first_name}\nПост можно посмотреть в логах') + if LOGS: + bot.send_message(IMPORTANT_LOGS, f'ALARM, у пользователя не отправилось сообщение\n\nАвтор: {message.from_user.first_name}\nПост можно посмотреть в логах') bot.send_message(message.chat.id, "Пост успешно отправлен. Ожидай одобрения\n" @@ -251,7 +249,8 @@ def telegram_bot(): parse_mode='html', disable_web_page_preview=not PREVIEW_LINK ) except: - bot.send_message(chat_id=GROUP_FOR_LOGS, text='Что-то не так с отправкой обратной связи') + if LOGS: + bot.send_message(chat_id=IMPORTANT_LOGS, text='Что-то не так с отправкой обратной связи') after_post(message=message) @@ -263,7 +262,8 @@ def telegram_bot(): bot.send_message(chat_id=MAIN_PUBLIC, text=call.message.text) bot.delete_message(chat_id=GROUP_FOR_POST, message_id=call.message.message_id) except: - bot.send_message(chat_id=GROUP_FOR_LOGS, text='Не удалось выложить/удалить текстовый пост, что-то пошло не так') + if LOGS: + bot.send_message(chat_id=IMPORTANT_LOGS, text='Не удалось выложить/удалить текстовый пост, что-то пошло не так') elif call.data == 'post_post_post' and call.message.content_type == 'photo': try: bot.send_photo( @@ -273,12 +273,14 @@ def telegram_bot(): ) bot.delete_message(chat_id=GROUP_FOR_POST, message_id=call.message.message_id) except: - bot.send_message(chat_id=GROUP_FOR_LOGS, text='Не удалось выложить/удалить пост с фотографией, что-то пошло не так') + if LOGS: + bot.send_message(chat_id=IMPORTANT_LOGS, text='Не удалось выложить/удалить пост с фотографией, что-то пошло не так') elif call.data == 'decline': try: bot.delete_message(chat_id=GROUP_FOR_POST, message_id=call.message.message_id) except: - bot.send_message(chat_id=GROUP_FOR_LOGS, text='Не удалось отклонить пост') + if LOGS: + bot.send_message(chat_id=IMPORTANT_LOGS, text='Не удалось отклонить пост') if __name__ == '__main__': @@ -288,11 +290,14 @@ if __name__ == '__main__': bot.enable_save_next_step_handlers(delay=2) bot.load_next_step_handlers() except ConnectionError as e: - print('Ошибка соединения: ', e) - bot.send_message(IMPORTANT_LOGS, "Ошибка соединения, потерял связь") + if LOGS: + print('Ошибка соединения: ', e) + bot.send_message(IMPORTANT_LOGS, "Ошибка соединения, потерял связь") except Exception as r: - print("Непредвиденная ошибка: ", r) - bot.send_message(IMPORTANT_LOGS, "Произошло что-то непредвиденное, хелп") + if LOGS: + print("Непредвиденная ошибка: ", r) + bot.send_message(IMPORTANT_LOGS, "Произошло что-то непредвиденное, хелп") finally: - print("Здесь всё закончилось") - bot.send_message(IMPORTANT_LOGS, 'Я упал, помогите') \ No newline at end of file + if LOGS: + print("Здесь всё закончилось") + bot.send_message(IMPORTANT_LOGS, 'Я упал, помогите') \ No newline at end of file