- 244
- 78
ТГ-бот:
from telegram import Update, InlineKeyboardButton, InlineKeyboardMarkup, ChatMember
from telegram.ext import Updater, CommandHandler, CallbackContext, ConversationHandler, CallbackQueryHandler
from telegram.ext import MessageHandler, Filters
import os
TELEGRAM_TOKEN = "Пошелнахуй"
updater = Updater(token=TELEGRAM_TOKEN, use_context=True)
dp = updater.dispatcher
movie_database = {
#Тут будут ссылки
# Conversation states
SUBSCRIBED, ENTER_CODE = range(2)
def start(update: Update, context: CallbackContext) -> int:
user = update.message.from_user
chat_id, user_id, channel_id = update.message.chat_id, user.id, -****
chat_member = context.bot.get_chat_member(chat_id=channel_id, user_id=user_id)
if chat_member.status in [ChatMember.MEMBER, ChatMember.ADMINISTRATOR, ChatMember.CREATOR]:
# User is already subscribed, prompt for the movie code
update.message.reply_text("Введите код фильма.\nP.S Коды находятся либо на нашем TikTok аккаунте, либо на подписанном канале")
return ENTER_CODE
else:
# User is not subscribed, provide a message and request subscription
message_text = f"Привет, {user.first_name}! Подпишитесь на наш канал: https://t.me/KEFilmChannel\nТакже хочу напомнить, что бот находится на стадии BETA. Если вы столкнулись с ошибкой, пожалуйста, сообщите по контактам в описании бота!"
update.message.reply_text(message_text, disable_web_page_preview=True)
return SUBSCRIBED
def handle_code(update: Update, context: CallbackContext) -> int:
chat_id, user_id, channel_id = update.message.chat_id, update.message.from_user.id, -*******
try:
chat_member = context.bot.get_chat_member(chat_id=channel_id, user_id=user_id)
if chat_member.status in [ChatMember.MEMBER, ChatMember.ADMINISTRATOR, ChatMember.CREATOR]:
movie_code = update.message.text
if movie_code in movie_database:
movie_info = movie_database[movie_code]
update.message.reply_text(f"Приятного просмотра!")
update.message.reply_text(f"Название фильма: {movie_info['title']}")
keyboard = [
[InlineKeyboardButton("Смотреть", url=movie_info['link1']),
InlineKeyboardButton("ЗЕРКАЛО", url=movie_info['link2'])]
]
reply_markup = InlineKeyboardMarkup(keyboard)
update.message.reply_text("Выберите ссылку на сайт:", reply_markup=reply_markup)
# Add a message for searching new movies
update.message.reply_text("Для поиска новых фильмов просто повторно введите код.\nP.S Коды находятся либо на нашем TikTok аккаунте, либо на подписанном канале")
else:
update.message.reply_text("Фильм с таким кодом не найден. Введите правильный код.\nP.S Коды находятся либо на нашем TikTok аккаунте, либо на подписанном канале")
else:
update.message.reply_text("Чтобы получить ссылки, подпишитесь на канал: ***** . Не пытайтесь обмануть бота. Подпишись, затем нажми на /start",
disable_web_page_preview=True)
except Exception as e:
# Log the specific exception details
update.message.reply_text(f"Произошла ошибка. Повторите попытку позже. ({e})")
return ENTER_CODE
if __name__ == '__main__':
dp.add_handler(CommandHandler('start', start))
dp.add_handler(MessageHandler(Filters.text & ~Filters.command, handle_code))
updater.start_polling()
updater.idle()