change way to open stickers

This commit is contained in:
KerradKerridi
2022-08-27 21:20:38 +03:00
parent 31fdb22244
commit f9026e85a1

81
main.py
View File

@@ -1,6 +1,7 @@
import configparser import configparser
import os import os
import sys import sys
from pathlib import Path
from time import sleep from time import sleep
import telebot import telebot
@@ -12,44 +13,39 @@ from telebot.apihelper import ApiTelegramException
config_path = os.path.join(sys.path[0], 'settings.ini') config_path = os.path.join(sys.path[0], 'settings.ini')
config = configparser.ConfigParser() config = configparser.ConfigParser()
config.read(config_path) config.read(config_path)
#TELEGRAM
BOT_TOKEN = config.get('Telegram', 'BOT_TOKEN') 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_POST = config.get('Telegram', 'group_for_posts')
GROUP_FOR_MESSAGE = config.get('Telegram', 'group_for_message') GROUP_FOR_MESSAGE = config.get('Telegram', 'group_for_message')
TEST_CHANNEL = config.get('Telegram', 'test_channel')
MAIN_PUBLIC = config.get('Telegram', 'main_public') MAIN_PUBLIC = config.get('Telegram', 'main_public')
GROUP_FOR_LOGS = config.get('Telegram', 'group_for_logs') GROUP_FOR_LOGS = config.get('Telegram', 'group_for_logs')
IMPORTANT_LOGS = config.get('Telegram', 'important_logs') IMPORTANT_LOGS = config.get('Telegram', 'important_logs')
PROJECT_ROOT = os.path.dirname(__file__)
PREVIEW_LINK = config.getboolean('Telegram', 'PREVIEW_LINK') PREVIEW_LINK = config.getboolean('Telegram', 'PREVIEW_LINK')
#SETTINGS
LOGS = config.getboolean('Settings', 'logs')
#Инициализируем бота
bot = telebot.TeleBot(BOT_TOKEN, parse_mode=None) bot = telebot.TeleBot(BOT_TOKEN, parse_mode=None)
def telegram_bot(): def telegram_bot():
@bot.message_handler(commands=['start']) @bot.message_handler(commands=['start'])
def send_welcome(message): def send_welcome(message):
#TODO: Здесь переписать через randint
#TODO: Тексты приветствий вынести в отдельный файл
try: try:
hello_stickers = [ name_stick_hello = list(Path('Stick').rglob('Hello_*'))
open('Stick/Hello_1.tgs', 'rb'), number_stick_hello = random.randint(1, len(name_stick_hello))
open('Stick/Hello_2.tgs', 'rb'), random_stick_hello = open(name_stick_hello[number_stick_hello], '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]
#logging #logging
if LOGS:
bot.forward_message(chat_id=GROUP_FOR_LOGS, bot.forward_message(chat_id=GROUP_FOR_LOGS,
from_chat_id=message.chat.id, from_chat_id=message.chat.id,
message_id=message.message_id) message_id=message.message_id)
bot.send_sticker(message.chat.id, stick) bot.send_sticker(message.chat.id, random_stick_hello)
sleep(1) sleep(0.3)
except : except :
if LOGS:
bot.send_message(IMPORTANT_LOGS, 'Отправка приветственных стикеров лажает') bot.send_message(IMPORTANT_LOGS, 'Отправка приветственных стикеров лажает')
markup = types.ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True) markup = types.ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True)
@@ -70,6 +66,7 @@ def telegram_bot():
message.from_user, bot.get_me()), message.from_user, bot.get_me()),
parse_mode='html', reply_markup=markup, disable_web_page_preview=not PREVIEW_LINK) parse_mode='html', reply_markup=markup, disable_web_page_preview=not PREVIEW_LINK)
except: except:
if LOGS:
bot.send_message(IMPORTANT_LOGS, 'Что-то не так с отправкой первого сообщения') bot.send_message(IMPORTANT_LOGS, 'Что-то не так с отправкой первого сообщения')
bot.register_next_step_handler(message, go_send_messages) bot.register_next_step_handler(message, go_send_messages)
@@ -110,8 +107,10 @@ def telegram_bot():
parse_mode='html', reply_markup=markup parse_mode='html', reply_markup=markup
) )
except: except:
if LOGS:
bot.send_message(IMPORTANT_LOGS, 'Не сработала предложка') bot.send_message(IMPORTANT_LOGS, 'Не сработала предложка')
#logging #logging
if LOGS:
bot.forward_message(chat_id=GROUP_FOR_LOGS, bot.forward_message(chat_id=GROUP_FOR_LOGS,
from_chat_id=message.chat.id, from_chat_id=message.chat.id,
message_id=message.message_id) message_id=message.message_id)
@@ -122,6 +121,7 @@ def telegram_bot():
"Мы постараемся ответить в ближайшее время:)".format(message.from_user), "Мы постараемся ответить в ближайшее время:)".format(message.from_user),
parse_mode="html") parse_mode="html")
#logging #logging
if LOGS:
bot.forward_message(chat_id=GROUP_FOR_LOGS, bot.forward_message(chat_id=GROUP_FOR_LOGS,
from_chat_id=message.chat.id, from_chat_id=message.chat.id,
message_id=message.message_id) message_id=message.message_id)
@@ -133,6 +133,7 @@ def telegram_bot():
"\nИмей ввиду, что можно удалить только тот пост в котором ты автор".format( "\nИмей ввиду, что можно удалить только тот пост в котором ты автор".format(
message.from_user), parse_mode="html") message.from_user), parse_mode="html")
#logging #logging
if LOGS:
bot.forward_message(chat_id=GROUP_FOR_LOGS, bot.forward_message(chat_id=GROUP_FOR_LOGS,
from_chat_id=message.chat.id, from_chat_id=message.chat.id,
message_id=message.message_id) message_id=message.message_id)
@@ -140,21 +141,12 @@ def telegram_bot():
elif message.text == "Сказать пока!": elif message.text == "Сказать пока!":
try: try:
bye_stickers = [ name_stick_bye = list(Path('Stick').rglob('Universal_*'))
open('Stick/Bye_3.tgs', 'rb'), number_stick_bye = random.randint(1, len(name_stick_bye))
open('Stick/bye_stick.tgs', 'rb'), random_stick_bye = open(name_stick_bye[number_stick_bye], 'rb')
open('Stick/Universal_4.tgs', 'rb'), bot.send_sticker(message.chat.id, random_stick_bye)
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)
except ApiTelegramException.with_traceback('tb') as r: except ApiTelegramException.with_traceback('tb') as r:
if LOGS:
bot.send_message(IMPORTANT_LOGS, r) bot.send_message(IMPORTANT_LOGS, r)
markup = types.ReplyKeyboardRemove() markup = types.ReplyKeyboardRemove()
@@ -168,7 +160,10 @@ def telegram_bot():
message.from_user, bot.get_me()), message.from_user, bot.get_me()),
parse_mode='html', reply_markup=markup, disable_web_page_preview=not PREVIEW_LINK) parse_mode='html', reply_markup=markup, disable_web_page_preview=not PREVIEW_LINK)
except: except:
bot.send_message(GROUP_FOR_LOGS, 'Что-то не так с прощанием') if LOGS:
bot.send_message(IMPORTANT_LOGS, 'Что-то не так с прощанием')
if LOGS:
#logging #logging
bot.forward_message(chat_id=GROUP_FOR_LOGS, bot.forward_message(chat_id=GROUP_FOR_LOGS,
from_chat_id=message.chat.id, from_chat_id=message.chat.id,
@@ -180,6 +175,8 @@ def telegram_bot():
"<i>Have a nice time</i>".format( "<i>Have a nice time</i>".format(
message.from_user, bot.get_me()), message.from_user, bot.get_me()),
parse_mode='html', disable_web_page_preview=not PREVIEW_LINK) parse_mode='html', disable_web_page_preview=not PREVIEW_LINK)
#logging
if LOGS:
bot.forward_message(chat_id=GROUP_FOR_LOGS, bot.forward_message(chat_id=GROUP_FOR_LOGS,
from_chat_id=message.chat.id, from_chat_id=message.chat.id,
message_id=message.message_id) message_id=message.message_id)
@@ -230,6 +227,7 @@ def telegram_bot():
else: else:
pass pass
except: except:
if LOGS:
bot.send_message(IMPORTANT_LOGS, f'ALARM, у пользователя не отправилось сообщение\n\nАвтор: {message.from_user.first_name}\nПост можно посмотреть в логах') bot.send_message(IMPORTANT_LOGS, f'ALARM, у пользователя не отправилось сообщение\n\nАвтор: {message.from_user.first_name}\nПост можно посмотреть в логах')
bot.send_message(message.chat.id, bot.send_message(message.chat.id,
@@ -251,7 +249,8 @@ def telegram_bot():
parse_mode='html', disable_web_page_preview=not PREVIEW_LINK parse_mode='html', disable_web_page_preview=not PREVIEW_LINK
) )
except: except:
bot.send_message(chat_id=GROUP_FOR_LOGS, text='Что-то не так с отправкой обратной связи') if LOGS:
bot.send_message(chat_id=IMPORTANT_LOGS, text='Что-то не так с отправкой обратной связи')
after_post(message=message) after_post(message=message)
@@ -263,7 +262,8 @@ def telegram_bot():
bot.send_message(chat_id=MAIN_PUBLIC, text=call.message.text) 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) bot.delete_message(chat_id=GROUP_FOR_POST, message_id=call.message.message_id)
except: 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': elif call.data == 'post_post_post' and call.message.content_type == 'photo':
try: try:
bot.send_photo( bot.send_photo(
@@ -273,12 +273,14 @@ def telegram_bot():
) )
bot.delete_message(chat_id=GROUP_FOR_POST, message_id=call.message.message_id) bot.delete_message(chat_id=GROUP_FOR_POST, message_id=call.message.message_id)
except: except:
bot.send_message(chat_id=GROUP_FOR_LOGS, text='Не удалось выложить/удалить пост с фотографией, что-то пошло не так') if LOGS:
bot.send_message(chat_id=IMPORTANT_LOGS, text='Не удалось выложить/удалить пост с фотографией, что-то пошло не так')
elif call.data == 'decline': elif call.data == 'decline':
try: try:
bot.delete_message(chat_id=GROUP_FOR_POST, message_id=call.message.message_id) bot.delete_message(chat_id=GROUP_FOR_POST, message_id=call.message.message_id)
except: except:
bot.send_message(chat_id=GROUP_FOR_LOGS, text='Не удалось отклонить пост') if LOGS:
bot.send_message(chat_id=IMPORTANT_LOGS, text='Не удалось отклонить пост')
if __name__ == '__main__': if __name__ == '__main__':
@@ -288,11 +290,14 @@ if __name__ == '__main__':
bot.enable_save_next_step_handlers(delay=2) bot.enable_save_next_step_handlers(delay=2)
bot.load_next_step_handlers() bot.load_next_step_handlers()
except ConnectionError as e: except ConnectionError as e:
if LOGS:
print('Ошибка соединения: ', e) print('Ошибка соединения: ', e)
bot.send_message(IMPORTANT_LOGS, "Ошибка соединения, потерял связь") bot.send_message(IMPORTANT_LOGS, "Ошибка соединения, потерял связь")
except Exception as r: except Exception as r:
if LOGS:
print("Непредвиденная ошибка: ", r) print("Непредвиденная ошибка: ", r)
bot.send_message(IMPORTANT_LOGS, "Произошло что-то непредвиденное, хелп") bot.send_message(IMPORTANT_LOGS, "Произошло что-то непредвиденное, хелп")
finally: finally:
if LOGS:
print("Здесь всё закончилось") print("Здесь всё закончилось")
bot.send_message(IMPORTANT_LOGS, 'Я упал, помогите') bot.send_message(IMPORTANT_LOGS, 'Я упал, помогите')